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
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
13 #ifndef _EMU_SIMPLE_FILE_SYSTEM_H_
14 #define _EMU_SIMPLE_FILE_SYSTEM_H_
18 #include <Guid/FileSystemInfo.h>
19 #include <Guid/FileInfo.h>
20 #include <Guid/FileSystemVolumeLabelInfo.h>
22 #include <Protocol/EmuIoThunk.h>
23 #include <Protocol/SimpleFileSystem.h>
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>
34 extern EFI_DRIVER_BINDING_PROTOCOL gEmuSimpleFileSystemDriverBinding
;
35 extern EFI_COMPONENT_NAME_PROTOCOL gEmuSimpleFileSystemComponentName
;
36 extern EFI_COMPONENT_NAME2_PROTOCOL gEmuSimpleFileSystemComponentName2
;
38 #define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'M', 'f', 's')
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
;
48 #define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS(a) \
50 EMU_SIMPLE_FILE_SYSTEM_PRIVATE, \
52 EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE \
55 #define EMU_EFI_FILE_PRIVATE_SIGNATURE SIGNATURE_32 ('e', 'm', 'f', 's')
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
;
65 #define EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS(a) \
67 EMU_EFI_FILE_PRIVATE, \
69 EMU_EFI_FILE_PRIVATE_SIGNATURE \