]> git.proxmox.com Git - mirror_edk2.git/blame - UnixPkg/UnixBlockIoDxe/UnixBlockIo.h
Update the copyright notice format
[mirror_edk2.git] / UnixPkg / UnixBlockIoDxe / UnixBlockIo.h
CommitLineData
804405e7 1/*++\r
2\r
f9b8ab56
HT
3Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials \r
804405e7 5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 UnixBlockIo.h\r
15\r
16Abstract:\r
17\r
18 Produce block IO abstractions for real devices on your PC using Posix APIs.\r
19 The configuration of what devices to mount or emulate comes from UNIX \r
20 environment variables. The variables must be visible to the Microsoft* \r
21 Developer Studio for them to work.\r
22\r
23 * Other names and brands may be claimed as the property of others.\r
24\r
25--*/\r
26\r
27#ifndef _UNIX_BLOCK_IO_H_\r
28#define _UNIX_BLOCK_IO_H_\r
29\r
30#include "PiDxe.h"\r
31#include <Protocol/BlockIo.h>\r
32\r
33#include <Library/DebugLib.h>\r
34#include <Library/BaseLib.h>\r
35#include <Library/UefiDriverEntryPoint.h>\r
36#include <Library/UefiLib.h>\r
37#include <Library/BaseMemoryLib.h>\r
38#include <Library/MemoryAllocationLib.h>\r
39#include <Library/UefiBootServicesTableLib.h>\r
40#include "UnixDxe.h"\r
41\r
42#define FILENAME_BUFFER_SIZE 80\r
43\r
44//\r
45// Language supported for driverconfiguration protocol\r
46//\r
47#define LANGUAGESUPPORTED "eng"\r
48\r
208301e9 49#define UNIX_BLOCK_IO_PRIVATE_SIGNATURE SIGNATURE_32 ('L', 'X', 'b', 'k')\r
804405e7 50typedef struct {\r
51 UINTN Signature;\r
52\r
53 EFI_LOCK Lock;\r
54\r
55 char Filename[FILENAME_BUFFER_SIZE];\r
56 UINTN ReadMode;\r
57 UINTN Mode;\r
58\r
ccd55824 59 int fd;\r
804405e7 60\r
61 UINT64 LastBlock;\r
62 UINTN BlockSize;\r
63 UINT64 NumberOfBlocks;\r
64\r
65 EFI_HANDLE EfiHandle;\r
66 EFI_BLOCK_IO_PROTOCOL BlockIo;\r
67 EFI_BLOCK_IO_MEDIA Media;\r
68\r
69 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
70\r
71 EFI_UNIX_THUNK_PROTOCOL *UnixThunk;\r
72\r
73} UNIX_BLOCK_IO_PRIVATE;\r
74\r
75#define UNIX_BLOCK_IO_PRIVATE_DATA_FROM_THIS(a) \\r
76 CR(a, UNIX_BLOCK_IO_PRIVATE, BlockIo, UNIX_BLOCK_IO_PRIVATE_SIGNATURE)\r
77\r
78#define LIST_BUFFER_SIZE 512\r
79\r
80//\r
81// Block I/O Global Variables\r
82//\r
83extern EFI_DRIVER_BINDING_PROTOCOL gUnixBlockIoDriverBinding;\r
84extern EFI_COMPONENT_NAME_PROTOCOL gUnixBlockIoComponentName;\r
85extern EFI_DRIVER_CONFIGURATION_PROTOCOL gUnixBlockIoDriverConfiguration;\r
86extern EFI_DRIVER_DIAGNOSTICS_PROTOCOL gUnixBlockIoDriverDiagnostics;\r
87\r
88//\r
89// EFI Driver Binding Functions\r
90//\r
91EFI_STATUS\r
92EFIAPI\r
93UnixBlockIoDriverBindingSupported (\r
94 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
95 IN EFI_HANDLE Handle,\r
96 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
97 )\r
98/*++\r
99\r
100Routine Description:\r
101\r
102 TODO: Add function description\r
103\r
104Arguments:\r
105\r
106 This - TODO: add argument description\r
107 Handle - TODO: add argument description\r
108 RemainingDevicePath - TODO: add argument description\r
109\r
110Returns:\r
111\r
112 TODO: add return values\r
113\r
114--*/\r
115;\r
116\r
117EFI_STATUS\r
118EFIAPI\r
119UnixBlockIoDriverBindingStart (\r
120 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
121 IN EFI_HANDLE Handle,\r
122 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
123 )\r
124/*++\r
125\r
126Routine Description:\r
127\r
128 TODO: Add function description\r
129\r
130Arguments:\r
131\r
132 This - TODO: add argument description\r
133 Handle - TODO: add argument description\r
134 RemainingDevicePath - TODO: add argument description\r
135\r
136Returns:\r
137\r
138 TODO: add return values\r
139\r
140--*/\r
141;\r
142\r
143EFI_STATUS\r
144EFIAPI\r
145UnixBlockIoDriverBindingStop (\r
146 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
147 IN EFI_HANDLE Handle,\r
148 IN UINTN NumberOfChildren,\r
149 IN EFI_HANDLE *ChildHandleBuffer\r
150 )\r
151/*++\r
152\r
153Routine Description:\r
154\r
155 TODO: Add function description\r
156\r
157Arguments:\r
158\r
159 This - TODO: add argument description\r
160 Handle - TODO: add argument description\r
161 NumberOfChildren - TODO: add argument description\r
162 ChildHandleBuffer - TODO: add argument description\r
163\r
164Returns:\r
165\r
166 TODO: add return values\r
167\r
168--*/\r
169;\r
170\r
171EFI_STATUS\r
172SetFilePointer64 (\r
173 IN UNIX_BLOCK_IO_PRIVATE *Private,\r
174 IN INT64 DistanceToMove,\r
175 OUT UINT64 *NewFilePointer,\r
176 IN INT32 MoveMethod\r
177 )\r
178/*++\r
179\r
180Routine Description:\r
181\r
182 TODO: Add function description\r
183\r
184Arguments:\r
185\r
186 Private - TODO: add argument description\r
187 DistanceToMove - TODO: add argument description\r
188 NewFilePointer - TODO: add argument description\r
189 MoveMethod - TODO: add argument description\r
190\r
191Returns:\r
192\r
193 TODO: add return values\r
194\r
195--*/\r
196;\r
197\r
198UINTN\r
199Atoi (\r
200 CHAR16 *String\r
201 )\r
202/*++\r
203\r
204Routine Description:\r
205\r
206 TODO: Add function description\r
207\r
208Arguments:\r
209\r
210 String - TODO: add argument description\r
211\r
212Returns:\r
213\r
214 TODO: add return values\r
215\r
216--*/\r
217;\r
218\r
219#endif\r