]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Include/IndustryStandard/VirtioFs.h
OvmfPkg/VirtioFsDxe: implement the wrapper function for FUSE_SETATTR
[mirror_edk2.git] / OvmfPkg / Include / IndustryStandard / VirtioFs.h
index 0b2ed701004672acd543ce28bdd786fc8055253a..15fb28f95a28f0c5ce917205b708b7e9f66c97d8 100644 (file)
@@ -102,6 +102,15 @@ typedef struct {
 #define VIRTIO_FS_FUSE_MODE_PERM_ROTH 0000004u\r
 #define VIRTIO_FS_FUSE_MODE_PERM_WOTH 0000002u\r
 \r
+//\r
+// Flags for VirtioFsFuseOpSetAttr, in the VIRTIO_FS_FUSE_SETATTR_REQUEST.Valid\r
+// field.\r
+//\r
+#define VIRTIO_FS_FUSE_SETATTR_REQ_F_MODE  BIT0\r
+#define VIRTIO_FS_FUSE_SETATTR_REQ_F_SIZE  BIT3\r
+#define VIRTIO_FS_FUSE_SETATTR_REQ_F_ATIME BIT4\r
+#define VIRTIO_FS_FUSE_SETATTR_REQ_F_MTIME BIT5\r
+\r
 //\r
 // Flags for VirtioFsFuseOpOpen.\r
 //\r
@@ -153,6 +162,7 @@ typedef enum {
   VirtioFsFuseOpLookup      =  1,\r
   VirtioFsFuseOpForget      =  2,\r
   VirtioFsFuseOpGetAttr     =  3,\r
+  VirtioFsFuseOpSetAttr     =  4,\r
   VirtioFsFuseOpMkDir       =  9,\r
   VirtioFsFuseOpUnlink      = 10,\r
   VirtioFsFuseOpRmDir       = 11,\r
@@ -240,7 +250,8 @@ typedef struct {
 } VIRTIO_FS_FUSE_FORGET_REQUEST;\r
 \r
 //\r
-// Headers for VirtioFsFuseOpGetAttr.\r
+// Headers for VirtioFsFuseOpGetAttr (VIRTIO_FS_FUSE_GETATTR_RESPONSE is also\r
+// for VirtioFsFuseOpSetAttr).\r
 //\r
 typedef struct {\r
   UINT32 GetAttrFlags;\r
@@ -254,6 +265,28 @@ typedef struct {
   UINT32 Dummy;\r
 } VIRTIO_FS_FUSE_GETATTR_RESPONSE;\r
 \r
+//\r
+// Header for VirtioFsFuseOpSetAttr.\r
+//\r
+typedef struct {\r
+  UINT32 Valid;\r
+  UINT32 Padding;\r
+  UINT64 FileHandle;\r
+  UINT64 Size;\r
+  UINT64 LockOwner;\r
+  UINT64 Atime;\r
+  UINT64 Mtime;\r
+  UINT64 Ctime;\r
+  UINT32 AtimeNsec;\r
+  UINT32 MtimeNsec;\r
+  UINT32 CtimeNsec;\r
+  UINT32 Mode;\r
+  UINT32 Unused4;\r
+  UINT32 Uid;\r
+  UINT32 Gid;\r
+  UINT32 Unused5;\r
+} VIRTIO_FS_FUSE_SETATTR_REQUEST;\r
+\r
 //\r
 // Header for VirtioFsFuseOpMkDir.\r
 //\r