]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkUnixPkg/Dxe/UnixPlatform/MiscSubclass/MiscSubclassDriver.h
Unix version of EFI emulator
[mirror_edk2.git] / EdkUnixPkg / Dxe / UnixPlatform / MiscSubclass / MiscSubclassDriver.h
diff --git a/EdkUnixPkg/Dxe/UnixPlatform/MiscSubclass/MiscSubclassDriver.h b/EdkUnixPkg/Dxe/UnixPlatform/MiscSubclass/MiscSubclassDriver.h
new file mode 100644 (file)
index 0000000..32f591f
--- /dev/null
@@ -0,0 +1,104 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSubclassDriver.h\r
+\r
+Abstract:\r
+\r
+  Header file for MiscSubclass Driver.\r
+\r
+--*/\r
+\r
+#ifndef _MISC_SUBCLASS_DRIVER_H\r
+#define _MISC_SUBCLASS_DRIVER_H\r
+\r
+\r
+#include <MiscDevicePath.h>\r
+\r
+//\r
+// Autogen string file\r
+//\r
+#include <MiscSubclassStrDefs.h>\r
+\r
+//\r
+// Data table entry update function.\r
+//\r
+typedef \r
+EFI_STATUS \r
+(EFIAPI EFI_MISC_SUBCLASS_DATA_FUNCTION) (\r
+  IN UINT16                         RecordType,\r
+  IN UINT32                         *RecordLen,\r
+  IN OUT EFI_MISC_SUBCLASS_RECORDS  *RecordData,\r
+  OUT BOOLEAN                       *LogRecordData\r
+  );\r
+\r
+//\r
+// Data table entry definition.\r
+//\r
+typedef struct {\r
+  UINT16                          RecordType;\r
+  UINT32                          RecordLen;\r
+  VOID                            *RecordData;\r
+  EFI_MISC_SUBCLASS_DATA_FUNCTION *Function;\r
+} EFI_MISC_SUBCLASS_DATA_TABLE;\r
+\r
+//\r
+// Data Table extern definitions.\r
+//\r
+#define MISC_SUBCLASS_TABLE_EXTERNS(NAME1, NAME2) \\r
+  extern NAME1 NAME2 ## Data; \\r
+  extern EFI_MISC_SUBCLASS_DATA_FUNCTION NAME2 ## Function\r
+\r
+//\r
+// Data Table entries\r
+//\r
+#define MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(NAME1, NAME2) { \\r
+         NAME1 ##  _RECORD_NUMBER, sizeof (NAME1 ## _DATA), &NAME2 ## Data, NULL \\r
+  }\r
+\r
+#define MISC_SUBCLASS_TABLE_ENTRY_FUNCTION_ONLY(NAME1, NAME2) \\r
+  { \\r
+    NAME1 ##  _RECORD_NUMBER, 0, NULL, &NAME2 ## Function \\r
+  }\r
+\r
+#define MISC_SUBCLASS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2, NAME3) \\r
+  { \\r
+    NAME1 ##  _RECORD_NUMBER, sizeof (NAME1 ## _DATA), &NAME2 ## Data, &NAME3 ## Function \\r
+  }\r
+\r
+//\r
+// Global definition macros.\r
+//\r
+#define MISC_SUBCLASS_TABLE_DATA(NAME1, NAME2)  NAME1 NAME2 ## Data\r
+\r
+#define MISC_SUBCLASS_TABLE_FUNCTION(NAME2) \\r
+  EFI_STATUS EFIAPI NAME2 ## Function ( \\r
+  IN UINT16 RecordType, \\r
+  IN UINT32 *RecordLen, \\r
+  IN OUT EFI_MISC_SUBCLASS_RECORDS * RecordData, \\r
+  OUT BOOLEAN *LogRecordData \\r
+  )\r
+\r
+//\r
+// Data Table Array\r
+//\r
+extern EFI_MISC_SUBCLASS_DATA_TABLE mMiscSubclassDataTable[];\r
+\r
+//\r
+// Data Table Array Entries\r
+//\r
+extern UINTN  mMiscSubclassDataTableEntries;\r
+\r
+#endif /* _MISC_SUBCLASS_DRIVER_H */\r
+\r
+/* eof - MiscSubclassDriver.h */\r