]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystem.h
EmulatorPkg: Replace BSD License with BSD+Patent License
[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
33\r
34extern EFI_DRIVER_BINDING_PROTOCOL gEmuSimpleFileSystemDriverBinding;\r
35extern EFI_COMPONENT_NAME_PROTOCOL gEmuSimpleFileSystemComponentName;\r
36extern EFI_COMPONENT_NAME2_PROTOCOL gEmuSimpleFileSystemComponentName2;\r
37\r
38#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'M', 'f', 's')\r
39\r
40typedef struct {\r
41 UINTN Signature;\r
42 EMU_IO_THUNK_PROTOCOL *IoThunk;\r
43 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFileSystem;\r
44 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Io;\r
45 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
46} EMU_SIMPLE_FILE_SYSTEM_PRIVATE;\r
47\r
48#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS(a) \\r
49 CR (a, \\r
50 EMU_SIMPLE_FILE_SYSTEM_PRIVATE, \\r
51 SimpleFileSystem, \\r
52 EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE \\r
53 )\r
54\r
55#define EMU_EFI_FILE_PRIVATE_SIGNATURE SIGNATURE_32 ('e', 'm', 'f', 's')\r
56\r
57typedef struct {\r
58 UINTN Signature;\r
59 EMU_IO_THUNK_PROTOCOL *IoThunk;\r
60 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem;\r
61 EFI_FILE_PROTOCOL EfiFile;\r
62 EFI_FILE_PROTOCOL *Io;\r
63} EMU_EFI_FILE_PRIVATE;\r
64\r
65#define EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS(a) \\r
66 CR (a, \\r
67 EMU_EFI_FILE_PRIVATE, \\r
68 EfiFile, \\r
69 EMU_EFI_FILE_PRIVATE_SIGNATURE \\r
70 )\r
71\r
72\r
73\r
d18d8a1d 74#endif\r