]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmulatorPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystem.h
InOsEmuPkg: Rename package to EmulatorPkg & Sec to Host
[mirror_edk2.git] / EmulatorPkg / EmuSimpleFileSystemDxe / EmuSimpleFileSystem.h
diff --git a/EmulatorPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystem.h b/EmulatorPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystem.h
new file mode 100644 (file)
index 0000000..5a1182c
--- /dev/null
@@ -0,0 +1,80 @@
+/*++ @file\r
+  Produce Simple File System abstractions for a directory on your PC using Unix APIs.\r
+  The configuration of what devices to mount or emulate comes from  \r
+  environment variables.\r
+\r
+Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+Portions copyright (c) 2011, Apple Inc. All rights reserved.\r
+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
+\r
+**/\r
+\r
+#ifndef _EMU_SIMPLE_FILE_SYSTEM_H_\r
+#define _EMU_SIMPLE_FILE_SYSTEM_H_\r
+\r
+#include "PiDxe.h"\r
+\r
+#include <Guid/FileSystemInfo.h>\r
+#include <Guid/FileInfo.h>\r
+#include <Guid/FileSystemVolumeLabelInfo.h>\r
+\r
+#include <Protocol/EmuIoThunk.h>\r
+#include <Protocol/SimpleFileSystem.h>\r
+\r
+#include <Library/DebugLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+\r
+\r
+extern EFI_DRIVER_BINDING_PROTOCOL  gEmuSimpleFileSystemDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL  gEmuSimpleFileSystemComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gEmuSimpleFileSystemComponentName2;\r
+\r
+#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'M', 'f', 's')\r
+\r
+typedef struct {\r
+  UINTN                           Signature;\r
+  EMU_IO_THUNK_PROTOCOL           *IoThunk;\r
+  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFileSystem;\r
+  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Io;\r
+  EFI_UNICODE_STRING_TABLE        *ControllerNameTable;\r
+} EMU_SIMPLE_FILE_SYSTEM_PRIVATE;\r
+\r
+#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS(a) \\r
+  CR (a, \\r
+      EMU_SIMPLE_FILE_SYSTEM_PRIVATE, \\r
+      SimpleFileSystem, \\r
+      EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE \\r
+      )\r
+\r
+#define EMU_EFI_FILE_PRIVATE_SIGNATURE SIGNATURE_32 ('e', 'm', 'f', 's')\r
+\r
+typedef struct {\r
+  UINTN                           Signature;\r
+  EMU_IO_THUNK_PROTOCOL           *IoThunk;\r
+  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem;\r
+  EFI_FILE_PROTOCOL               EfiFile;\r
+  EFI_FILE_PROTOCOL               *Io;\r
+} EMU_EFI_FILE_PRIVATE;\r
+\r
+#define EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS(a) \\r
+  CR (a, \\r
+      EMU_EFI_FILE_PRIVATE, \\r
+      EfiFile, \\r
+      EMU_EFI_FILE_PRIVATE_SIGNATURE \\r
+      )\r
+\r
+\r
+\r
+#endif \r