From bbe60f6cb6ca28bbe9f6a54e264d01dcb8f5940e Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 27 Nov 2017 09:08:57 +0100 Subject: sys/linux: improve fuse descriptions --- sys/linux/fuse.txt | 93 +++++++++++++++--------------------------------------- 1 file changed, 25 insertions(+), 68 deletions(-) (limited to 'sys/linux/fuse.txt') diff --git a/sys/linux/fuse.txt b/sys/linux/fuse.txt index 24e705438..e7fe9a1f1 100644 --- a/sys/linux/fuse.txt +++ b/sys/linux/fuse.txt @@ -10,64 +10,49 @@ resource fd_fuse[fd] syz_fuse_mount(target ptr[in, filename], mode flags[fuse_mode], uid uid, gid gid, maxread intptr, flags flags[mount_flags]) fd_fuse syz_fuseblk_mount(target ptr[in, filename], blkdev ptr[in, filename], mode flags[fuse_mode], uid uid, gid gid, maxread intptr, blksize intptr, flags flags[mount_flags]) fd_fuse ioctl$FUSE_DEV_IOC_CLONE(fd fd_fuse, cmd const[FUSE_DEV_IOC_CLONE], arg ptr[in, fd_fuse]) -write$fuse_init(fd fd_fuse, arg ptr[in, fuse_init_out], len len[arg]) -write$fuse_interrupt(fd fd_fuse, arg ptr[in, fuse_interrupt_out], len len[arg]) -write$fuse_bmap(fd fd_fuse, arg ptr[in, fuse_bmap_out], len len[arg]) -write$fuse_ioctl(fd fd_fuse, arg ptr[in, fuse_ioctl_out], len len[arg]) -write$fuse_poll(fd fd_fuse, arg ptr[in, fuse_poll_out], len len[arg]) -write$fuse_notify_poll_wakeup(fd fd_fuse, arg ptr[in, fuse_notify_poll_wakeup_out], len len[arg]) -write$fuse_notify_inval_inode(fd fd_fuse, arg ptr[in, fuse_notify_inval_inode_out], len len[arg]) -write$fuse_notify_inval_entry(fd fd_fuse, arg ptr[in, fuse_notify_inval_entry_out], len len[arg]) -write$fuse_notify_delete(fd fd_fuse, arg ptr[in, fuse_notify_delete_out], len len[arg]) -write$fuse_notify_store(fd fd_fuse, arg ptr[in, fuse_notify_store_out], len len[arg]) -write$fuse_notify_retrieve(fd fd_fuse, arg ptr[in, fuse_notify_retrieve_out], len len[arg]) +write$fuse(fd fd_fuse, arg ptr[in, fuse_out], len bytesize[arg]) # 1 stands for default_permissions, 2 - allow_other fuse_mode = 1, 2, S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK, S_IFLNK, S_IFDIR -fuse_init_out { +fuse_out { len len[parent, int32] - err int32 - unique int64 + err int32[0:1] + unique int64[0:10] + data fuse_reply +} + +fuse_reply [ + random array[int8] + fuse_init_out fuse_init_out + fuse_bmap_out fuse_bmap_out + fuse_ioctl_out fuse_ioctl_out + fuse_poll_out fuse_poll_out + fuse_notify_poll_wakeup_out fuse_notify_poll_wakeup_out + fuse_notify_inval_inode_out fuse_notify_inval_inode_out + fuse_notify_inval_entry_out fuse_notify_inval_entry_out + fuse_notify_delete_out fuse_notify_delete_out + fuse_notify_store_out fuse_notify_store_out + fuse_notify_retrieve_out fuse_notify_retrieve_out +] [varlen] - maj int32 - min int32 +fuse_init_out { + maj const[FUSE_KERNEL_VERSION, int32] + min const[FUSE_KERNEL_MINOR_VERSION, int32] readah int32 flags int32 backg int16 congest int16 maxwr int32 timegr int32 - unused0 const[0, int32] - unused1 const[0, int32] - unused2 const[0, int32] - unused3 const[0, int32] - unused4 const[0, int32] - unused5 const[0, int32] - unused6 const[0, int32] - unused7 const[0, int32] - unused8 const[0, int32] -} - -fuse_interrupt_out { - len len[parent, int32] - err int32 - unique int64 + unused0 array[const[0, int32], 9] } fuse_bmap_out { - len len[parent, int32] - err int32 - unique int64 - block int64 } fuse_ioctl_out { - len len[parent, int32] - err int32 - unique int64 - res int32 flags int32 iniovs int32 @@ -75,66 +60,38 @@ fuse_ioctl_out { } fuse_poll_out { - len len[parent, int32] - err int32 - unique int64 - revents int32 } fuse_notify_poll_wakeup_out { - len len[parent, int32] - err int32 - unique const[0, int64] - kh int16 } fuse_notify_inval_inode_out { - len1 len[parent, int32] - err int32 - unique const[0, int64] - ino int64 off int64 len2 int16 } fuse_notify_inval_entry_out { - len len[parent, int32] - err int32 - unique const[0, int64] - par int64 namelen int32 } fuse_notify_delete_out { - len len[parent, int32] - err int32 - unique const[0, int64] - par int64 child int64 namelen int32 } fuse_notify_store_out { - len len[parent, int32] - err int32 - unique const[0, int64] - nodeid int64 off int64 size int32 } fuse_notify_retrieve_out { - len len[parent, int32] - err int32 - unique1 const[0, int64] - - unique2 int64 + unique2 int64[0:10] nodeid int64 off int64 size int32 -- cgit mrf-deployment