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