EFI_STATUS\r
EFIAPI\r
VirtioFsSimpleFileWrite (\r
- IN EFI_FILE_PROTOCOL *This,\r
- IN OUT UINTN *BufferSize,\r
- IN VOID *Buffer\r
+ IN EFI_FILE_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ IN VOID *Buffer\r
)\r
{\r
- VIRTIO_FS_FILE *VirtioFsFile;\r
- VIRTIO_FS *VirtioFs;\r
- EFI_STATUS Status;\r
- UINTN Transferred;\r
- UINTN Left;\r
+ VIRTIO_FS_FILE *VirtioFsFile;\r
+ VIRTIO_FS *VirtioFs;\r
+ EFI_STATUS Status;\r
+ UINTN Transferred;\r
+ UINTN Left;\r
\r
VirtioFsFile = VIRTIO_FS_FILE_FROM_SIMPLE_FILE (This);\r
VirtioFs = VirtioFsFile->OwnerFs;\r
if (VirtioFsFile->IsDirectory) {\r
return EFI_UNSUPPORTED;\r
}\r
+\r
if (!VirtioFsFile->IsOpenForWriting) {\r
return EFI_ACCESS_DENIED;\r
}\r
Transferred = 0;\r
Left = *BufferSize;\r
while (Left > 0) {\r
- UINT32 WriteSize;\r
+ UINT32 WriteSize;\r
\r
//\r
// Honor the write buffer size limit.\r
//\r
WriteSize = (UINT32)MIN ((UINTN)VirtioFs->MaxWrite, Left);\r
- Status = VirtioFsFuseWrite (\r
- VirtioFs,\r
- VirtioFsFile->NodeId,\r
- VirtioFsFile->FuseHandle,\r
- VirtioFsFile->FilePosition + Transferred,\r
- &WriteSize,\r
- (UINT8 *)Buffer + Transferred\r
- );\r
- if (!EFI_ERROR (Status) && WriteSize == 0) {\r
+ Status = VirtioFsFuseWrite (\r
+ VirtioFs,\r
+ VirtioFsFile->NodeId,\r
+ VirtioFsFile->FuseHandle,\r
+ VirtioFsFile->FilePosition + Transferred,\r
+ &WriteSize,\r
+ (UINT8 *)Buffer + Transferred\r
+ );\r
+ if (!EFI_ERROR (Status) && (WriteSize == 0)) {\r
//\r
// Progress should have been made.\r
//\r
Status = EFI_DEVICE_ERROR;\r
}\r
+\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r
+\r
Transferred += WriteSize;\r
Left -= WriteSize;\r
}\r
\r
- *BufferSize = Transferred;\r
+ *BufferSize = Transferred;\r
VirtioFsFile->FilePosition += Transferred;\r
//\r
// According to the UEFI spec,\r