TianoCore EDK2 master
Loading...
Searching...
No Matches
FileExplorer.h
Go to the documentation of this file.
1
8#ifndef _FILE_EXPLORER_H_
9#define _FILE_EXPLORER_H_
10
11#include <PiDxe.h>
13#include <Guid/FileInfo.h>
14#include <Guid/MdeModuleHii.h>
15
17#include <Protocol/DevicePath.h>
21
22#include <Library/DebugLib.h>
26#include <Library/BaseLib.h>
27#include <Library/UefiLib.h>
30#include <Library/HiiLib.h>
31#include <Library/PrintLib.h>
32
33#include "FormGuid.h"
34
35#define FILE_EXPLORER_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('f', 'e', 'c', 'k')
36
37#pragma pack(1)
38
42typedef struct {
43 VENDOR_DEVICE_PATH VendorDevicePath;
46
47#pragma pack()
48
49typedef struct {
50 EFI_HANDLE DeviceHandle;
51 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
52 EFI_FILE_HANDLE FileHandle;
53 UINT16 *FileName;
54
55 BOOLEAN IsRoot;
56 BOOLEAN IsDir;
58
59typedef struct {
60 UINTN Signature;
61 LIST_ENTRY Link;
62 UINT16 *DisplayString;
63 UINT16 *HelpString;
64 EFI_STRING_ID DisplayStringToken;
65 EFI_STRING_ID HelpStringToken;
66 VOID *VariableContext;
68
69typedef struct {
70 UINTN Signature;
71 LIST_ENTRY Head;
72 UINTN MenuNumber;
73 BOOLEAN Used;
75
76typedef struct {
77 //
78 // Shared callback data.
79 //
80 UINTN Signature;
81
82 //
83 // File explorer formset callback data.
84 //
85 EFI_HII_HANDLE FeHiiHandle;
86 EFI_HANDLE FeDriverHandle;
87 EFI_HII_CONFIG_ACCESS_PROTOCOL FeConfigAccess;
88 EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
89 MENU_OPTION *FsOptionMenu;
90 CHAR16 *FileType;
91 CHOOSE_HANDLER ChooseHandler;
92 EFI_DEVICE_PATH_PROTOCOL *RetDevicePath;
94
95#define FILE_EXPLORER_PRIVATE_FROM_THIS(a) CR (a, FILE_EXPLORER_CALLBACK_DATA, FeConfigAccess, FILE_EXPLORER_CALLBACK_DATA_SIGNATURE)
96
97extern UINT8 FileExplorerVfrBin[];
98
99#define MENU_OPTION_SIGNATURE SIGNATURE_32 ('m', 'e', 'n', 'u')
100#define MENU_ENTRY_SIGNATURE SIGNATURE_32 ('e', 'n', 't', 'r')
101
105#define MAX_CHAR 480
106#define FILE_OPTION_OFFSET 0x8000
107#define FILE_OPTION_MASK 0x7FFF
108#define QUESTION_ID_UPDATE_STEP 200
109#define MAX_FILE_NAME_LEN 20
110#define MAX_FOLDER_NAME_LEN 20
111#define NEW_FILE_QUESTION_ID_BASE 0x5000;
112#define NEW_FOLDER_QUESTION_ID_BASE 0x6000;
113
142EFIAPI
145 IN EFI_BROWSER_ACTION Action,
146 IN EFI_QUESTION_ID QuestionId,
147 IN UINT8 Type,
148 IN EFI_IFR_TYPE_VALUE *Value,
149 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
150 );
151
175EFIAPI
178 IN CONST EFI_STRING Request,
179 OUT EFI_STRING *Progress,
180 OUT EFI_STRING *Results
181 );
182
200EFIAPI
203 IN CONST EFI_STRING Configuration,
204 OUT EFI_STRING *Progress
205 );
206
218 IN UINT16 KeyValue
219 );
220
227VOID
229 IN UINT16 KeyValue
230 );
231
232#endif
UINT64 UINTN
BOOLEAN(EFIAPI * CHOOSE_HANDLER)(IN EFI_DEVICE_PATH_PROTOCOL *FilePath)
Definition: FileExplorer.h:33
EFI_STATUS EFIAPI LibExtractConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
Definition: FileExplorer.c:111
VOID LibGetDevicePath(IN UINT16 KeyValue)
EFI_STATUS LibUpdateFileExplorer(IN UINT16 KeyValue)
EFI_STATUS EFIAPI LibCallback(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
Definition: FileExplorer.c:179
EFI_STATUS EFIAPI LibRouteConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
Definition: FileExplorer.c:143
#define CONST
Definition: Base.h:259
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
VOID * EFI_HII_HANDLE