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