107 UINTN TailBufferFill;
112 ReqIoVec[0].Buffer = &CommonReq;
113 ReqIoVec[0].Size =
sizeof CommonReq;
114 ReqIoVec[1].Buffer = &ReadReq;
115 ReqIoVec[1].Size =
sizeof ReadReq;
116 ReqSgList.IoVec = ReqIoVec;
119 RespIoVec[0].Buffer = &CommonResp;
120 RespIoVec[0].Size =
sizeof CommonResp;
121 RespIoVec[1].Buffer = Data;
122 RespIoVec[1].Size = *Size;
123 RespSgList.IoVec = RespIoVec;
130 if (EFI_ERROR (Status)) {
141 IsDir ? VirtioFsFuseOpReadDirPlus : VirtioFsFuseOpRead,
144 if (EFI_ERROR (Status)) {
151 ReadReq.FileHandle = FuseHandle;
152 ReadReq.Offset = Offset;
153 ReadReq.Size = *Size;
154 ReadReq.ReadFlags = 0;
155 ReadReq.LockOwner = 0;
163 if (EFI_ERROR (Status)) {
175 if (EFI_ERROR (Status)) {
176 if (Status == EFI_DEVICE_ERROR) {
179 "%a: Label=\"%s\" NodeId=%Lu FuseHandle=%Lu "
180 "IsDir=%d Offset=0x%Lx Size=0x%x Data@%p Errno=%d\n",
203 *Size = (UINT32)TailBufferFill;
EFI_STATUS VirtioFsFuseReadFileOrDir(IN OUT VIRTIO_FS *VirtioFs, IN UINT64 NodeId, IN UINT64 FuseHandle, IN BOOLEAN IsDir, IN UINT64 Offset, IN OUT UINT32 *Size, OUT 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)