1
2
3
/* automatically generated by rust-bindgen */

# [ repr ( C ) ] # [ derive ( Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd ) ] pub struct __BindgenBitfieldUnit < Storage , Align > { storage : Storage , align : [ Align ; 0 ] , } impl < Storage , Align > __BindgenBitfieldUnit < Storage , Align > { # [ inline ] pub const fn new ( storage : Storage ) -> Self { Self { storage , align : [ ] } } } impl < Storage , Align > __BindgenBitfieldUnit < Storage , Align > where Storage : AsRef < [ u8 ] > + AsMut < [ u8 ] >, { # [ inline ] pub fn get_bit ( & self , index : usize ) -> bool { debug_assert ! ( index / 8 < self . storage . as_ref ( ) . len ( ) ) ; let byte_index = index / 8 ; let byte = self . storage . as_ref ( ) [ byte_index ] ; let bit_index = if cfg ! ( target_endian = "big" ) { 7 - ( index % 8 ) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [ inline ] pub fn set_bit ( & mut self , index : usize , val : bool ) { debug_assert ! ( index / 8 < self . storage . as_ref ( ) . len ( ) ) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut ( ) [ byte_index ] ; let bit_index = if cfg ! ( target_endian = "big" ) { 7 - ( index % 8 ) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [ inline ] pub fn get ( & self , bit_offset : usize , bit_width : u8 ) -> u64 { debug_assert ! ( bit_width <= 64 ) ; debug_assert ! ( bit_offset / 8 < self . storage . as_ref ( ) . len ( ) ) ; debug_assert ! ( ( bit_offset + ( bit_width as usize ) ) / 8 <= self . storage . as_ref ( ) . len ( ) ) ; let mut val = 0 ; for i in 0 .. ( bit_width as usize ) { if self . get_bit ( i + bit_offset ) { let index = if cfg ! ( target_endian = "big" ) { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [ inline ] pub fn set ( & mut self , bit_offset : usize , bit_width : u8 , val : u64 ) { debug_assert ! ( bit_width <= 64 ) ; debug_assert ! ( bit_offset / 8 < self . storage . as_ref ( ) . len ( ) ) ; debug_assert ! ( ( bit_offset + ( bit_width as usize ) ) / 8 <= self . storage . as_ref ( ) . len ( ) ) ; for i in 0 .. ( bit_width as usize ) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! ( target_endian = "big" ) { bit_width as usize - 1 - i } else { i } ; self . set_bit ( index + bit_offset , val_bit_is_set ) ; } } } # [ doc = " Option description" ] # [ doc = "" ] # [ doc = " This structure describes a single option, and action associated" ] # [ doc = " with it, in case it matches." ] # [ doc = "" ] # [ doc = " More than one such match may occur, in which case the action for" ] # [ doc = " each match is executed." ] # [ doc = "" ] # [ doc = " There are three possible actions in case of a match:" ] # [ doc = "" ] # [ doc = " i) An integer (int or unsigned) variable determined by 'offset' is" ] # [ doc = "    set to 'value'" ] # [ doc = "" ] # [ doc = " ii) The processing function is called, with 'value' as the key" ] # [ doc = "" ] # [ doc = " iii) An integer (any) or string (char *) variable determined by" ] # [ doc = "    'offset' is set to the value of an option parameter" ] # [ doc = "" ] # [ doc = " 'offset' should normally be either set to" ] # [ doc = "" ] # [ doc = "  - 'offsetof(struct foo, member)'  actions i) and iii)" ] # [ doc = "" ] # [ doc = "  - -1\t\t\t      action ii)" ] # [ doc = "" ] # [ doc = " The 'offsetof()' macro is defined in the <stddef.h> header." ] # [ doc = "" ] # [ doc = " The template determines which options match, and also have an" ] # [ doc = " effect on the action.  Normally the action is either i) or ii), but" ] # [ doc = " if a format is present in the template, then action iii) is" ] # [ doc = " performed." ] # [ doc = "" ] # [ doc = " The types of templates are:" ] # [ doc = "" ] # [ doc = " 1) \"-x\", \"-foo\", \"--foo\", \"--foo-bar\", etc.\tThese match only" ] # [ doc = "   themselves.  Invalid values are \"--\" and anything beginning" ] # [ doc = "   with \"-o\"" ] # [ doc = "" ] # [ doc = " 2) \"foo\", \"foo-bar\", etc.  These match \"-ofoo\", \"-ofoo-bar\" or" ] # [ doc = "    the relevant option in a comma separated option list" ] # [ doc = "" ] # [ doc = " 3) \"bar=\", \"--foo=\", etc.  These are variations of 1) and 2)" ] # [ doc = "    which have a parameter" ] # [ doc = "" ] # [ doc = " 4) \"bar=%s\", \"--foo=%lu\", etc.  Same matching as above but perform" ] # [ doc = "    action iii)." ] # [ doc = "" ] # [ doc = " 5) \"-x \", etc.  Matches either \"-xparam\" or \"-x param\" as" ] # [ doc = "    two separate arguments" ] # [ doc = "" ] # [ doc = " 6) \"-x %s\", etc.  Combination of 4) and 5)" ] # [ doc = "" ] # [ doc = " If the format is \"%s\", memory is allocated for the string unlike" ] # [ doc = " with scanf()." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_opt { # [ doc = " Matching template and optional parameter formatting" ] pub templ : * const :: std :: os :: raw :: c_char , # [ doc = " Offset of variable within 'data' parameter of fuse_opt_parse()" ] # [ doc = " or -1" ] pub offset : :: std :: os :: raw :: c_ulong , # [ doc = " Value to set the variable to, or to be passed as 'key' to the" ] # [ doc = " processing function.\t Ignored if template has a format" ] pub value : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_fuse_opt ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_opt > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( fuse_opt ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_opt > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_opt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_opt > ( ) ) ) . templ as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_opt ) , "::" , stringify ! ( templ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_opt > ( ) ) ) . offset as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_opt ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_opt > ( ) ) ) . value as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_opt ) , "::" , stringify ! ( value ) ) ) ; } impl Default for fuse_opt { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } # [ doc = " Argument list" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_args { # [ doc = " Argument count" ] pub argc : :: std :: os :: raw :: c_int , # [ doc = " Argument vector.  NULL terminated" ] pub argv : * mut * mut :: std :: os :: raw :: c_char , # [ doc = " Is 'argv' allocated?" ] pub allocated : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_fuse_args ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_args > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( fuse_args ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_args > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_args ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_args > ( ) ) ) . argc as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_args ) , "::" , stringify ! ( argc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_args > ( ) ) ) . argv as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_args ) , "::" , stringify ! ( argv ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_args > ( ) ) ) . allocated as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_args ) , "::" , stringify ! ( allocated ) ) ) ; } impl Default for fuse_args { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } # [ doc = " Processing function" ] # [ doc = "" ] # [ doc = " This function is called if" ] # [ doc = "    - option did not match any 'struct fuse_opt'" ] # [ doc = "    - argument is a non-option" ] # [ doc = "    - option did match and offset was set to -1" ] # [ doc = "" ] # [ doc = " The 'arg' parameter will always contain the whole argument or" ] # [ doc = " option including the parameter if exists.  A two-argument option" ] # [ doc = " (\"-x foo\") is always converted to single argument option of the" ] # [ doc = " form \"-xfoo\" before this function is called." ] # [ doc = "" ] # [ doc = " Options of the form '-ofoo' are passed to this function without the" ] # [ doc = " '-o' prefix." ] # [ doc = "" ] # [ doc = " The return value of this function determines whether this argument" ] # [ doc = " is to be inserted into the output argument vector, or discarded." ] # [ doc = "" ] # [ doc = " @param data is the user data passed to the fuse_opt_parse() function" ] # [ doc = " @param arg is the whole argument or option" ] # [ doc = " @param key determines why the processing function was called" ] # [ doc = " @param outargs the current output argument list" ] # [ doc = " @return -1 on error, 0 if arg is to be discarded, 1 if arg should be kept" ] pub type fuse_opt_proc_t = :: std :: option :: Option < unsafe extern "C" fn ( data : * mut :: std :: os :: raw :: c_void , arg : * const :: std :: os :: raw :: c_char , key : :: std :: os :: raw :: c_int , outargs : * mut fuse_args ) -> :: std :: os :: raw :: c_int > ; extern "C" { # [ doc = " Option parsing function" ] # [ doc = "" ] # [ doc = " If 'args' was returned from a previous call to fuse_opt_parse() or" ] # [ doc = " it was constructed from" ] # [ doc = "" ] # [ doc = " A NULL 'args' is equivalent to an empty argument vector" ] # [ doc = "" ] # [ doc = " A NULL 'opts' is equivalent to an 'opts' array containing a single" ] # [ doc = " end marker" ] # [ doc = "" ] # [ doc = " A NULL 'proc' is equivalent to a processing function always" ] # [ doc = " returning '1'" ] # [ doc = "" ] # [ doc = " @param args is the input and output argument list" ] # [ doc = " @param data is the user data" ] # [ doc = " @param opts is the option description array" ] # [ doc = " @param proc is the processing function" ] # [ doc = " @return -1 on error, 0 on success" ] pub fn fuse_opt_parse ( args : * mut fuse_args , data : * mut :: std :: os :: raw :: c_void , opts : * const fuse_opt , proc_ : fuse_opt_proc_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Add an option to a comma separated option list" ] # [ doc = "" ] # [ doc = " @param opts is a pointer to an option list, may point to a NULL value" ] # [ doc = " @param opt is the option to add" ] # [ doc = " @return -1 on allocation error, 0 on success" ] pub fn fuse_opt_add_opt ( opts : * mut * mut :: std :: os :: raw :: c_char , opt : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Add an option, escaping commas, to a comma separated option list" ] # [ doc = "" ] # [ doc = " @param opts is a pointer to an option list, may point to a NULL value" ] # [ doc = " @param opt is the option to add" ] # [ doc = " @return -1 on allocation error, 0 on success" ] pub fn fuse_opt_add_opt_escaped ( opts : * mut * mut :: std :: os :: raw :: c_char , opt : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Add an argument to a NULL terminated argument vector" ] # [ doc = "" ] # [ doc = " @param args is the structure containing the current argument list" ] # [ doc = " @param arg is the new argument to add" ] # [ doc = " @return -1 on allocation error, 0 on success" ] pub fn fuse_opt_add_arg ( args : * mut fuse_args , arg : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Add an argument at the specified position in a NULL terminated" ] # [ doc = " argument vector" ] # [ doc = "" ] # [ doc = " Adds the argument to the N-th position.  This is useful for adding" ] # [ doc = " options at the beginning of the array which must not come after the" ] # [ doc = " special '--' option." ] # [ doc = "" ] # [ doc = " @param args is the structure containing the current argument list" ] # [ doc = " @param pos is the position at which to add the argument" ] # [ doc = " @param arg is the new argument to add" ] # [ doc = " @return -1 on allocation error, 0 on success" ] pub fn fuse_opt_insert_arg ( args : * mut fuse_args , pos : :: std :: os :: raw :: c_int , arg : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Free the contents of argument list" ] # [ doc = "" ] # [ doc = " The structure itself is not freed" ] # [ doc = "" ] # [ doc = " @param args is the structure containing the argument list" ] pub fn fuse_opt_free_args ( args : * mut fuse_args ) ; } extern "C" { # [ doc = " Check if an option matches" ] # [ doc = "" ] # [ doc = " @param opts is the option description array" ] # [ doc = " @param opt is the option to match" ] # [ doc = " @return 1 if a match is found, 0 if not" ] pub fn fuse_opt_match ( opts : * const fuse_opt , opt : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } # [ doc = " Information about open files" ] # [ doc = "" ] # [ doc = " Changed in version 2.5" ] # [ repr ( C ) ] pub struct fuse_file_info { # [ doc = " Open flags.\t Available in open() and release()" ] pub flags : :: std :: os :: raw :: c_int , # [ doc = " Old file handle, don't use" ] pub fh_old : :: std :: os :: raw :: c_ulong , # [ doc = " In case of a write operation indicates if this was caused by a" ] # [ doc = "writepage" ] pub writepage : :: std :: os :: raw :: c_int , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > , # [ doc = " File handle.  May be filled in by filesystem in open()." ] # [ doc = "Available in all other file operations" ] pub fh : u64 , # [ doc = " Lock owner id.  Available in locking operations and flush" ] pub lock_owner : u64 , } # [ test ] fn bindgen_test_layout_fuse_file_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_file_info > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( fuse_file_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_file_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_file_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info > ( ) ) ) . fh_old as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info ) , "::" , stringify ! ( fh_old ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info > ( ) ) ) . writepage as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info ) , "::" , stringify ! ( writepage ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info > ( ) ) ) . fh as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info ) , "::" , stringify ! ( fh ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info > ( ) ) ) . lock_owner as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info ) , "::" , stringify ! ( lock_owner ) ) ) ; } impl Default for fuse_file_info { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl fuse_file_info { # [ inline ] pub fn direct_io ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_direct_io ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn keep_cache ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_keep_cache ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn flush ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_flush ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn nonseekable ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_nonseekable ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn flock_release ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 4usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_flock_release ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 4usize , 1u8 , val as u64 ) } } # [ inline ] pub fn padding ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 5usize , 27u8 ) as u32 ) } } # [ inline ] pub fn set_padding ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 5usize , 27u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( direct_io : :: std :: os :: raw :: c_uint , keep_cache : :: std :: os :: raw :: c_uint , flush : :: std :: os :: raw :: c_uint , nonseekable : :: std :: os :: raw :: c_uint , flock_release : :: std :: os :: raw :: c_uint , padding : :: std :: os :: raw :: c_uint ) -> __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let direct_io : u32 = unsafe { :: std :: mem :: transmute ( direct_io ) } ; direct_io as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let keep_cache : u32 = unsafe { :: std :: mem :: transmute ( keep_cache ) } ; keep_cache as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let flush : u32 = unsafe { :: std :: mem :: transmute ( flush ) } ; flush as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let nonseekable : u32 = unsafe { :: std :: mem :: transmute ( nonseekable ) } ; nonseekable as u64 } ) ; __bindgen_bitfield_unit . set ( 4usize , 1u8 , { let flock_release : u32 = unsafe { :: std :: mem :: transmute ( flock_release ) } ; flock_release as u64 } ) ; __bindgen_bitfield_unit . set ( 5usize , 27u8 , { let padding : u32 = unsafe { :: std :: mem :: transmute ( padding ) } ; padding as u64 } ) ; __bindgen_bitfield_unit } } # [ doc = " Connection information, passed to the ->init() method" ] # [ doc = "" ] # [ doc = " Some of the elements are read-write, these can be changed to" ] # [ doc = " indicate the value requested by the filesystem.  The requested" ] # [ doc = " value must usually be smaller than the indicated value." ] # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_conn_info { # [ doc = " Major version of the protocol (read-only)" ] pub proto_major : :: std :: os :: raw :: c_uint , # [ doc = " Minor version of the protocol (read-only)" ] pub proto_minor : :: std :: os :: raw :: c_uint , # [ doc = " Is asynchronous read supported (read-write)" ] pub async_read : :: std :: os :: raw :: c_uint , # [ doc = " Maximum size of the write buffer" ] pub max_write : :: std :: os :: raw :: c_uint , # [ doc = " Maximum readahead" ] pub max_readahead : :: std :: os :: raw :: c_uint , # [ doc = " Capability flags, that the kernel supports" ] pub capable : :: std :: os :: raw :: c_uint , # [ doc = " Capability flags, that the filesystem wants to enable" ] pub want : :: std :: os :: raw :: c_uint , # [ doc = " Maximum number of backgrounded requests" ] pub max_background : :: std :: os :: raw :: c_uint , # [ doc = " Kernel congestion threshold parameter" ] pub congestion_threshold : :: std :: os :: raw :: c_uint , # [ doc = " For future use." ] pub reserved : [ :: std :: os :: raw :: c_uint ; 23usize ] , } # [ test ] fn bindgen_test_layout_fuse_conn_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_conn_info > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( fuse_conn_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_conn_info > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( fuse_conn_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . proto_major as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( proto_major ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . proto_minor as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( proto_minor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . async_read as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( async_read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . max_write as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( max_write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . max_readahead as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( max_readahead ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . capable as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( capable ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . want as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( want ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . max_background as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( max_background ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . congestion_threshold as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( congestion_threshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_conn_info > ( ) ) ) . reserved as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( fuse_conn_info ) , "::" , stringify ! ( reserved ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_session { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_chan { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_pollhandle { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Create a FUSE mountpoint" ] # [ doc = "" ] # [ doc = " Returns a control file descriptor suitable for passing to" ] # [ doc = " fuse_new()" ] # [ doc = "" ] # [ doc = " @param mountpoint the mount point path" ] # [ doc = " @param args argument vector" ] # [ doc = " @return the communication channel on success, NULL on failure" ] pub fn fuse_mount ( mountpoint : * const :: std :: os :: raw :: c_char , args : * mut fuse_args ) -> * mut fuse_chan ; } extern "C" { # [ doc = " Umount a FUSE mountpoint" ] # [ doc = "" ] # [ doc = " @param mountpoint the mount point path" ] # [ doc = " @param ch the communication channel" ] pub fn fuse_unmount ( mountpoint : * const :: std :: os :: raw :: c_char , ch : * mut fuse_chan ) ; } extern "C" { # [ doc = " Parse common options" ] # [ doc = "" ] # [ doc = " The following options are parsed:" ] # [ doc = "" ] # [ doc = "   '-f'\t     foreground" ] # [ doc = "   '-d' '-odebug'  foreground, but keep the debug option" ] # [ doc = "   '-s'\t     single threaded" ] # [ doc = "   '-h' '--help'   help" ] # [ doc = "   '-ho'\t     help without header" ] # [ doc = "   '-ofsname=..'   file system name, if not present, then set to the program" ] # [ doc = "\t\t     name" ] # [ doc = "" ] # [ doc = " All parameters may be NULL" ] # [ doc = "" ] # [ doc = " @param args argument vector" ] # [ doc = " @param mountpoint the returned mountpoint, should be freed after use" ] # [ doc = " @param multithreaded set to 1 unless the '-s' option is present" ] # [ doc = " @param foreground set to 1 if one of the relevant options is present" ] # [ doc = " @return 0 on success, -1 on failure" ] pub fn fuse_parse_cmdline ( args : * mut fuse_args , mountpoint : * mut * mut :: std :: os :: raw :: c_char , multithreaded : * mut :: std :: os :: raw :: c_int , foreground : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Go into the background" ] # [ doc = "" ] # [ doc = " @param foreground if true, stay in the foreground" ] # [ doc = " @return 0 on success, -1 on failure" ] pub fn fuse_daemonize ( foreground : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Get the version of the library" ] # [ doc = "" ] # [ doc = " @return the version" ] pub fn fuse_version ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Destroy poll handle" ] # [ doc = "" ] # [ doc = " @param ph the poll handle" ] pub fn fuse_pollhandle_destroy ( ph : * mut fuse_pollhandle ) ; } # [ doc = " Buffer contains a file descriptor" ] # [ doc = "" ] # [ doc = " If this flag is set, the .fd field is valid, otherwise the" ] # [ doc = " .mem fields is valid." ] pub const fuse_buf_flags_FUSE_BUF_IS_FD : fuse_buf_flags = 2 ; # [ doc = " Seek on the file descriptor" ] # [ doc = "" ] # [ doc = " If this flag is set then the .pos field is valid and is" ] # [ doc = " used to seek to the given offset before performing" ] # [ doc = " operation on file descriptor." ] pub const fuse_buf_flags_FUSE_BUF_FD_SEEK : fuse_buf_flags = 4 ; # [ doc = " Retry operation on file descriptor" ] # [ doc = "" ] # [ doc = " If this flag is set then retry operation on file descriptor" ] # [ doc = " until .size bytes have been copied or an error or EOF is" ] # [ doc = " detected." ] pub const fuse_buf_flags_FUSE_BUF_FD_RETRY : fuse_buf_flags = 8 ; # [ doc = " Buffer flags" ] pub type fuse_buf_flags = u32 ; # [ doc = " Don't use splice(2)" ] # [ doc = "" ] # [ doc = " Always fall back to using read and write instead of" ] # [ doc = " splice(2) to copy data from one file descriptor to another." ] # [ doc = "" ] # [ doc = " If this flag is not set, then only fall back if splice is" ] # [ doc = " unavailable." ] pub const fuse_buf_copy_flags_FUSE_BUF_NO_SPLICE : fuse_buf_copy_flags = 2 ; # [ doc = " Force splice" ] # [ doc = "" ] # [ doc = " Always use splice(2) to copy data from one file descriptor" ] # [ doc = " to another.  If splice is not available, return -EINVAL." ] pub const fuse_buf_copy_flags_FUSE_BUF_FORCE_SPLICE : fuse_buf_copy_flags = 4 ; # [ doc = " Try to move data with splice." ] # [ doc = "" ] # [ doc = " If splice is used, try to move pages from the source to the" ] # [ doc = " destination instead of copying.  See documentation of" ] # [ doc = " SPLICE_F_MOVE in splice(2) man page." ] pub const fuse_buf_copy_flags_FUSE_BUF_SPLICE_MOVE : fuse_buf_copy_flags = 8 ; # [ doc = " Don't block on the pipe when copying data with splice" ] # [ doc = "" ] # [ doc = " Makes the operations on the pipe non-blocking (if the pipe" ] # [ doc = " is full or empty).  See SPLICE_F_NONBLOCK in the splice(2)" ] # [ doc = " man page." ] pub const fuse_buf_copy_flags_FUSE_BUF_SPLICE_NONBLOCK : fuse_buf_copy_flags = 16 ; # [ doc = " Buffer copy flags" ] pub type fuse_buf_copy_flags = u32 ; # [ doc = " Single data buffer" ] # [ doc = "" ] # [ doc = " Generic data buffer for I/O, extended attributes, etc...  Data may" ] # [ doc = " be supplied as a memory pointer or as a file descriptor" ] # [ repr ( C ) ] pub struct fuse_buf { # [ doc = " Size of data in bytes" ] pub size : usize , # [ doc = " Buffer flags" ] pub flags : fuse_buf_flags , # [ doc = " Memory pointer" ] # [ doc = "" ] # [ doc = " Used unless FUSE_BUF_IS_FD flag is set." ] pub mem : * mut :: std :: os :: raw :: c_void , # [ doc = " File descriptor" ] # [ doc = "" ] # [ doc = " Used if FUSE_BUF_IS_FD flag is set." ] pub fd : :: std :: os :: raw :: c_int , # [ doc = " File position" ] # [ doc = "" ] # [ doc = " Used if FUSE_BUF_FD_SEEK flag is set." ] pub pos : off_t , } # [ test ] fn bindgen_test_layout_fuse_buf ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_buf > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( fuse_buf ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_buf > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_buf > ( ) ) ) . size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_buf ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_buf > ( ) ) ) . flags as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_buf ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_buf > ( ) ) ) . mem as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_buf ) , "::" , stringify ! ( mem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_buf > ( ) ) ) . fd as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_buf ) , "::" , stringify ! ( fd ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_buf > ( ) ) ) . pos as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_buf ) , "::" , stringify ! ( pos ) ) ) ; } impl Default for fuse_buf { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } # [ doc = " Data buffer vector" ] # [ doc = "" ] # [ doc = " An array of data buffers, each containing a memory pointer or a" ] # [ doc = " file descriptor." ] # [ doc = "" ] # [ doc = " Allocate dynamically to add more than one buffer." ] # [ repr ( C ) ] pub struct fuse_bufvec { # [ doc = " Number of buffers in the array" ] pub count : usize , # [ doc = " Index of current buffer within the array" ] pub idx : usize , # [ doc = " Current offset within the current buffer" ] pub off : usize , # [ doc = " Array of buffers" ] pub buf : [ fuse_buf ; 1usize ] , } # [ test ] fn bindgen_test_layout_fuse_bufvec ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_bufvec > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( fuse_bufvec ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_bufvec > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_bufvec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_bufvec > ( ) ) ) . count as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_bufvec ) , "::" , stringify ! ( count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_bufvec > ( ) ) ) . idx as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_bufvec ) , "::" , stringify ! ( idx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_bufvec > ( ) ) ) . off as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_bufvec ) , "::" , stringify ! ( off ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_bufvec > ( ) ) ) . buf as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_bufvec ) , "::" , stringify ! ( buf ) ) ) ; } impl Default for fuse_bufvec { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } extern "C" { # [ doc = " Get total size of data in a fuse buffer vector" ] # [ doc = "" ] # [ doc = " @param bufv buffer vector" ] # [ doc = " @return size of data" ] pub fn fuse_buf_size ( bufv : * const fuse_bufvec ) -> usize ; } extern "C" { # [ doc = " Copy data from one buffer vector to another" ] # [ doc = "" ] # [ doc = " @param dst destination buffer vector" ] # [ doc = " @param src source buffer vector" ] # [ doc = " @param flags flags controlling the copy" ] # [ doc = " @return actual number of bytes copied or -errno on error" ] pub fn fuse_buf_copy ( dst : * mut fuse_bufvec , src : * mut fuse_bufvec , flags : fuse_buf_copy_flags ) -> isize ; } extern "C" { # [ doc = " Exit session on HUP, TERM and INT signals and ignore PIPE signal" ] # [ doc = "" ] # [ doc = " Stores session in a global variable.\t May only be called once per" ] # [ doc = " process until fuse_remove_signal_handlers() is called." ] # [ doc = "" ] # [ doc = " @param se the session to exit" ] # [ doc = " @return 0 on success, -1 on failure" ] pub fn fuse_set_signal_handlers ( se : * mut fuse_session ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Restore default signal handlers" ] # [ doc = "" ] # [ doc = " Resets global session.  After this fuse_set_signal_handlers() may" ] # [ doc = " be called again." ] # [ doc = "" ] # [ doc = " @param se the same session as given in fuse_set_signal_handlers()" ] pub fn fuse_remove_signal_handlers ( se : * mut fuse_session ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_file_info_compat { pub flags : :: std :: os :: raw :: c_int , pub fh : :: std :: os :: raw :: c_ulong , pub writepage : :: std :: os :: raw :: c_int , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_0 : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_fuse_file_info_compat ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_file_info_compat > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( fuse_file_info_compat ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_file_info_compat > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_file_info_compat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info_compat > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info_compat ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info_compat > ( ) ) ) . fh as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info_compat ) , "::" , stringify ! ( fh ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_file_info_compat > ( ) ) ) . writepage as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_file_info_compat ) , "::" , stringify ! ( writepage ) ) ) ; } impl fuse_file_info_compat { # [ inline ] pub fn direct_io ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_direct_io ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn keep_cache ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_keep_cache ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( direct_io : :: std :: os :: raw :: c_uint , keep_cache : :: std :: os :: raw :: c_uint ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let direct_io : u32 = unsafe { :: std :: mem :: transmute ( direct_io ) } ; direct_io as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let keep_cache : u32 = unsafe { :: std :: mem :: transmute ( keep_cache ) } ; keep_cache as u64 } ) ; __bindgen_bitfield_unit } } extern "C" { pub fn fuse_mount_compat25 ( mountpoint : * const :: std :: os :: raw :: c_char , args : * mut fuse_args ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_mount_compat22 ( mountpoint : * const :: std :: os :: raw :: c_char , opts : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_mount_compat1 ( mountpoint : * const :: std :: os :: raw :: c_char , args : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_unmount_compat22 ( mountpoint : * const :: std :: os :: raw :: c_char ) ; } # [ doc = " Handle for a FUSE filesystem" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse { _unused : [ u8 ; 0 ] , } # [ doc = " Structure containing a raw command" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_cmd { _unused : [ u8 ; 0 ] , } # [ doc = " Function to add an entry in a readdir() operation" ] # [ doc = "" ] # [ doc = " @param buf the buffer passed to the readdir() operation" ] # [ doc = " @param name the file name of the directory entry" ] # [ doc = " @param stat file attributes, can be NULL" ] # [ doc = " @param off offset of the next entry or zero" ] # [ doc = " @return 1 if buffer is full, zero otherwise" ] pub type fuse_fill_dir_t = :: std :: option :: Option < unsafe extern "C" fn ( buf : * mut :: std :: os :: raw :: c_void , name : * const :: std :: os :: raw :: c_char , stbuf : * const stat , off : off_t ) -> :: std :: os :: raw :: c_int > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_dirhandle { _unused : [ u8 ; 0 ] , } pub type fuse_dirh_t = * mut fuse_dirhandle ; pub type fuse_dirfil_t = :: std :: option :: Option < unsafe extern "C" fn ( h : fuse_dirh_t , name : * const :: std :: os :: raw :: c_char , type_ : :: std :: os :: raw :: c_int , ino : ino_t ) -> :: std :: os :: raw :: c_int > ; # [ doc = " The file system operations:" ] # [ doc = "" ] # [ doc = " Most of these should work very similarly to the well known UNIX" ] # [ doc = " file system operations.  A major exception is that instead of" ] # [ doc = " returning an error in 'errno', the operation should return the" ] # [ doc = " negated error value (-errno) directly." ] # [ doc = "" ] # [ doc = " All methods are optional, but some are essential for a useful" ] # [ doc = " filesystem (e.g. getattr).  Open, flush, release, fsync, opendir," ] # [ doc = " releasedir, fsyncdir, access, create, ftruncate, fgetattr, lock," ] # [ doc = " init and destroy are special purpose methods, without which a full" ] # [ doc = " featured filesystem can still be implemented." ] # [ doc = "" ] # [ doc = " Almost all operations take a path which can be of any length." ] # [ doc = "" ] # [ doc = " Changed in fuse 2.8.0 (regardless of API version)" ] # [ doc = " Previously, paths were limited to a length of PATH_MAX." ] # [ doc = "" ] # [ doc = " See http://fuse.sourceforge.net/wiki/ for more information.  There" ] # [ doc = " is also a snapshot of the relevant wiki pages in the doc/ folder." ] # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_operations { # [ doc = " Get file attributes." ] # [ doc = "" ] # [ doc = " Similar to stat().  The 'st_dev' and 'st_blksize' fields are" ] # [ doc = " ignored.\t The 'st_ino' field is ignored except if the 'use_ino'" ] # [ doc = " mount option is given." ] pub getattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut stat ) -> :: std :: os :: raw :: c_int > , # [ doc = " Read the target of a symbolic link" ] # [ doc = "" ] # [ doc = " The buffer should be filled with a null terminated string.  The" ] # [ doc = " buffer size argument includes the space for the terminating" ] # [ doc = " null character.\tIf the linkname is too long to fit in the" ] # [ doc = " buffer, it should be truncated.\tThe return value should be 0" ] # [ doc = " for success." ] pub readlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub getdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : fuse_dirh_t , arg3 : fuse_dirfil_t ) -> :: std :: os :: raw :: c_int > , # [ doc = " Create a file node" ] # [ doc = "" ] # [ doc = " This is called for creation of all non-directory, non-symlink" ] # [ doc = " nodes.  If the filesystem defines a create() method, then for" ] # [ doc = " regular files that will be called instead." ] pub mknod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t , arg3 : dev_t ) -> :: std :: os :: raw :: c_int > , # [ doc = " Create a directory" ] # [ doc = "" ] # [ doc = " Note that the mode argument may not have the type specification" ] # [ doc = " bits set, i.e. S_ISDIR(mode) can be false.  To obtain the" ] # [ doc = " correct directory type bits use  mode|S_IFDIR" ] pub mkdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , # [ doc = " Remove a file" ] pub unlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , # [ doc = " Remove a directory" ] pub rmdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , # [ doc = " Create a symbolic link" ] pub symlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , # [ doc = " Rename a file" ] pub rename : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , # [ doc = " Create a hard link to a file" ] pub link : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , # [ doc = " Change the permission bits of a file" ] pub chmod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , # [ doc = " Change the owner and group of a file" ] pub chown : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : uid_t , arg3 : gid_t ) -> :: std :: os :: raw :: c_int > , # [ doc = " Change the size of a file" ] pub truncate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : off_t ) -> :: std :: os :: raw :: c_int > , # [ doc = " Change the access and/or modification times of a file" ] # [ doc = "" ] # [ doc = " Deprecated, use utimens() instead." ] pub utime : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut utimbuf ) -> :: std :: os :: raw :: c_int > , # [ doc = " File open operation" ] # [ doc = "" ] # [ doc = " No creation (O_CREAT, O_EXCL) and by default also no" ] # [ doc = " truncation (O_TRUNC) flags will be passed to open(). If an" ] # [ doc = " application specifies O_TRUNC, fuse first calls truncate()" ] # [ doc = " and then open(). Only if 'atomic_o_trunc' has been" ] # [ doc = " specified and kernel version is 2.6.24 or later, O_TRUNC is" ] # [ doc = " passed on to open." ] # [ doc = "" ] # [ doc = " Unless the 'default_permissions' mount option is given," ] # [ doc = " open should check if the operation is permitted for the" ] # [ doc = " given flags. Optionally open may also return an arbitrary" ] # [ doc = " filehandle in the fuse_file_info structure, which will be" ] # [ doc = " passed to all file operations." ] # [ doc = "" ] # [ doc = " Changed in version 2.2" ] pub open : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Read data from an open file" ] # [ doc = "" ] # [ doc = " Read should return exactly the number of bytes requested except" ] # [ doc = " on EOF or error, otherwise the rest of the data will be" ] # [ doc = " substituted with zeroes.\t An exception to this is when the" ] # [ doc = " 'direct_io' mount option is specified, in which case the return" ] # [ doc = " value of the read system call will reflect the return value of" ] # [ doc = " this operation." ] # [ doc = "" ] # [ doc = " Changed in version 2.2" ] pub read : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t , arg5 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Write data to an open file" ] # [ doc = "" ] # [ doc = " Write should return exactly the number of bytes requested" ] # [ doc = " except on error.\t An exception to this is when the 'direct_io'" ] # [ doc = " mount option is specified (see read operation)." ] # [ doc = "" ] # [ doc = " Changed in version 2.2" ] pub write : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t , arg5 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Get file system statistics" ] # [ doc = "" ] # [ doc = " The 'f_frsize', 'f_favail', 'f_fsid' and 'f_flag' fields are ignored" ] # [ doc = "" ] # [ doc = " Replaced 'struct statfs' parameter with 'struct statvfs' in" ] # [ doc = " version 2.5" ] pub statfs : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut statvfs ) -> :: std :: os :: raw :: c_int > , # [ doc = " Possibly flush cached data" ] # [ doc = "" ] # [ doc = " BIG NOTE: This is not equivalent to fsync().  It's not a" ] # [ doc = " request to sync dirty data." ] # [ doc = "" ] # [ doc = " Flush is called on each close() of a file descriptor.  So if a" ] # [ doc = " filesystem wants to return write errors in close() and the file" ] # [ doc = " has cached dirty data, this is a good place to write back data" ] # [ doc = " and return any errors.  Since many applications ignore close()" ] # [ doc = " errors this is not always useful." ] # [ doc = "" ] # [ doc = " NOTE: The flush() method may be called more than once for each" ] # [ doc = " open().\tThis happens if more than one file descriptor refers" ] # [ doc = " to an opened file due to dup(), dup2() or fork() calls.\tIt is" ] # [ doc = " not possible to determine if a flush is final, so each flush" ] # [ doc = " should be treated equally.  Multiple write-flush sequences are" ] # [ doc = " relatively rare, so this shouldn't be a problem." ] # [ doc = "" ] # [ doc = " Filesystems shouldn't assume that flush will always be called" ] # [ doc = " after some writes, or that if will be called at all." ] # [ doc = "" ] # [ doc = " Changed in version 2.2" ] pub flush : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Release an open file" ] # [ doc = "" ] # [ doc = " Release is called when there are no more references to an open" ] # [ doc = " file: all file descriptors are closed and all memory mappings" ] # [ doc = " are unmapped." ] # [ doc = "" ] # [ doc = " For every open() call there will be exactly one release() call" ] # [ doc = " with the same flags and file descriptor.\t It is possible to" ] # [ doc = " have a file opened more than once, in which case only the last" ] # [ doc = " release will mean, that no more reads/writes will happen on the" ] # [ doc = " file.  The return value of release is ignored." ] # [ doc = "" ] # [ doc = " Changed in version 2.2" ] pub release : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Synchronize file contents" ] # [ doc = "" ] # [ doc = " If the datasync parameter is non-zero, then only the user data" ] # [ doc = " should be flushed, not the meta data." ] # [ doc = "" ] # [ doc = " Changed in version 2.2" ] pub fsync : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Set extended attributes" ] pub setxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * const :: std :: os :: raw :: c_char , arg4 : usize , arg5 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , # [ doc = " Get extended attributes" ] pub getxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * mut :: std :: os :: raw :: c_char , arg4 : usize ) -> :: std :: os :: raw :: c_int > , # [ doc = " List extended attributes" ] pub listxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , # [ doc = " Remove extended attributes" ] pub removexattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , # [ doc = " Open directory" ] # [ doc = "" ] # [ doc = " Unless the 'default_permissions' mount option is given," ] # [ doc = " this method should check if opendir is permitted for this" ] # [ doc = " directory. Optionally opendir may also return an arbitrary" ] # [ doc = " filehandle in the fuse_file_info structure, which will be" ] # [ doc = " passed to readdir, closedir and fsyncdir." ] # [ doc = "" ] # [ doc = " Introduced in version 2.3" ] pub opendir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Read directory" ] # [ doc = "" ] # [ doc = " This supersedes the old getdir() interface.  New applications" ] # [ doc = " should use this." ] # [ doc = "" ] # [ doc = " The filesystem may choose between two modes of operation:" ] # [ doc = "" ] # [ doc = " 1) The readdir implementation ignores the offset parameter, and" ] # [ doc = " passes zero to the filler function's offset.  The filler" ] # [ doc = " function will not return '1' (unless an error happens), so the" ] # [ doc = " whole directory is read in a single readdir operation.  This" ] # [ doc = " works just like the old getdir() method." ] # [ doc = "" ] # [ doc = " 2) The readdir implementation keeps track of the offsets of the" ] # [ doc = " directory entries.  It uses the offset parameter and always" ] # [ doc = " passes non-zero offset to the filler function.  When the buffer" ] # [ doc = " is full (or an error happens) the filler function will return" ] # [ doc = " '1'." ] # [ doc = "" ] # [ doc = " Introduced in version 2.3" ] pub readdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_void , arg3 : fuse_fill_dir_t , arg4 : off_t , arg5 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Release directory" ] # [ doc = "" ] # [ doc = " Introduced in version 2.3" ] pub releasedir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Synchronize directory contents" ] # [ doc = "" ] # [ doc = " If the datasync parameter is non-zero, then only the user data" ] # [ doc = " should be flushed, not the meta data" ] # [ doc = "" ] # [ doc = " Introduced in version 2.3" ] pub fsyncdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Initialize filesystem" ] # [ doc = "" ] # [ doc = " The return value will passed in the private_data field of" ] # [ doc = " fuse_context to all file operations and as a parameter to the" ] # [ doc = " destroy() method." ] # [ doc = "" ] # [ doc = " Introduced in version 2.3" ] # [ doc = " Changed in version 2.6" ] pub init : :: std :: option :: Option < unsafe extern "C" fn ( conn : * mut fuse_conn_info ) -> * mut :: std :: os :: raw :: c_void > , # [ doc = " Clean up filesystem" ] # [ doc = "" ] # [ doc = " Called on filesystem exit." ] # [ doc = "" ] # [ doc = " Introduced in version 2.3" ] pub destroy : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut :: std :: os :: raw :: c_void ) > , # [ doc = " Check file access permissions" ] # [ doc = "" ] # [ doc = " This will be called for the access() system call.  If the" ] # [ doc = " 'default_permissions' mount option is given, this method is not" ] # [ doc = " called." ] # [ doc = "" ] # [ doc = " This method is not called under Linux kernel versions 2.4.x" ] # [ doc = "" ] # [ doc = " Introduced in version 2.5" ] pub access : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , # [ doc = " Create and open a file" ] # [ doc = "" ] # [ doc = " If the file does not exist, first create it with the specified" ] # [ doc = " mode, and then open it." ] # [ doc = "" ] # [ doc = " If this method is not implemented or under Linux kernel" ] # [ doc = " versions earlier than 2.6.15, the mknod() and open() methods" ] # [ doc = " will be called instead." ] # [ doc = "" ] # [ doc = " Introduced in version 2.5" ] pub create : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Change the size of an open file" ] # [ doc = "" ] # [ doc = " This method is called instead of the truncate() method if the" ] # [ doc = " truncation was invoked from an ftruncate() system call." ] # [ doc = "" ] # [ doc = " If this method is not implemented or under Linux kernel" ] # [ doc = " versions earlier than 2.6.15, the truncate() method will be" ] # [ doc = " called instead." ] # [ doc = "" ] # [ doc = " Introduced in version 2.5" ] pub ftruncate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : off_t , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Get attributes from an open file" ] # [ doc = "" ] # [ doc = " This method is called instead of the getattr() method if the" ] # [ doc = " file information is available." ] # [ doc = "" ] # [ doc = " Currently this is only called after the create() method if that" ] # [ doc = " is implemented (see above).  Later it may be called for" ] # [ doc = " invocations of fstat() too." ] # [ doc = "" ] # [ doc = " Introduced in version 2.5" ] pub fgetattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut stat , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Perform POSIX file locking operation" ] # [ doc = "" ] # [ doc = " The cmd argument will be either F_GETLK, F_SETLK or F_SETLKW." ] # [ doc = "" ] # [ doc = " For the meaning of fields in 'struct flock' see the man page" ] # [ doc = " for fcntl(2).  The l_whence field will always be set to" ] # [ doc = " SEEK_SET." ] # [ doc = "" ] # [ doc = " For checking lock ownership, the 'fuse_file_info->owner'" ] # [ doc = " argument must be used." ] # [ doc = "" ] # [ doc = " For F_GETLK operation, the library will first check currently" ] # [ doc = " held locks, and if a conflicting lock is found it will return" ] # [ doc = " information without calling this method.\t This ensures, that" ] # [ doc = " for local locks the l_pid field is correctly filled in.\tThe" ] # [ doc = " results may not be accurate in case of race conditions and in" ] # [ doc = " the presence of hard links, but it's unlikely that an" ] # [ doc = " application would rely on accurate GETLK results in these" ] # [ doc = " cases.  If a conflicting lock is not found, this method will be" ] # [ doc = " called, and the filesystem may fill out l_pid by a meaningful" ] # [ doc = " value, or it may leave this field zero." ] # [ doc = "" ] # [ doc = " For F_SETLK and F_SETLKW the l_pid field will be set to the pid" ] # [ doc = " of the process performing the locking operation." ] # [ doc = "" ] # [ doc = " Note: if this method is not implemented, the kernel will still" ] # [ doc = " allow file locking to work locally.  Hence it is only" ] # [ doc = " interesting for network filesystems and similar." ] # [ doc = "" ] # [ doc = " Introduced in version 2.6" ] pub lock : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info , cmd : :: std :: os :: raw :: c_int , arg3 : * mut flock ) -> :: std :: os :: raw :: c_int > , # [ doc = " Change the access and modification times of a file with" ] # [ doc = " nanosecond resolution" ] # [ doc = "" ] # [ doc = " This supersedes the old utime() interface.  New applications" ] # [ doc = " should use this." ] # [ doc = "" ] # [ doc = " See the utimensat(2) man page for details." ] # [ doc = "" ] # [ doc = " Introduced in version 2.6" ] pub utimens : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , tv : * const timespec ) -> :: std :: os :: raw :: c_int > , # [ doc = " Map block index within file to block index within device" ] # [ doc = "" ] # [ doc = " Note: This makes sense only for block device backed filesystems" ] # [ doc = " mounted with the 'blkdev' option" ] # [ doc = "" ] # [ doc = " Introduced in version 2.6" ] pub bmap : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , blocksize : usize , idx : * mut u64 ) -> :: std :: os :: raw :: c_int > , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > , # [ doc = " Ioctl" ] # [ doc = "" ] # [ doc = " flags will have FUSE_IOCTL_COMPAT set for 32bit ioctls in" ] # [ doc = " 64bit environment.  The size and direction of data is" ] # [ doc = " determined by _IOC_*() decoding of cmd.  For _IOC_NONE," ] # [ doc = " data will be NULL, for _IOC_WRITE data is out area, for" ] # [ doc = " _IOC_READ in area and if both are set in/out area.  In all" ] # [ doc = " non-NULL cases, the area is of _IOC_SIZE(cmd) bytes." ] # [ doc = "" ] # [ doc = " If flags has FUSE_IOCTL_DIR then the fuse_file_info refers to a" ] # [ doc = " directory file handle." ] # [ doc = "" ] # [ doc = " Introduced in version 2.8" ] pub ioctl : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , cmd : :: std :: os :: raw :: c_int , arg : * mut :: std :: os :: raw :: c_void , arg2 : * mut fuse_file_info , flags : :: std :: os :: raw :: c_uint , data : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , # [ doc = " Poll for IO readiness events" ] # [ doc = "" ] # [ doc = " Note: If ph is non-NULL, the client should notify" ] # [ doc = " when IO readiness events occur by calling" ] # [ doc = " fuse_notify_poll() with the specified ph." ] # [ doc = "" ] # [ doc = " Regardless of the number of times poll with a non-NULL ph" ] # [ doc = " is received, single notification is enough to clear all." ] # [ doc = " Notifying more times incurs overhead but doesn't harm" ] # [ doc = " correctness." ] # [ doc = "" ] # [ doc = " The callee is responsible for destroying ph with" ] # [ doc = " fuse_pollhandle_destroy() when no longer in use." ] # [ doc = "" ] # [ doc = " Introduced in version 2.8" ] pub poll : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info , ph : * mut fuse_pollhandle , reventsp : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int > , # [ doc = " Write contents of buffer to an open file" ] # [ doc = "" ] # [ doc = " Similar to the write() method, but data is supplied in a" ] # [ doc = " generic buffer.  Use fuse_buf_copy() to transfer data to" ] # [ doc = " the destination." ] # [ doc = "" ] # [ doc = " Introduced in version 2.9" ] pub write_buf : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , buf : * mut fuse_bufvec , off : off_t , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Store data from an open file in a buffer" ] # [ doc = "" ] # [ doc = " Similar to the read() method, but data is stored and" ] # [ doc = " returned in a generic buffer." ] # [ doc = "" ] # [ doc = " No actual copying of data has to take place, the source" ] # [ doc = " file descriptor may simply be stored in the buffer for" ] # [ doc = " later data transfer." ] # [ doc = "" ] # [ doc = " The buffer must be allocated dynamically and stored at the" ] # [ doc = " location pointed to by bufp.  If the buffer contains memory" ] # [ doc = " regions, they too must be allocated using malloc().  The" ] # [ doc = " allocated memory will be freed by the caller." ] # [ doc = "" ] # [ doc = " Introduced in version 2.9" ] pub read_buf : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , bufp : * mut * mut fuse_bufvec , size : usize , off : off_t , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , # [ doc = " Perform BSD file locking operation" ] # [ doc = "" ] # [ doc = " The op argument will be either LOCK_SH, LOCK_EX or LOCK_UN" ] # [ doc = "" ] # [ doc = " Nonblocking requests will be indicated by ORing LOCK_NB to" ] # [ doc = " the above operations" ] # [ doc = "" ] # [ doc = " For more information see the flock(2) manual page." ] # [ doc = "" ] # [ doc = " Additionally fi->owner will be set to a value unique to" ] # [ doc = " this open file.  This same value will be supplied to" ] # [ doc = " ->release() when the file is released." ] # [ doc = "" ] # [ doc = " Note: if this method is not implemented, the kernel will still" ] # [ doc = " allow file locking to work locally.  Hence it is only" ] # [ doc = " interesting for network filesystems and similar." ] # [ doc = "" ] # [ doc = " Introduced in version 2.9" ] pub flock : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info , op : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , # [ doc = " Allocates space for an open file" ] # [ doc = "" ] # [ doc = " This function ensures that required space is allocated for specified" ] # [ doc = " file.  If this function returns success then any subsequent write" ] # [ doc = " request to specified range is guaranteed not to fail because of lack" ] # [ doc = " of space on the file system media." ] # [ doc = "" ] # [ doc = " Introduced in version 2.9.1" ] pub fallocate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int , arg3 : off_t , arg4 : off_t , arg5 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_fuse_operations ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_operations > ( ) , 360usize , concat ! ( "Size of: " , stringify ! ( fuse_operations ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_operations > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_operations ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . getattr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( getattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . readlink as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( readlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . getdir as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( getdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . mknod as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( mknod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . mkdir as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( mkdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . unlink as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( unlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . rmdir as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( rmdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . symlink as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( symlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . rename as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( rename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . link as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( link ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . chmod as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( chmod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . chown as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( chown ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . truncate as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( truncate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . utime as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( utime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . open as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . read as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . write as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . statfs as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( statfs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . flush as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( flush ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . release as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( release ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . fsync as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( fsync ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . setxattr as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( setxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . getxattr as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( getxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . listxattr as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( listxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . removexattr as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( removexattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . opendir as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( opendir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . readdir as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( readdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . releasedir as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( releasedir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . fsyncdir as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( fsyncdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . init as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . destroy as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( destroy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . access as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( access ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . create as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( create ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . ftruncate as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( ftruncate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . fgetattr as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( fgetattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . lock as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . utimens as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( utimens ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . bmap as * const _ as usize } , 296usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( bmap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . ioctl as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( ioctl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . poll as * const _ as usize } , 320usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( poll ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . write_buf as * const _ as usize } , 328usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( write_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . read_buf as * const _ as usize } , 336usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( read_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . flock as * const _ as usize } , 344usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( flock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations > ( ) ) ) . fallocate as * const _ as usize } , 352usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations ) , "::" , stringify ! ( fallocate ) ) ) ; } impl fuse_operations { # [ inline ] pub fn flag_nullpath_ok ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_flag_nullpath_ok ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn flag_nopath ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_flag_nopath ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn flag_utime_omit_ok ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_flag_utime_omit_ok ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn flag_reserved ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 29u8 ) as u32 ) } } # [ inline ] pub fn set_flag_reserved ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 29u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( flag_nullpath_ok : :: std :: os :: raw :: c_uint , flag_nopath : :: std :: os :: raw :: c_uint , flag_utime_omit_ok : :: std :: os :: raw :: c_uint , flag_reserved : :: std :: os :: raw :: c_uint ) -> __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let flag_nullpath_ok : u32 = unsafe { :: std :: mem :: transmute ( flag_nullpath_ok ) } ; flag_nullpath_ok as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let flag_nopath : u32 = unsafe { :: std :: mem :: transmute ( flag_nopath ) } ; flag_nopath as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let flag_utime_omit_ok : u32 = unsafe { :: std :: mem :: transmute ( flag_utime_omit_ok ) } ; flag_utime_omit_ok as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 29u8 , { let flag_reserved : u32 = unsafe { :: std :: mem :: transmute ( flag_reserved ) } ; flag_reserved as u64 } ) ; __bindgen_bitfield_unit } } # [ doc = " Extra context that may be needed by some filesystems" ] # [ doc = "" ] # [ doc = " The uid, gid and pid fields are not filled in case of a writepage" ] # [ doc = " operation." ] # [ repr ( C ) ] pub struct fuse_context { # [ doc = " Pointer to the fuse object" ] pub fuse : * mut fuse , # [ doc = " User ID of the calling process" ] pub uid : uid_t , # [ doc = " Group ID of the calling process" ] pub gid : gid_t , # [ doc = " Thread ID of the calling process" ] pub pid : pid_t , # [ doc = " Private filesystem data" ] pub private_data : * mut :: std :: os :: raw :: c_void , # [ doc = " Umask of the calling process (introduced in version 2.8)" ] pub umask : mode_t , } # [ test ] fn bindgen_test_layout_fuse_context ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_context > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( fuse_context ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_context > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_context > ( ) ) ) . fuse as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_context ) , "::" , stringify ! ( fuse ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_context > ( ) ) ) . uid as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_context ) , "::" , stringify ! ( uid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_context > ( ) ) ) . gid as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( fuse_context ) , "::" , stringify ! ( gid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_context > ( ) ) ) . pid as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_context ) , "::" , stringify ! ( pid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_context > ( ) ) ) . private_data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_context ) , "::" , stringify ! ( private_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_context > ( ) ) ) . umask as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_context ) , "::" , stringify ! ( umask ) ) ) ; } impl Default for fuse_context { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } extern "C" { # [ doc = " Create a new FUSE filesystem." ] # [ doc = "" ] # [ doc = " @param ch the communication channel" ] # [ doc = " @param args argument vector" ] # [ doc = " @param op the filesystem operations" ] # [ doc = " @param op_size the size of the fuse_operations structure" ] # [ doc = " @param user_data user data supplied in the context during the init() method" ] # [ doc = " @return the created FUSE handle" ] pub fn fuse_new ( ch : * mut fuse_chan , args : * mut fuse_args , op : * const fuse_operations , op_size : usize , user_data : * mut :: std :: os :: raw :: c_void ) -> * mut fuse ; } extern "C" { # [ doc = " Destroy the FUSE handle." ] # [ doc = "" ] # [ doc = " The communication channel attached to the handle is also destroyed." ] # [ doc = "" ] # [ doc = " NOTE: This function does not unmount the filesystem.\t If this is" ] # [ doc = " needed, call fuse_unmount() before calling this function." ] # [ doc = "" ] # [ doc = " @param f the FUSE handle" ] pub fn fuse_destroy ( f : * mut fuse ) ; } extern "C" { # [ doc = " FUSE event loop." ] # [ doc = "" ] # [ doc = " Requests from the kernel are processed, and the appropriate" ] # [ doc = " operations are called." ] # [ doc = "" ] # [ doc = " @param f the FUSE handle" ] # [ doc = " @return 0 if no error occurred, -1 otherwise" ] pub fn fuse_loop ( f : * mut fuse ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Exit from event loop" ] # [ doc = "" ] # [ doc = " @param f the FUSE handle" ] pub fn fuse_exit ( f : * mut fuse ) ; } extern "C" { # [ doc = " FUSE event loop with multiple threads" ] # [ doc = "" ] # [ doc = " Requests from the kernel are processed, and the appropriate" ] # [ doc = " operations are called.  Request are processed in parallel by" ] # [ doc = " distributing them between multiple threads." ] # [ doc = "" ] # [ doc = " Calling this function requires the pthreads library to be linked to" ] # [ doc = " the application." ] # [ doc = "" ] # [ doc = " @param f the FUSE handle" ] # [ doc = " @return 0 if no error occurred, -1 otherwise" ] pub fn fuse_loop_mt ( f : * mut fuse ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Get the current context" ] # [ doc = "" ] # [ doc = " The context is only valid for the duration of a filesystem" ] # [ doc = " operation, and thus must not be stored and used later." ] # [ doc = "" ] # [ doc = " @return the context" ] pub fn fuse_get_context ( ) -> * mut fuse_context ; } extern "C" { # [ doc = " Get the current supplementary group IDs for the current request" ] # [ doc = "" ] # [ doc = " Similar to the getgroups(2) system call, except the return value is" ] # [ doc = " always the total number of group IDs, even if it is larger than the" ] # [ doc = " specified size." ] # [ doc = "" ] # [ doc = " The current fuse kernel module in linux (as of 2.6.30) doesn't pass" ] # [ doc = " the group list to userspace, hence this function needs to parse" ] # [ doc = " \"/proc/$TID/task/$TID/status\" to get the group IDs." ] # [ doc = "" ] # [ doc = " This feature may not be supported on all operating systems.  In" ] # [ doc = " such a case this function will return -ENOSYS." ] # [ doc = "" ] # [ doc = " @param size size of given array" ] # [ doc = " @param list array of group IDs to be filled in" ] # [ doc = " @return the total number of supplementary group IDs or -errno on failure" ] pub fn fuse_getgroups ( size : :: std :: os :: raw :: c_int , list : * mut gid_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Check if the current request has already been interrupted" ] # [ doc = "" ] # [ doc = " @return 1 if the request has been interrupted, 0 otherwise" ] pub fn fuse_interrupted ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Obsolete, doesn't do anything" ] # [ doc = "" ] # [ doc = " @return -EINVAL" ] pub fn fuse_invalidate ( f : * mut fuse , path : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_is_lib_option ( opt : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " The real main function" ] # [ doc = "" ] # [ doc = " Do not call this directly, use fuse_main()" ] pub fn fuse_main_real ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations , op_size : usize , user_data : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Start the cleanup thread when using option \"remember\"." ] # [ doc = "" ] # [ doc = " This is done automatically by fuse_loop_mt()" ] # [ doc = " @param fuse struct fuse pointer for fuse instance" ] # [ doc = " @return 0 on success and -1 on error" ] pub fn fuse_start_cleanup_thread ( fuse : * mut fuse ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Stop the cleanup thread when using option \"remember\"." ] # [ doc = "" ] # [ doc = " This is done automatically by fuse_loop_mt()" ] # [ doc = " @param fuse struct fuse pointer for fuse instance" ] pub fn fuse_stop_cleanup_thread ( fuse : * mut fuse ) ; } extern "C" { # [ doc = " Iterate over cache removing stale entries" ] # [ doc = " use in conjunction with \"-oremember\"" ] # [ doc = "" ] # [ doc = " NOTE: This is already done for the standard sessions" ] # [ doc = "" ] # [ doc = " @param fuse struct fuse pointer for fuse instance" ] # [ doc = " @return the number of seconds until the next cleanup" ] pub fn fuse_clean_cache ( fuse : * mut fuse ) -> :: std :: os :: raw :: c_int ; } # [ doc = " Fuse filesystem object" ] # [ doc = "" ] # [ doc = " This is opaque object represents a filesystem layer" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_fs { _unused : [ u8 ; 0 ] , } extern "C" { pub fn fuse_fs_getattr ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * mut stat ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_fgetattr ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * mut stat , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_rename ( fs : * mut fuse_fs , oldpath : * const :: std :: os :: raw :: c_char , newpath : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_unlink ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_rmdir ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_symlink ( fs : * mut fuse_fs , linkname : * const :: std :: os :: raw :: c_char , path : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_link ( fs : * mut fuse_fs , oldpath : * const :: std :: os :: raw :: c_char , newpath : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_release ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_open ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_read ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * mut :: std :: os :: raw :: c_char , size : usize , off : off_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_read_buf ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , bufp : * mut * mut fuse_bufvec , size : usize , off : off_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_write ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * const :: std :: os :: raw :: c_char , size : usize , off : off_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_write_buf ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * mut fuse_bufvec , off : off_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_fsync ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , datasync : :: std :: os :: raw :: c_int , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_flush ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_statfs ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * mut statvfs ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_opendir ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_readdir ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * mut :: std :: os :: raw :: c_void , filler : fuse_fill_dir_t , off : off_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_fsyncdir ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , datasync : :: std :: os :: raw :: c_int , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_releasedir ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_create ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , mode : mode_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_lock ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info , cmd : :: std :: os :: raw :: c_int , lock : * mut flock ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_flock ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info , op : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_chmod ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , mode : mode_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_chown ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , uid : uid_t , gid : gid_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_truncate ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , size : off_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_ftruncate ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , size : off_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_utimens ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , tv : * const timespec ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_access ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , mask : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_readlink ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , buf : * mut :: std :: os :: raw :: c_char , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_mknod ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , mode : mode_t , rdev : dev_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_mkdir ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , mode : mode_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_setxattr ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , name : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_char , size : usize , flags : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_getxattr ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , name : * const :: std :: os :: raw :: c_char , value : * mut :: std :: os :: raw :: c_char , size : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_listxattr ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , list : * mut :: std :: os :: raw :: c_char , size : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_removexattr ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , name : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_bmap ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , blocksize : usize , idx : * mut u64 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_ioctl ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , cmd : :: std :: os :: raw :: c_int , arg : * mut :: std :: os :: raw :: c_void , fi : * mut fuse_file_info , flags : :: std :: os :: raw :: c_uint , data : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_poll ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , fi : * mut fuse_file_info , ph : * mut fuse_pollhandle , reventsp : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_fallocate ( fs : * mut fuse_fs , path : * const :: std :: os :: raw :: c_char , mode : :: std :: os :: raw :: c_int , offset : off_t , length : off_t , fi : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_fs_init ( fs : * mut fuse_fs , conn : * mut fuse_conn_info ) ; } extern "C" { pub fn fuse_fs_destroy ( fs : * mut fuse_fs ) ; } extern "C" { pub fn fuse_notify_poll ( ph : * mut fuse_pollhandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Create a new fuse filesystem object" ] # [ doc = "" ] # [ doc = " This is usually called from the factory of a fuse module to create" ] # [ doc = " a new instance of a filesystem." ] # [ doc = "" ] # [ doc = " @param op the filesystem operations" ] # [ doc = " @param op_size the size of the fuse_operations structure" ] # [ doc = " @param user_data user data supplied in the context during the init() method" ] # [ doc = " @return a new filesystem object" ] pub fn fuse_fs_new ( op : * const fuse_operations , op_size : usize , user_data : * mut :: std :: os :: raw :: c_void ) -> * mut fuse_fs ; } # [ doc = " Filesystem module" ] # [ doc = "" ] # [ doc = " Filesystem modules are registered with the FUSE_REGISTER_MODULE()" ] # [ doc = " macro." ] # [ doc = "" ] # [ doc = " If the \"-omodules=modname:...\" option is present, filesystem" ] # [ doc = " objects are created and pushed onto the stack with the 'factory'" ] # [ doc = " function." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fuse_module { # [ doc = " Name of filesystem" ] pub name : * const :: std :: os :: raw :: c_char , # [ doc = " Factory for creating filesystem objects" ] # [ doc = "" ] # [ doc = " The function may use and remove options from 'args' that belong" ] # [ doc = " to this module." ] # [ doc = "" ] # [ doc = " For now the 'fs' vector always contains exactly one filesystem." ] # [ doc = " This is the filesystem which will be below the newly created" ] # [ doc = " filesystem in the stack." ] # [ doc = "" ] # [ doc = " @param args the command line arguments" ] # [ doc = " @param fs NULL terminated filesystem object vector" ] # [ doc = " @return the new filesystem object" ] pub factory : :: std :: option :: Option < unsafe extern "C" fn ( args : * mut fuse_args , fs : * mut * mut fuse_fs ) -> * mut fuse_fs > , pub next : * mut fuse_module , pub so : * mut fusemod_so , pub ctr : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_fuse_module ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_module > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( fuse_module ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_module > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_module ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_module > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_module ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_module > ( ) ) ) . factory as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_module ) , "::" , stringify ! ( factory ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_module > ( ) ) ) . next as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_module ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_module > ( ) ) ) . so as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_module ) , "::" , stringify ! ( so ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_module > ( ) ) ) . ctr as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_module ) , "::" , stringify ! ( ctr ) ) ) ; } impl Default for fuse_module { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } extern "C" { # [ doc = " Register a filesystem module" ] # [ doc = "" ] # [ doc = " This function is used by FUSE_REGISTER_MODULE and there's usually" ] # [ doc = " no need to call it directly" ] pub fn fuse_register_module ( mod_ : * mut fuse_module ) ; } # [ doc = " Function type used to process commands" ] pub type fuse_processor_t = :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut fuse , arg2 : * mut fuse_cmd , arg3 : * mut :: std :: os :: raw :: c_void ) > ; extern "C" { # [ doc = " This is the part of fuse_main() before the event loop" ] pub fn fuse_setup ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations , op_size : usize , mountpoint : * mut * mut :: std :: os :: raw :: c_char , multithreaded : * mut :: std :: os :: raw :: c_int , user_data : * mut :: std :: os :: raw :: c_void ) -> * mut fuse ; } extern "C" { # [ doc = " This is the part of fuse_main() after the event loop" ] pub fn fuse_teardown ( fuse : * mut fuse , mountpoint : * mut :: std :: os :: raw :: c_char ) ; } extern "C" { # [ doc = " Read a single command.  If none are read, return NULL" ] pub fn fuse_read_cmd ( f : * mut fuse ) -> * mut fuse_cmd ; } extern "C" { # [ doc = " Process a single command" ] pub fn fuse_process_cmd ( f : * mut fuse , cmd : * mut fuse_cmd ) ; } extern "C" { # [ doc = " Multi threaded event loop, which calls the custom command" ] # [ doc = "processor function" ] pub fn fuse_loop_mt_proc ( f : * mut fuse , proc_ : fuse_processor_t , data : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Return the exited flag, which indicates if fuse_exit() has been" ] # [ doc = "called" ] pub fn fuse_exited ( f : * mut fuse ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " This function is obsolete and implemented as a no-op" ] pub fn fuse_set_getcontext_func ( func : :: std :: option :: Option < unsafe extern "C" fn ( ) -> * mut fuse_context > ) ; } extern "C" { # [ doc = " Get session from fuse object" ] pub fn fuse_get_session ( f : * mut fuse ) -> * mut fuse_session ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_operations_compat25 { pub getattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut stat ) -> :: std :: os :: raw :: c_int > , pub readlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub getdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : fuse_dirh_t , arg3 : fuse_dirfil_t ) -> :: std :: os :: raw :: c_int > , pub mknod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t , arg3 : dev_t ) -> :: std :: os :: raw :: c_int > , pub mkdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub unlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rmdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub symlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rename : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub link : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub chmod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub chown : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : uid_t , arg3 : gid_t ) -> :: std :: os :: raw :: c_int > , pub truncate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : off_t ) -> :: std :: os :: raw :: c_int > , pub utime : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut utimbuf ) -> :: std :: os :: raw :: c_int > , pub open : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub read : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t , arg5 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub write : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t , arg5 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub statfs : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut statvfs ) -> :: std :: os :: raw :: c_int > , pub flush : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub release : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub fsync : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub setxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * const :: std :: os :: raw :: c_char , arg4 : usize , arg5 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub getxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * mut :: std :: os :: raw :: c_char , arg4 : usize ) -> :: std :: os :: raw :: c_int > , pub listxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub removexattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub opendir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub readdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_void , arg3 : fuse_fill_dir_t , arg4 : off_t , arg5 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub releasedir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub fsyncdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub init : :: std :: option :: Option < unsafe extern "C" fn ( ) -> * mut :: std :: os :: raw :: c_void > , pub destroy : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut :: std :: os :: raw :: c_void ) > , pub access : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub create : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub ftruncate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : off_t , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , pub fgetattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut stat , arg3 : * mut fuse_file_info ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_fuse_operations_compat25 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_operations_compat25 > ( ) , 280usize , concat ! ( "Size of: " , stringify ! ( fuse_operations_compat25 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_operations_compat25 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_operations_compat25 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . getattr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( getattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . readlink as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( readlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . getdir as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( getdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . mknod as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( mknod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . mkdir as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( mkdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . unlink as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( unlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . rmdir as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( rmdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . symlink as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( symlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . rename as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( rename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . link as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( link ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . chmod as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( chmod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . chown as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( chown ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . truncate as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( truncate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . utime as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( utime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . open as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . read as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . write as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . statfs as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( statfs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . flush as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( flush ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . release as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( release ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . fsync as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( fsync ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . setxattr as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( setxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . getxattr as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( getxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . listxattr as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( listxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . removexattr as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( removexattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . opendir as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( opendir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . readdir as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( readdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . releasedir as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( releasedir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . fsyncdir as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( fsyncdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . init as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . destroy as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( destroy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . access as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( access ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . create as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( create ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . ftruncate as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( ftruncate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat25 > ( ) ) ) . fgetattr as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat25 ) , "::" , stringify ! ( fgetattr ) ) ) ; } extern "C" { pub fn fuse_new_compat25 ( fd : :: std :: os :: raw :: c_int , args : * mut fuse_args , op : * const fuse_operations_compat25 , op_size : usize ) -> * mut fuse ; } extern "C" { pub fn fuse_main_real_compat25 ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations_compat25 , op_size : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_setup_compat25 ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations_compat25 , op_size : usize , mountpoint : * mut * mut :: std :: os :: raw :: c_char , multithreaded : * mut :: std :: os :: raw :: c_int , fd : * mut :: std :: os :: raw :: c_int ) -> * mut fuse ; } extern "C" { pub fn fuse_teardown_compat22 ( fuse : * mut fuse , fd : :: std :: os :: raw :: c_int , mountpoint : * mut :: std :: os :: raw :: c_char ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_operations_compat22 { pub getattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut stat ) -> :: std :: os :: raw :: c_int > , pub readlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub getdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : fuse_dirh_t , arg3 : fuse_dirfil_t ) -> :: std :: os :: raw :: c_int > , pub mknod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t , arg3 : dev_t ) -> :: std :: os :: raw :: c_int > , pub mkdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub unlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rmdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub symlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rename : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub link : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub chmod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub chown : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : uid_t , arg3 : gid_t ) -> :: std :: os :: raw :: c_int > , pub truncate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : off_t ) -> :: std :: os :: raw :: c_int > , pub utime : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut utimbuf ) -> :: std :: os :: raw :: c_int > , pub open : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub read : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t , arg5 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub write : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t , arg5 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub statfs : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut statfs ) -> :: std :: os :: raw :: c_int > , pub flush : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub release : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub fsync : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub setxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * const :: std :: os :: raw :: c_char , arg4 : usize , arg5 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub getxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * mut :: std :: os :: raw :: c_char , arg4 : usize ) -> :: std :: os :: raw :: c_int > , pub listxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub removexattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub opendir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub readdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_void , arg3 : fuse_fill_dir_t , arg4 : off_t , arg5 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub releasedir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub fsyncdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut fuse_file_info_compat ) -> :: std :: os :: raw :: c_int > , pub init : :: std :: option :: Option < unsafe extern "C" fn ( ) -> * mut :: std :: os :: raw :: c_void > , pub destroy : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut :: std :: os :: raw :: c_void ) > , } # [ test ] fn bindgen_test_layout_fuse_operations_compat22 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_operations_compat22 > ( ) , 248usize , concat ! ( "Size of: " , stringify ! ( fuse_operations_compat22 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_operations_compat22 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_operations_compat22 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . getattr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( getattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . readlink as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( readlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . getdir as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( getdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . mknod as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( mknod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . mkdir as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( mkdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . unlink as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( unlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . rmdir as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( rmdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . symlink as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( symlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . rename as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( rename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . link as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( link ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . chmod as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( chmod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . chown as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( chown ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . truncate as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( truncate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . utime as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( utime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . open as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . read as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . write as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . statfs as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( statfs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . flush as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( flush ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . release as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( release ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . fsync as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( fsync ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . setxattr as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( setxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . getxattr as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( getxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . listxattr as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( listxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . removexattr as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( removexattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . opendir as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( opendir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . readdir as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( readdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . releasedir as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( releasedir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . fsyncdir as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( fsyncdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . init as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat22 > ( ) ) ) . destroy as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat22 ) , "::" , stringify ! ( destroy ) ) ) ; } extern "C" { pub fn fuse_new_compat22 ( fd : :: std :: os :: raw :: c_int , opts : * const :: std :: os :: raw :: c_char , op : * const fuse_operations_compat22 , op_size : usize ) -> * mut fuse ; } extern "C" { pub fn fuse_setup_compat22 ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations_compat22 , op_size : usize , mountpoint : * mut * mut :: std :: os :: raw :: c_char , multithreaded : * mut :: std :: os :: raw :: c_int , fd : * mut :: std :: os :: raw :: c_int ) -> * mut fuse ; } extern "C" { pub fn fuse_main_real_compat22 ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations_compat22 , op_size : usize ) -> :: std :: os :: raw :: c_int ; } pub type fuse_dirfil_t_compat = :: std :: option :: Option < unsafe extern "C" fn ( h : fuse_dirh_t , name : * const :: std :: os :: raw :: c_char , type_ : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > ; # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_operations_compat2 { pub getattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut stat ) -> :: std :: os :: raw :: c_int > , pub readlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub getdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : fuse_dirh_t , arg3 : fuse_dirfil_t_compat ) -> :: std :: os :: raw :: c_int > , pub mknod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t , arg3 : dev_t ) -> :: std :: os :: raw :: c_int > , pub mkdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub unlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rmdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub symlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rename : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub link : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub chmod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub chown : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : uid_t , arg3 : gid_t ) -> :: std :: os :: raw :: c_int > , pub truncate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : off_t ) -> :: std :: os :: raw :: c_int > , pub utime : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut utimbuf ) -> :: std :: os :: raw :: c_int > , pub open : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub read : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t ) -> :: std :: os :: raw :: c_int > , pub write : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t ) -> :: std :: os :: raw :: c_int > , pub statfs : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut statfs ) -> :: std :: os :: raw :: c_int > , pub flush : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub release : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub fsync : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub setxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * const :: std :: os :: raw :: c_char , arg4 : usize , arg5 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub getxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * mut :: std :: os :: raw :: c_char , arg4 : usize ) -> :: std :: os :: raw :: c_int > , pub listxattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub removexattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_fuse_operations_compat2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_operations_compat2 > ( ) , 200usize , concat ! ( "Size of: " , stringify ! ( fuse_operations_compat2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_operations_compat2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_operations_compat2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . getattr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( getattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . readlink as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( readlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . getdir as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( getdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . mknod as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( mknod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . mkdir as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( mkdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . unlink as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( unlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . rmdir as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( rmdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . symlink as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( symlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . rename as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( rename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . link as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( link ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . chmod as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( chmod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . chown as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( chown ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . truncate as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( truncate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . utime as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( utime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . open as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . read as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . write as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . statfs as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( statfs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . flush as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( flush ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . release as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( release ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . fsync as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( fsync ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . setxattr as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( setxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . getxattr as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( getxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . listxattr as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( listxattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat2 > ( ) ) ) . removexattr as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat2 ) , "::" , stringify ! ( removexattr ) ) ) ; } extern "C" { pub fn fuse_main_compat2 ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations_compat2 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fuse_new_compat2 ( fd : :: std :: os :: raw :: c_int , opts : * const :: std :: os :: raw :: c_char , op : * const fuse_operations_compat2 ) -> * mut fuse ; } extern "C" { pub fn fuse_setup_compat2 ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations_compat2 , mountpoint : * mut * mut :: std :: os :: raw :: c_char , multithreaded : * mut :: std :: os :: raw :: c_int , fd : * mut :: std :: os :: raw :: c_int ) -> * mut fuse ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_statfs_compat1 { pub block_size : :: std :: os :: raw :: c_long , pub blocks : :: std :: os :: raw :: c_long , pub blocks_free : :: std :: os :: raw :: c_long , pub files : :: std :: os :: raw :: c_long , pub files_free : :: std :: os :: raw :: c_long , pub namelen : :: std :: os :: raw :: c_long , } # [ test ] fn bindgen_test_layout_fuse_statfs_compat1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_statfs_compat1 > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( fuse_statfs_compat1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_statfs_compat1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_statfs_compat1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_statfs_compat1 > ( ) ) ) . block_size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_statfs_compat1 ) , "::" , stringify ! ( block_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_statfs_compat1 > ( ) ) ) . blocks as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_statfs_compat1 ) , "::" , stringify ! ( blocks ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_statfs_compat1 > ( ) ) ) . blocks_free as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_statfs_compat1 ) , "::" , stringify ! ( blocks_free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_statfs_compat1 > ( ) ) ) . files as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_statfs_compat1 ) , "::" , stringify ! ( files ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_statfs_compat1 > ( ) ) ) . files_free as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_statfs_compat1 ) , "::" , stringify ! ( files_free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_statfs_compat1 > ( ) ) ) . namelen as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( fuse_statfs_compat1 ) , "::" , stringify ! ( namelen ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fuse_operations_compat1 { pub getattr : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut stat ) -> :: std :: os :: raw :: c_int > , pub readlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize ) -> :: std :: os :: raw :: c_int > , pub getdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : fuse_dirh_t , arg3 : fuse_dirfil_t_compat ) -> :: std :: os :: raw :: c_int > , pub mknod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t , arg3 : dev_t ) -> :: std :: os :: raw :: c_int > , pub mkdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub unlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rmdir : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub symlink : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub rename : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub link : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub chmod : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : mode_t ) -> :: std :: os :: raw :: c_int > , pub chown : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : uid_t , arg3 : gid_t ) -> :: std :: os :: raw :: c_int > , pub truncate : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : off_t ) -> :: std :: os :: raw :: c_int > , pub utime : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut utimbuf ) -> :: std :: os :: raw :: c_int > , pub open : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub read : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t ) -> :: std :: os :: raw :: c_int > , pub write : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : * const :: std :: os :: raw :: c_char , arg3 : usize , arg4 : off_t ) -> :: std :: os :: raw :: c_int > , pub statfs : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut fuse_statfs_compat1 ) -> :: std :: os :: raw :: c_int > , pub release : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub fsync : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_fuse_operations_compat1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fuse_operations_compat1 > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( fuse_operations_compat1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fuse_operations_compat1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fuse_operations_compat1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . getattr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( getattr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . readlink as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( readlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . getdir as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( getdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . mknod as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( mknod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . mkdir as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( mkdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . unlink as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( unlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . rmdir as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( rmdir ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . symlink as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( symlink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . rename as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( rename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . link as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( link ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . chmod as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( chmod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . chown as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( chown ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . truncate as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( truncate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . utime as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( utime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . open as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . read as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . write as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . statfs as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( statfs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . release as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( release ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fuse_operations_compat1 > ( ) ) ) . fsync as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( fuse_operations_compat1 ) , "::" , stringify ! ( fsync ) ) ) ; } extern "C" { pub fn fuse_new_compat1 ( fd : :: std :: os :: raw :: c_int , flags : :: std :: os :: raw :: c_int , op : * const fuse_operations_compat1 ) -> * mut fuse ; } extern "C" { pub fn fuse_main_compat1 ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char , op : * const fuse_operations_compat1 ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct fusemod_so { pub _address : u8 , }