\r
--*/\r
\r
-#include <fcntl.h>
-#include <unistd.h>
+#include <fcntl.h>\r
+#include <unistd.h>\r
#include "UnixBlockIo.h"\r
\r
//\r
UnixBlockIoDriverBindingSupported,\r
UnixBlockIoDriverBindingStart,\r
UnixBlockIoDriverBindingStop,\r
- 0x10,\r
+ 0xa,\r
NULL,\r
NULL\r
};\r
//\r
// Check the GUID to see if this is a handle type the driver supports\r
//\r
- if (CompareGuid (UnixIo->TypeGuid, &gEfiUnixVirtualDisksGuid) ) {
+ if (CompareGuid (UnixIo->TypeGuid, &gEfiUnixVirtualDisksGuid) ) {\r
Status = EFI_SUCCESS;\r
}\r
}\r
BOOLEAN WriteProtected;\r
UINTN NumberOfBlocks;\r
UINTN BlockSize;\r
- INTN i;
+ INTN i;\r
\r
//\r
// Grab the protocols we need\r
}\r
\r
Status = EFI_NOT_FOUND;\r
- // Extract filename.
+ // Extract filename.\r
Str = UnixIo->EnvString;\r
- i = 0;
- while (*Str && *Str != ':')
- Buffer[i++] = *Str++;
- Buffer[i] = 0;
+ i = 0;\r
+ while (*Str && *Str != ':')\r
+ Buffer[i++] = *Str++;\r
+ Buffer[i] = 0;\r
if (*Str != ':') {\r
goto Done;\r
}\r
\r
Str++;\r
\r
- RemovableMedia = FALSE;
- WriteProtected = TRUE;
- NumberOfBlocks = 0;
- BlockSize = 512;
- do {
+ RemovableMedia = FALSE;\r
+ WriteProtected = TRUE;\r
+ NumberOfBlocks = 0;\r
+ BlockSize = 512;\r
+ do {\r
if (*Str == 'R' || *Str == 'F') {\r
RemovableMedia = (BOOLEAN) (*Str == 'R');\r
Str++;\r
- }
+ }\r
if (*Str == 'O' || *Str == 'W') {\r
WriteProtected = (BOOLEAN) (*Str == 'O');\r
- Str++;
- }
- if (*Str == 0)
- break;
- if (*Str != ';')
- goto Done;
- Str++;
-
+ Str++;\r
+ }\r
+ if (*Str == 0)\r
+ break;\r
+ if (*Str != ';')\r
+ goto Done;\r
+ Str++;\r
+\r
NumberOfBlocks = Atoi (Str);\r
Str = GetNextElementPastTerminator (Str, ';');\r
- if (NumberOfBlocks == 0)
- break;
-
+ if (NumberOfBlocks == 0)\r
+ break;\r
+\r
BlockSize = Atoi (Str);\r
- if (BlockSize != 0)
+ if (BlockSize != 0)\r
Str = GetNextElementPastTerminator (Str, ';');\r
- } while (0);
-
+ } while (0);\r
+\r
//\r
// If we get here the variable is valid so do the work.\r
//\r
\r
Private->Filename[Index] = 0;\r
\r
- Private->Mode = (ReadOnly ? O_RDONLY : O_RDWR);
+ Private->Mode = (ReadOnly ? O_RDONLY : O_RDWR);\r
\r
Private->NumberOfBlocks = NumberOfBlocks;\r
- Private->fd = -1;
+ Private->fd = -1;\r
\r
Private->ControllerNameTable = NULL;\r
\r
//\r
// If the device is already opened, close it\r
//\r
- if (Private->fd >= 0) {
+ if (Private->fd >= 0) {\r
BlockIo->Reset (BlockIo, FALSE);\r
}\r
\r
//\r
// Open the device\r
//\r
- Private->fd = Private->UnixThunk->Open
- (Private->Filename, Private->Mode, 0644);
+ Private->fd = Private->UnixThunk->Open\r
+ (Private->Filename, Private->Mode, 0644);\r
\r
- if (Private->fd < 0) {
- DEBUG ((EFI_D_INFO, "PlOpenBlock: Could not open %s\n",
- Private->Filename));
+ if (Private->fd < 0) {\r
+ DEBUG ((EFI_D_INFO, "PlOpenBlock: Could not open %s\n",\r
+ Private->Filename));\r
BlockIo->Media->MediaPresent = FALSE;\r
Status = EFI_NO_MEDIA;\r
goto Done;\r
//\r
// first set it to 0\r
//\r
- Private->UnixThunk->FTruncate (Private->fd, 0);
+ Private->UnixThunk->FTruncate (Private->fd, 0);\r
\r
//\r
// then set it to the needed file size (OS will zero fill it)\r
//\r
- Private->UnixThunk->FTruncate (Private->fd, EndOfFile);
+ Private->UnixThunk->FTruncate (Private->fd, EndOfFile);\r
}\r
\r
DEBUG ((EFI_D_INIT, "%HPlOpenBlock: opened %s%N\n", Private->Filename));\r
--*/\r
{\r
return EFI_DEVICE_ERROR;\r
-
-#if 0
+\r
+#if 0\r
EFI_BLOCK_IO_PROTOCOL *BlockIo;\r
EFI_STATUS Status;\r
BOOLEAN ReinstallBlockIoFlag;\r
\r
-
+\r
BlockIo = &Private->BlockIo;\r
\r
switch (Private->UnixThunk->GetLastError ()) {\r
}\r
\r
return Status;\r
-#endif
+#endif\r
}\r
\r
STATIC\r
// Seek to End of File\r
//\r
DistanceToMove = MultU64x32 (Lba, BlockSize);\r
- Status = SetFilePointer64 (Private, DistanceToMove, &DistanceMoved, SEEK_SET);
+ Status = SetFilePointer64 (Private, DistanceToMove, &DistanceMoved, SEEK_SET);\r
\r
if (EFI_ERROR (Status)) {\r
DEBUG ((EFI_D_INIT, "WriteBlocks: SetFilePointer failed\n"));\r
--*/\r
{\r
UNIX_BLOCK_IO_PRIVATE *Private;\r
- ssize_t len;
+ ssize_t len;\r
EFI_STATUS Status;\r
\r
Private = UNIX_BLOCK_IO_PRIVATE_DATA_FROM_THIS (This);\r
return Status;\r
}\r
\r
- len = Private->UnixThunk->Read (Private->fd, Buffer, BufferSize);
+ len = Private->UnixThunk->Read (Private->fd, Buffer, BufferSize);\r
if (len != BufferSize) {\r
- DEBUG ((EFI_D_INIT, "ReadBlocks: ReadFile failed.\n"));
+ DEBUG ((EFI_D_INIT, "ReadBlocks: ReadFile failed.\n"));\r
return UnixBlockIoError (Private);\r
}\r
\r
--*/\r
{\r
UNIX_BLOCK_IO_PRIVATE *Private;\r
- ssize_t len;
+ ssize_t len;\r
EFI_STATUS Status;\r
\r
Private = UNIX_BLOCK_IO_PRIVATE_DATA_FROM_THIS (This);\r
return Status;\r
}\r
\r
- len = Private->UnixThunk->Write (Private->fd, Buffer, BufferSize);
+ len = Private->UnixThunk->Write (Private->fd, Buffer, BufferSize);\r
if (len != BufferSize) {\r
- DEBUG ((EFI_D_INIT, "ReadBlocks: WriteFile failed.\n"));
+ DEBUG ((EFI_D_INIT, "ReadBlocks: WriteFile failed.\n"));\r
return UnixBlockIoError (Private);\r
}\r
\r
\r
if (Private->fd >= 0) {\r
Private->UnixThunk->Close (Private->fd);\r
- Private->fd = -1;
+ Private->fd = -1;\r
}\r
\r
return EFI_SUCCESS;\r
// TODO: MoveMethod - add argument and description to function comment\r
{\r
EFI_STATUS Status;\r
- off_t res;
+ off_t res;\r
\r
- res = Private->UnixThunk->Lseek(Private->fd, DistanceToMove, MoveMethod);
- if (res == -1) {
+ res = Private->UnixThunk->Lseek(Private->fd, DistanceToMove, MoveMethod);\r
+ if (res == -1) {\r
Status = EFI_INVALID_PARAMETER;\r
}\r
\r
if (NewFilePointer != NULL) {\r
- *NewFilePointer = res;
+ *NewFilePointer = res;\r
}\r
\r
return Status;\r