3 Copyright (c) 2004 - 2005, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Produce block IO abstractions for real devices on your PC using Posix APIs.
19 The configuration of what devices to mount or emulate comes from UNIX
20 environment variables. The variables must be visible to the Microsoft*
21 Developer Studio for them to work.
23 * Other names and brands may be claimed as the property of others.
27 #ifndef _UNIX_BLOCK_IO_H_
28 #define _UNIX_BLOCK_IO_H_
30 #define FILENAME_BUFFER_SIZE 80
33 // Language supported for driverconfiguration protocol
35 #define LANGUAGESUPPORTED "eng"
37 #define UNIX_BLOCK_IO_PRIVATE_SIGNATURE EFI_SIGNATURE_32 ('L', 'X', 'b', 'k')
43 char Filename
[FILENAME_BUFFER_SIZE
];
51 UINT64 NumberOfBlocks
;
54 EFI_BLOCK_IO_PROTOCOL BlockIo
;
55 EFI_BLOCK_IO_MEDIA Media
;
57 EFI_UNICODE_STRING_TABLE
*ControllerNameTable
;
59 EFI_UNIX_THUNK_PROTOCOL
*UnixThunk
;
61 } UNIX_BLOCK_IO_PRIVATE
;
63 #define UNIX_BLOCK_IO_PRIVATE_DATA_FROM_THIS(a) \
64 CR(a, UNIX_BLOCK_IO_PRIVATE, BlockIo, UNIX_BLOCK_IO_PRIVATE_SIGNATURE)
66 #define LIST_BUFFER_SIZE 512
69 // Block I/O Global Variables
71 extern EFI_DRIVER_BINDING_PROTOCOL gUnixBlockIoDriverBinding
;
72 extern EFI_COMPONENT_NAME_PROTOCOL gUnixBlockIoComponentName
;
73 extern EFI_DRIVER_CONFIGURATION_PROTOCOL gUnixBlockIoDriverConfiguration
;
74 extern EFI_DRIVER_DIAGNOSTICS_PROTOCOL gUnixBlockIoDriverDiagnostics
;
77 // EFI Driver Binding Functions
81 UnixBlockIoDriverBindingSupported (
82 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
84 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
90 TODO: Add function description
94 This - TODO: add argument description
95 Handle - TODO: add argument description
96 RemainingDevicePath - TODO: add argument description
100 TODO: add return values
107 UnixBlockIoDriverBindingStart (
108 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
109 IN EFI_HANDLE Handle
,
110 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
116 TODO: Add function description
120 This - TODO: add argument description
121 Handle - TODO: add argument description
122 RemainingDevicePath - TODO: add argument description
126 TODO: add return values
133 UnixBlockIoDriverBindingStop (
134 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
135 IN EFI_HANDLE Handle
,
136 IN UINTN NumberOfChildren
,
137 IN EFI_HANDLE
*ChildHandleBuffer
143 TODO: Add function description
147 This - TODO: add argument description
148 Handle - TODO: add argument description
149 NumberOfChildren - TODO: add argument description
150 ChildHandleBuffer - TODO: add argument description
154 TODO: add return values
161 IN UNIX_BLOCK_IO_PRIVATE
*Private
,
162 IN INT64 DistanceToMove
,
163 OUT UINT64
*NewFilePointer
,
170 TODO: Add function description
174 Private - TODO: add argument description
175 DistanceToMove - TODO: add argument description
176 NewFilePointer - TODO: add argument description
177 MoveMethod - TODO: add argument description
181 TODO: add return values
194 TODO: Add function description
198 String - TODO: add argument description
202 TODO: add return values