From 7b0dda6fca0eaef19bf47eed9daa5dd4b1473975 Mon Sep 17 00:00:00 2001
From: Konstantin Aladyshev <aladyshev22@gmail.com>
Date: Thu, 24 Feb 2022 18:51:27 +0300
Subject: Add lesson 59

Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
---
 .../UefiLessonsPkg/HIIStaticFormDriver/Form.vfr    | 37 +++++++++++++++++
 .../HIIStaticFormDriver/HIIStaticFormDriver.c      | 47 ++++++++++++++++++++++
 .../HIIStaticFormDriver/HIIStaticFormDriver.inf    | 28 +++++++++++++
 .../UefiLessonsPkg/HIIStaticFormDriver/Strings.uni | 25 ++++++++++++
 4 files changed, 137 insertions(+)
 create mode 100644 Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Form.vfr
 create mode 100644 Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.c
 create mode 100644 Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.inf
 create mode 100644 Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Strings.uni

(limited to 'Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver')

diff --git a/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Form.vfr b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Form.vfr
new file mode 100644
index 0000000..68a8ef0
--- /dev/null
+++ b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Form.vfr
@@ -0,0 +1,37 @@
+#define HIISTATICFORM_FORMSET_GUID  {0x32783cc5, 0xe551, 0x4b61, {0xb7, 0xbd, 0x41, 0xba, 0x71, 0x7f, 0xba, 0x81}}
+
+formset
+  guid     = HIISTATICFORM_FORMSET_GUID,
+  title    = STRING_TOKEN(HIISTATICFORM_FORMSET_TITLE),
+  help     = STRING_TOKEN(HIISTATICFORM_FORMSET_HELP),
+  form
+    formid = 1,
+    title = STRING_TOKEN(HIISTATICFORM_FORMID1_TITLE);
+
+    subtitle text = STRING_TOKEN(SUBTITLE1);
+    subtitle text = STRING_TOKEN(SUBTITLE2);
+
+    subtitle
+      text = STRING_TOKEN(SUBTITLE3),
+
+      subtitle text = STRING_TOKEN(SUBTITLE4);
+      subtitle text = STRING_TOKEN(SUBTITLE5);
+    endsubtitle;
+
+    subtitle text = STRING_TOKEN(STR_NULL);
+    subtitle text = STRING_TOKEN(SUBTITLE6);
+
+    text
+      help = STRING_TOKEN(TEXT1_HELP),
+      text = STRING_TOKEN(TEXT1_TEXT);
+
+    text
+      help = STRING_TOKEN(TEXT2_HELP),
+      text = STRING_TOKEN(TEXT2_TEXT);
+
+    text
+      help = STRING_TOKEN(TEXT3_HELP),
+      text = STRING_TOKEN(TEXT3_TEXT),
+      text = STRING_TOKEN(TEXT3_TEXT_TWO);
+  endform;
+endformset;
diff --git a/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.c b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.c
new file mode 100644
index 0000000..b9922f4
--- /dev/null
+++ b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2021, Konstantin Aladyshev <aladyshev22@gmail.com>
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiLib.h>
+#include <Library/HiiLib.h>
+
+
+extern UINT8 FormBin[];
+
+EFI_HII_HANDLE Handle;
+
+
+EFI_STATUS
+EFIAPI
+HIIStaticFormDriverUnload (
+  EFI_HANDLE ImageHandle
+  )
+{
+  if (Handle != NULL)
+    HiiRemovePackages(Handle);
+
+  return EFI_SUCCESS;
+}
+
+EFI_STATUS
+EFIAPI
+HIIStaticFormDriverEntryPoint (
+  IN EFI_HANDLE        ImageHandle,
+  IN EFI_SYSTEM_TABLE  *SystemTable
+  )
+{
+  Handle = HiiAddPackages(
+             &gEfiCallerIdGuid,
+             NULL,
+             HIIStaticFormDriverStrings,
+             FormBin,
+             NULL
+           );
+  if (Handle == NULL) 
+    return EFI_OUT_OF_RESOURCES;
+
+  return EFI_SUCCESS;
+}
diff --git a/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.inf b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.inf
new file mode 100644
index 0000000..4a63c03
--- /dev/null
+++ b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/HIIStaticFormDriver.inf
@@ -0,0 +1,28 @@
+##
+# Copyright (c) 2021, Konstantin Aladyshev <aladyshev22@gmail.com>
+#
+# SPDX-License-Identifier: MIT
+##
+
+[Defines]
+  INF_VERSION                    = 1.25
+  BASE_NAME                      = HIIStaticFormDriver
+  FILE_GUID                      = 22514099-ad3b-45ec-b14b-112eb6446db2
+  MODULE_TYPE                    = UEFI_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = HIIStaticFormDriverEntryPoint
+  UNLOAD_IMAGE                   = HIIStaticFormDriverUnload
+
+[Sources]
+  HIIStaticFormDriver.c
+  Strings.uni
+  Form.vfr
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+
+[LibraryClasses]
+  UefiDriverEntryPoint
+  UefiLib
+  HiiLib
diff --git a/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Strings.uni b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Strings.uni
new file mode 100644
index 0000000..3bada64
--- /dev/null
+++ b/Lessons/Lesson_59/UefiLessonsPkg/HIIStaticFormDriver/Strings.uni
@@ -0,0 +1,25 @@
+//
+// Copyright (c) 2021, Konstantin Aladyshev <aladyshev22@gmail.com>
+//
+// SPDX-License-Identifier: MIT
+//
+
+#langdef en-US "English"
+
+#string HIISTATICFORM_FORMSET_TITLE          #language en-US  "Static Formset"
+#string HIISTATICFORM_FORMSET_HELP           #language en-US  "This is a static formset"
+#string HIISTATICFORM_FORMID1_TITLE          #language en-US  "Static Form"
+#string SUBTITLE1                            #language en-US  "Subtitle1"
+#string SUBTITLE2                            #language en-US  "Subtitle2"
+#string SUBTITLE3                            #language en-US  "Subtitle3"
+#string SUBTITLE4                            #language en-US  "Subtitle4"
+#string SUBTITLE5                            #language en-US  "Subtitle5"
+#string SUBTITLE6                            #language en-US  "Subtitle6"
+#string STR_NULL                             #language en-US  ""
+#string TEXT1_TEXT                           #language en-US  "Text1 title"
+#string TEXT1_HELP                           #language en-US  "Text1 help"
+#string TEXT2_TEXT                           #language en-US  "Text2 title"
+#string TEXT2_HELP                           #language en-US  "Text2 help"
+#string TEXT3_TEXT                           #language en-US  "Text3 title"
+#string TEXT3_TEXT_TWO                       #language en-US  "Text3 value"
+#string TEXT3_HELP                           #language en-US  "Text3 help"
-- 
cgit v1.2.3-18-g5258