aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/createNewDriver.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/createNewDriver.sh')
-rw-r--r--scripts/createNewDriver.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/scripts/createNewDriver.sh b/scripts/createNewDriver.sh
new file mode 100644
index 0000000..5c05916
--- /dev/null
+++ b/scripts/createNewDriver.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# This is a simple script that creates a basic structure for your new UEFI driver
+# Put this script in your edk2 folder and run it with 1 argument - your new driver name
+
+DRIVER_NAME=${1}
+
+UUID=$(uuidgen)
+
+mkdir -p UefiLessonsPkg/${DRIVER_NAME}
+
+cat << EOF > UefiLessonsPkg/${DRIVER_NAME}/${DRIVER_NAME}.inf
+[Defines]
+ INF_VERSION = 1.25
+ BASE_NAME = ${DRIVER_NAME}
+ FILE_GUID = ${UUID}
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = ${DRIVER_NAME}EntryPoint
+ UNLOAD_IMAGE = ${DRIVER_NAME}Unload
+
+[Sources]
+ ${DRIVER_NAME}.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+
+[LibraryClasses]
+ UefiDriverEntryPoint
+ UefiLib
+EOF
+
+cat << EOF > UefiLessonsPkg/${DRIVER_NAME}/${DRIVER_NAME}.c
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiLib.h>
+
+
+EFI_STATUS
+EFIAPI
+${DRIVER_NAME}Unload (
+ EFI_HANDLE ImageHandle
+ )
+{
+ return EFI_SUCCESS;
+}
+
+EFI_STATUS
+EFIAPI
+${DRIVER_NAME}EntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ return EFI_SUCCESS;
+}
+EOF
+