]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystem.h
UefiCpuPkg/SmmCpuFeaturesLib: Abstract arch dependent code
[mirror_edk2.git] / EmulatorPkg / EmuSimpleFileSystemDxe / EmuSimpleFileSystem.h
CommitLineData
949f388f 1/*++ @file\r
2 Produce Simple File System abstractions for a directory on your PC using Unix APIs.\r
d18d8a1d 3 The configuration of what devices to mount or emulate comes from\r
949f388f 4 environment variables.\r
5\r
6Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
7Portions copyright (c) 2011, Apple Inc. All rights reserved.\r
e3ba31da 8SPDX-License-Identifier: BSD-2-Clause-Patent\r
949f388f 9\r
10\r
11**/\r
12\r
13#ifndef _EMU_SIMPLE_FILE_SYSTEM_H_\r
14#define _EMU_SIMPLE_FILE_SYSTEM_H_\r
15\r
16#include "PiDxe.h"\r
17\r
18#include <Guid/FileSystemInfo.h>\r
19#include <Guid/FileInfo.h>\r
20#include <Guid/FileSystemVolumeLabelInfo.h>\r
21\r
22#include <Protocol/EmuIoThunk.h>\r
23#include <Protocol/SimpleFileSystem.h>\r
24\r
25#include <Library/DebugLib.h>\r
26#include <Library/BaseLib.h>\r
27#include <Library/UefiDriverEntryPoint.h>\r
28#include <Library/UefiLib.h>\r
29#include <Library/BaseMemoryLib.h>\r
30#include <Library/MemoryAllocationLib.h>\r
31#include <Library/UefiBootServicesTableLib.h>\r
32\r
a550d468
MK
33extern EFI_DRIVER_BINDING_PROTOCOL gEmuSimpleFileSystemDriverBinding;\r
34extern EFI_COMPONENT_NAME_PROTOCOL gEmuSimpleFileSystemComponentName;\r
35extern EFI_COMPONENT_NAME2_PROTOCOL gEmuSimpleFileSystemComponentName2;\r
949f388f 36\r
a550d468 37#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'M', 'f', 's')\r
949f388f 38\r
39typedef struct {\r
a550d468
MK
40 UINTN Signature;\r
41 EMU_IO_THUNK_PROTOCOL *IoThunk;\r
42 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFileSystem;\r
43 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Io;\r
44 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
949f388f 45} EMU_SIMPLE_FILE_SYSTEM_PRIVATE;\r
46\r
47#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS(a) \\r
48 CR (a, \\r
49 EMU_SIMPLE_FILE_SYSTEM_PRIVATE, \\r
50 SimpleFileSystem, \\r
51 EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE \\r
52 )\r
53\r
a550d468 54#define EMU_EFI_FILE_PRIVATE_SIGNATURE SIGNATURE_32 ('e', 'm', 'f', 's')\r
949f388f 55\r
56typedef struct {\r
a550d468
MK
57 UINTN Signature;\r
58 EMU_IO_THUNK_PROTOCOL *IoThunk;\r
59 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem;\r
60 EFI_FILE_PROTOCOL EfiFile;\r
61 EFI_FILE_PROTOCOL *Io;\r
949f388f 62} EMU_EFI_FILE_PRIVATE;\r
63\r
64#define EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS(a) \\r
65 CR (a, \\r
66 EMU_EFI_FILE_PRIVATE, \\r
67 EfiFile, \\r
68 EMU_EFI_FILE_PRIVATE_SIGNATURE \\r
69 )\r
70\r
d18d8a1d 71#endif\r