]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsApi.h
ArmPlatformPkg/BootMonFs: Added support for new revision of the NOR Flash file system
[mirror_edk2.git] / ArmPlatformPkg / FileSystem / BootMonFs / BootMonFsApi.h
1 /** @file
2 *
3 * Copyright (c) 2012-2014, ARM Limited. All rights reserved.
4 *
5 * This program and the accompanying materials
6 * are licensed and made available under the terms and conditions of the BSD License
7 * which accompanies this distribution. The full text of the license may be found at
8 * http://opensource.org/licenses/bsd-license.php
9 *
10 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 *
13 **/
14
15 #ifndef __BOOTMON_FS_API_H
16 #define __BOOTMON_FS_API_H
17
18 #include <Protocol/SimpleFileSystem.h>
19
20 EFI_STATUS
21 BootMonFsDiscoverNextImage (
22 IN BOOTMON_FS_INSTANCE *Flash,
23 IN EFI_LBA *LbaStart,
24 OUT HW_IMAGE_DESCRIPTION *Image
25 );
26
27 EFI_STATUS
28 BootMonFsInitialize (
29 IN BOOTMON_FS_INSTANCE *Instance
30 );
31
32 UINT32
33 BootMonFsChecksum (
34 IN VOID *Data,
35 IN UINT32 Size
36 );
37
38 EFI_STATUS
39 BootMonFsComputeFooterChecksum (
40 IN OUT HW_IMAGE_DESCRIPTION *Footer
41 );
42
43 EFIAPI
44 EFI_STATUS
45 OpenBootMonFsOpenVolume (
46 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
47 OUT EFI_FILE_PROTOCOL **Root
48 );
49
50 UINT32
51 BootMonFsGetImageLength (
52 IN BOOTMON_FS_FILE *File
53 );
54
55 UINTN
56 BootMonFsGetPhysicalSize (
57 IN BOOTMON_FS_FILE* File
58 );
59
60 EFI_STATUS
61 BootMonFsCreateFile (
62 IN BOOTMON_FS_INSTANCE *Instance,
63 OUT BOOTMON_FS_FILE **File
64 );
65
66 EFIAPI
67 EFI_STATUS
68 BootMonFsGetInfo (
69 IN EFI_FILE_PROTOCOL *This,
70 IN EFI_GUID *InformationType,
71 IN OUT UINTN *BufferSize,
72 OUT VOID *Buffer
73 );
74
75 EFIAPI
76 EFI_STATUS
77 BootMonFsReadDirectory (
78 IN EFI_FILE_PROTOCOL *This,
79 IN OUT UINTN *BufferSize,
80 OUT VOID *Buffer
81 );
82
83 EFIAPI
84 EFI_STATUS
85 BootMonFsFlushDirectory (
86 IN EFI_FILE_PROTOCOL *This
87 );
88
89 EFIAPI
90 EFI_STATUS
91 BootMonFsFlushFile (
92 IN EFI_FILE_PROTOCOL *This
93 );
94
95 EFIAPI
96 EFI_STATUS
97 BootMonFsCloseFile (
98 IN EFI_FILE_PROTOCOL *This
99 );
100
101 EFIAPI
102 EFI_STATUS
103 BootMonFsOpenFile (
104 IN EFI_FILE_PROTOCOL *This,
105 OUT EFI_FILE_PROTOCOL **NewHandle,
106 IN CHAR16 *FileName,
107 IN UINT64 OpenMode,
108 IN UINT64 Attributes
109 );
110
111
112 EFIAPI
113 EFI_STATUS
114 BootMonFsReadFile (
115 IN EFI_FILE_PROTOCOL *This,
116 IN OUT UINTN *BufferSize,
117 OUT VOID *Buffer
118 );
119
120 EFIAPI
121 EFI_STATUS
122 BootMonFsSetDirPosition (
123 IN EFI_FILE_PROTOCOL *This,
124 IN UINT64 Position
125 );
126
127 EFIAPI
128 EFI_STATUS
129 BootMonFsGetPosition (
130 IN EFI_FILE_PROTOCOL *This,
131 OUT UINT64 *Position
132 );
133
134 EFIAPI
135 EFI_STATUS
136 BootMonFsWriteFile (
137 IN EFI_FILE_PROTOCOL *This,
138 IN OUT UINTN *BufferSize,
139 IN VOID *Buffer
140 );
141
142 EFIAPI
143 EFI_STATUS
144 BootMonFsDeleteFail (
145 IN EFI_FILE_PROTOCOL *This
146 );
147
148 EFIAPI
149 EFI_STATUS
150 BootMonFsDelete (
151 IN EFI_FILE_PROTOCOL *This
152 );
153
154 EFIAPI
155 EFI_STATUS
156 BootMonFsSetPosition (
157 IN EFI_FILE_PROTOCOL *This,
158 IN UINT64 Position
159 );
160
161 EFIAPI
162 EFI_STATUS
163 BootMonFsGetPosition(
164 IN EFI_FILE_PROTOCOL *This,
165 OUT UINT64 *Position
166 );
167
168 //
169 // UNSUPPORTED OPERATIONS
170 //
171
172 EFIAPI
173 EFI_STATUS
174 BootMonFsGetPositionUnsupported (
175 IN EFI_FILE_PROTOCOL *This,
176 OUT UINT64 *Position
177 );
178
179 EFIAPI
180 EFI_STATUS
181 BootMonFsSetInfo (
182 IN EFI_FILE_PROTOCOL *This,
183 IN EFI_GUID *InformationType,
184 IN UINTN BufferSize,
185 IN VOID *Buffer
186 );
187
188 //
189 // Directory API
190 //
191
192 EFI_STATUS
193 BootMonFsOpenDirectory (
194 OUT EFI_FILE_PROTOCOL **NewHandle,
195 IN CHAR16 *FileName,
196 IN BOOTMON_FS_INSTANCE *Volume
197 );
198
199 //
200 // Internal API
201 //
202 EFI_STATUS
203 BootMonGetFileFromAsciiFileName (
204 IN BOOTMON_FS_INSTANCE *Instance,
205 IN CHAR8* AsciiFileName,
206 OUT BOOTMON_FS_FILE **File
207 );
208
209 EFI_STATUS
210 BootMonGetFileFromPosition (
211 IN BOOTMON_FS_INSTANCE *Instance,
212 IN UINTN Position,
213 OUT BOOTMON_FS_FILE **File
214 );
215
216 #endif