--- /dev/null
+/*++\r
+\r
+Copyright (c) 2004 - 2005, Intel Corporation \r
+All rights reserved. This program and the accompanying materials \r
+are licensed and made available under the terms and conditions of the BSD License \r
+which accompanies this distribution. The full text of the license may be found at \r
+http://opensource.org/licenses/bsd-license.php \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+Module Name:\r
+\r
+ UnixBlockIo.h\r
+\r
+Abstract:\r
+\r
+ Produce block IO abstractions for real devices on your PC using Win32 APIs.\r
+ The configuration of what devices to mount or emulate comes from NT \r
+ environment variables. The variables must be visible to the Microsoft* \r
+ Developer Studio for them to work.\r
+\r
+ * Other names and brands may be claimed as the property of others.\r
+\r
+--*/\r
+\r
+#ifndef _UNIX_BLOCK_IO_H_\r
+#define _UNIX_BLOCK_IO_H_\r
+\r
+#define FILENAME_BUFFER_SIZE 80\r
+\r
+//\r
+// Language supported for driverconfiguration protocol\r
+//\r
+#define LANGUAGESUPPORTED "eng"\r
+\r
+#define UNIX_BLOCK_IO_PRIVATE_SIGNATURE EFI_SIGNATURE_32 ('L', 'X', 'b', 'k')\r
+typedef struct {\r
+ UINTN Signature;\r
+\r
+ EFI_LOCK Lock;\r
+\r
+ char Filename[FILENAME_BUFFER_SIZE];\r
+ UINTN ReadMode;\r
+ UINTN Mode;\r
+\r
+ int fd;
+\r
+ UINT64 LastBlock;\r
+ UINTN BlockSize;\r
+ UINT64 NumberOfBlocks;\r
+\r
+ EFI_HANDLE EfiHandle;\r
+ EFI_BLOCK_IO_PROTOCOL BlockIo;\r
+ EFI_BLOCK_IO_MEDIA Media;\r
+\r
+ EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
+\r
+ EFI_UNIX_THUNK_PROTOCOL *UnixThunk;\r
+\r
+} UNIX_BLOCK_IO_PRIVATE;\r
+\r
+#define UNIX_BLOCK_IO_PRIVATE_DATA_FROM_THIS(a) \\r
+ CR(a, UNIX_BLOCK_IO_PRIVATE, BlockIo, UNIX_BLOCK_IO_PRIVATE_SIGNATURE)\r
+\r
+#define LIST_BUFFER_SIZE 512\r
+\r
+//\r
+// Block I/O Global Variables\r
+//\r
+extern EFI_DRIVER_BINDING_PROTOCOL gUnixBlockIoDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gUnixBlockIoComponentName;\r
+extern EFI_DRIVER_CONFIGURATION_PROTOCOL gUnixBlockIoDriverConfiguration;\r
+extern EFI_DRIVER_DIAGNOSTICS_PROTOCOL gUnixBlockIoDriverDiagnostics;\r
+\r
+//\r
+// EFI Driver Binding Functions\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+UnixBlockIoDriverBindingSupported (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Handle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Handle - TODO: add argument description\r
+ RemainingDevicePath - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+UnixBlockIoDriverBindingStart (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Handle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Handle - TODO: add argument description\r
+ RemainingDevicePath - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+UnixBlockIoDriverBindingStop (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Handle,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Handle - TODO: add argument description\r
+ NumberOfChildren - TODO: add argument description\r
+ ChildHandleBuffer - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+SetFilePointer64 (\r
+ IN UNIX_BLOCK_IO_PRIVATE *Private,\r
+ IN INT64 DistanceToMove,\r
+ OUT UINT64 *NewFilePointer,\r
+ IN INT32 MoveMethod\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ Private - TODO: add argument description\r
+ DistanceToMove - TODO: add argument description\r
+ NewFilePointer - TODO: add argument description\r
+ MoveMethod - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+UINTN\r
+Atoi (\r
+ CHAR16 *String\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ String - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+#endif\r