74 ReqIoVec[0].Buffer = &CommonReq;
75 ReqIoVec[0].Size =
sizeof CommonReq;
76 ReqIoVec[1].Buffer = Name;
78 ReqSgList.IoVec = ReqIoVec;
81 RespIoVec[0].Buffer = &CommonResp;
82 RespIoVec[0].Size =
sizeof CommonResp;
83 RespIoVec[1].Buffer = &NodeResp;
84 RespIoVec[1].Size =
sizeof NodeResp;
85 RespIoVec[2].Buffer = FuseAttr;
86 RespIoVec[2].Size =
sizeof *FuseAttr;
87 RespSgList.IoVec = RespIoVec;
94 if (EFI_ERROR (Status)) {
105 VirtioFsFuseOpLookup,
108 if (EFI_ERROR (Status)) {
116 if (EFI_ERROR (Status)) {
124 if (EFI_ERROR (Status)) {
125 if (Status == EFI_DEVICE_ERROR) {
127 ((CommonResp.Error == VIRTIO_FS_FUSE_ERRNO_ENOENT) ?
130 "%a: Label=\"%s\" DirNodeId=%Lu Name=\"%a\" Errno=%d\n",
137 if (CommonResp.Error == VIRTIO_FS_FUSE_ERRNO_ENOENT) {
138 return EFI_NOT_FOUND;
150 *NodeId = NodeResp.NodeId;
154 return (Status == EFI_NOT_FOUND) ? EFI_DEVICE_ERROR : Status;
UINTN EFIAPI AsciiStrSize(IN CONST CHAR8 *String)
EFI_STATUS VirtioFsFuseLookup(IN OUT VIRTIO_FS *VirtioFs, IN UINT64 DirNodeId, IN CHAR8 *Name, OUT UINT64 *NodeId, OUT VIRTIO_FS_FUSE_ATTRIBUTES_RESPONSE *FuseAttr)
#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)