45 IN UINT64 ParentNodeId,
64 ReqIoVec[0].Buffer = &CommonReq;
65 ReqIoVec[0].Size =
sizeof CommonReq;
66 ReqIoVec[1].Buffer = &MkDirReq;
67 ReqIoVec[1].Size =
sizeof MkDirReq;
68 ReqIoVec[2].Buffer = Name;
70 ReqSgList.IoVec = ReqIoVec;
73 RespIoVec[0].Buffer = &CommonResp;
74 RespIoVec[0].Size =
sizeof CommonResp;
75 RespIoVec[1].Buffer = &NodeResp;
76 RespIoVec[1].Size =
sizeof NodeResp;
77 RespIoVec[2].Buffer = &AttrResp;
78 RespIoVec[2].Size =
sizeof AttrResp;
79 RespSgList.IoVec = RespIoVec;
86 if (EFI_ERROR (Status)) {
100 if (EFI_ERROR (Status)) {
107 MkDirReq.Mode = (VIRTIO_FS_FUSE_MODE_PERM_RWXU |
108 VIRTIO_FS_FUSE_MODE_PERM_RWXG |
109 VIRTIO_FS_FUSE_MODE_PERM_RWXO);
116 if (EFI_ERROR (Status)) {
124 if (EFI_ERROR (Status)) {
125 if (Status == EFI_DEVICE_ERROR) {
128 "%a: Label=\"%s\" ParentNodeId=%Lu Name=\"%a\" "
145 *NodeId = NodeResp.NodeId;
UINTN EFIAPI AsciiStrSize(IN CONST CHAR8 *String)
EFI_STATUS VirtioFsFuseMkDir(IN OUT VIRTIO_FS *VirtioFs, IN UINT64 ParentNodeId, IN CHAR8 *Name, OUT UINT64 *NodeId)
#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)