*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: fb_setup | Section: 9 | Source: OpenBSD | File: fb_setup.9
FB_SETUP(9) FreeBSD Kernel Developer's Manual FB_SETUP(9) NAME fb_setup, fb_queue, fb_delete - kernel messaging mechanism for file system in userland (FUSE) SYNOPSIS #include <sys/fusebuf.h> struct fusebuf * fb_setup(size_t size, ino_t inode, int type, struct proc *p); int fb_queue(dev_t dev, struct fusebuf *fbuf); void fb_delete(struct fusebuf *fbuf); #define FUSEBUFMAXSIZE (4096*1024) #define FUSEBUFSIZE (sizeof(struct fusebuf)) struct fb_hdr { SIMPLEQ_ENTRY(fusebuf) fh_next; size_t fh_len; int fh_err; int fh_type; ino_t fh_ino; uint64_t fh_uuid; }; struct fb_io { uint64_t fi_fd; ino_t fi_ino; off_t fi_off; size_t fi_len; mode_t fi_mode; uint32_t fi_flags; }; struct fusebuf { struct fb_hdr fb_hdr; union { struct statvfs FD_stat; struct stat FD_attr; struct fb_io FD_io; } FD; uint8_t *fb_dat; }; #define fb_next fb_hdr.fh_next #define fb_len fb_hdr.fh_len #define fb_err fb_hdr.fh_err #define fb_type fb_hdr.fh_type #define fb_ino fb_hdr.fh_ino #define fb_uuid fb_hdr.fh_uuid #define fb_stat FD.FD_stat #define fb_attr FD.FD_attr #define fb_io_fd FD.FD_io.fi_fd #define fb_io_ino FD.FD_io.fi_ino #define fb_io_off FD.FD_io.fi_off #define fb_io_len FD.FD_io.fi_len #define fb_io_mode FD.FD_io.fi_mode #define fb_io_flags FD.FD_io.fi_flags DESCRIPTION These functions provide a way to manage the kernel messaging mechanism for fuse(4) file systems. It is based on mbuf(9). Each FUSE operation fits in a fusebuf except for read, write, and readdirs, which are split into several fusebufs with a changing value in fb_io_off for each. The size of a fusebuf is FUSEBUFSIZE. A fusebuf structure is defined as an fb_hdr followed by a structure containing a union and a buffer F_Dat. The header contains the following elements: fh_next A SIMPLEQ_ENTRY(3) needed to store the different fusebufs stored with fb_queue(). fh_len Indicates the amount of data in F_dat. fh_resid Used for partial fuse(4) reads. If the read does not fill the fusebuf, the number of bytes of F_dat written in this field are stored. fh_err Indicates the errno(2) failure of a fusebuf. fh_type Indicates the type of fusebuf transaction (see below). fh_ino Indicates the inode on which the fuse(4) operation is done. fh_uuid UUID to track the answer. This number is generated with arc4random(9). The fh_type variable can take the following values: FBT_LOOKUP The fusebuf is a lookup operation. FBT_GETATTR The fusebuf is a gettattr operation. FBT_SETATTR The fusebuf is a setattr operation. FBT_READLINK The fusebuf is a readlink operation. FBT_SYMLINK The fusebuf is a symlink operation. FBT_MKNOD The fusebuf is a mknod operation. FBT_MKDIR The fusebuf is a mkdir operation. FBT_UNLINK The fusebuf is an unlink operation. FBT_RMDIR The fusebuf is an rmdir operation. FBT_RENAME The fusebuf is a rename operation. FBT_LINK The fusebuf is a link operation. FBT_OPEN The fusebuf is an open operation. FBT_READ The fusebuf is a read operation. FBT_WRITE The fusebuf is a write operation. FBT_STATFS The fusebuf is a statfs operation. FBT_RELEASE The fusebuf is a file close operation. FBT_FSYNC The fusebuf is a file sync operation. FBT_FLUSH The fusebuf is a flush operation. FBT_INIT The fusebuf initializes the FUSE connection. FBT_OPENDIR The fusebuf is an opendir operation. FBT_READDIR The fusebuf is a readdir operation. FBT_RELEASEDIR The fusebuf is a close dir operation. FBT_FSYNCDIR The fusebuf is a dir sync operation. FBT_ACCESS The fusebuf is an access operation. FBT_DESTROY The fusebuf closes the FUSE connection. All the data needed by the FUSE clients is contained in the F_dat structure. This structure contains a union FD of frequently used type and a buffer F_databuf to send data to libfuse. The union contains the following elements: FD_stat A struct statvfs(3) filled in by the FUSE client statfs for the FUSE VFS statfs code. FD_attr Used by the getattr and setattr calls. FD_io Contains all fields commonly used by FUSE client callbacks to provide information to FUSE vnops. It is used by access, readdir, release, releasedir, read, write, mkdir, and setattr. Setattr uses a struct fb_io and a struct stat. Settattr uses FD_stat and encapsulates a struct fb_io in F_databuf with fbtod. Fusebufs can be deleted with the fb_delete() helper. SEE ALSO errno(2), fuse_main(3), queue(3), statvfs(3), fuse(4), arc4random(9), mbuf(9) HISTORY The fb_setup API first appeared in OpenBSD 5.4. FreeBSD 14.1-RELEASE-p8 November 30, 2017 FreeBSD 14.1-RELEASE-p8

Navigation Options