76 if (*Size > VirtioFs->MaxWrite) {
77 return EFI_BAD_BUFFER_SIZE;
83 ReqIoVec[0].Buffer = &CommonReq;
84 ReqIoVec[0].Size =
sizeof CommonReq;
85 ReqIoVec[1].Buffer = &WriteReq;
86 ReqIoVec[1].Size =
sizeof WriteReq;
87 ReqIoVec[2].Buffer = Data;
88 ReqIoVec[2].Size = *Size;
89 ReqSgList.IoVec = ReqIoVec;
92 RespIoVec[0].Buffer = &CommonResp;
93 RespIoVec[0].Size =
sizeof CommonResp;
94 RespIoVec[1].Buffer = &WriteResp;
95 RespIoVec[1].Size =
sizeof WriteResp;
96 RespSgList.IoVec = RespIoVec;
103 if (EFI_ERROR (Status)) {
117 if (EFI_ERROR (Status)) {
124 WriteReq.FileHandle = FuseHandle;
125 WriteReq.Offset = Offset;
126 WriteReq.Size = *Size;
127 WriteReq.WriteFlags = 0;
128 WriteReq.LockOwner = 0;
130 WriteReq.Padding = 0;
136 if (EFI_ERROR (Status)) {
144 if (EFI_ERROR (Status)) {
145 if (Status == EFI_DEVICE_ERROR) {
148 "%a: Label=\"%s\" NodeId=%Lu FuseHandle=%Lu "
149 "Offset=0x%Lx Size=0x%x Data@%p Errno=%d\n",
168 *Size = WriteResp.Size;
EFI_STATUS VirtioFsFuseWrite(IN OUT VIRTIO_FS *VirtioFs, IN UINT64 NodeId, IN UINT64 FuseHandle, IN UINT64 Offset, IN OUT UINT32 *Size, IN VOID *Data)
#define ARRAY_SIZE(Array)
#define DEBUG(Expression)
EFI_STATUS VirtioFsFuseCheckResponse(IN VIRTIO_FS_SCATTER_GATHER_LIST *ResponseSgList, IN UINT64 RequestId, OUT UINTN *TailBufferFill)
EFI_STATUS VirtioFsFuseNewRequest(IN OUT VIRTIO_FS *VirtioFs, OUT VIRTIO_FS_FUSE_REQUEST *Request, IN UINT32 RequestSize, IN VIRTIO_FS_FUSE_OPCODE Opcode, IN UINT64 NodeId)
EFI_STATUS VirtioFsSgListsSubmit(IN OUT VIRTIO_FS *VirtioFs, IN OUT VIRTIO_FS_SCATTER_GATHER_LIST *RequestSgList, IN OUT VIRTIO_FS_SCATTER_GATHER_LIST *ResponseSgList OPTIONAL)
EFI_STATUS VirtioFsErrnoToEfiStatus(IN INT32 Errno)
EFI_STATUS VirtioFsSgListsValidate(IN VIRTIO_FS *VirtioFs, IN OUT VIRTIO_FS_SCATTER_GATHER_LIST *RequestSgList, IN OUT VIRTIO_FS_SCATTER_GATHER_LIST *ResponseSgList OPTIONAL)