@ -43,9 +43,6 @@ EXTERN_C_BEGIN
/** The node ID of the root inode */
/** The node ID of the root inode */
# define FUSE_ROOT_ID 1
# define FUSE_ROOT_ID 1
/** Inode number type */
typedef uint64_t fuse_ino_t ;
/** Request pointer type */
/** Request pointer type */
typedef struct fuse_req * fuse_req_t ;
typedef struct fuse_req * fuse_req_t ;
@ -74,7 +71,7 @@ struct fuse_entry_param
* ino the kernel may cache negative entries for entry_timeout
* ino the kernel may cache negative entries for entry_timeout
* seconds .
* seconds .
*/
*/
fuse_ino _t ino ;
uint64 _t ino ;
/** Generation number for this entry.
/** Generation number for this entry.
*
*
@ -122,7 +119,7 @@ struct fuse_ctx
struct fuse_forget_data
struct fuse_forget_data
{
{
fuse_ino _t ino ;
uint64 _t ino ;
uint64_t nlookup ;
uint64_t nlookup ;
} ;
} ;
@ -186,7 +183,7 @@ struct fuse_lowlevel_ops
* @ param parent inode number of the parent directory
* @ param parent inode number of the parent directory
* @ param name the name to look up
* @ param name the name to look up
*/
*/
void ( * lookup ) ( fuse_req_t req , fuse_ino _t parent , const char * name ) ;
void ( * lookup ) ( fuse_req_t req , uint64 _t parent , const char * name ) ;
/**
/**
* Forget about an inode
* Forget about an inode
@ -224,7 +221,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param nlookup the number of lookups to forget
* @ param nlookup the number of lookups to forget
*/
*/
void ( * forget ) ( fuse_req_t req , fuse_ino _t ino , uint64_t nlookup ) ;
void ( * forget ) ( fuse_req_t req , uint64 _t ino , uint64_t nlookup ) ;
/**
/**
* Get file attributes
* Get file attributes
@ -237,7 +234,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param fi for future use , currently always NULL
* @ param fi for future use , currently always NULL
*/
*/
void ( * getattr ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * getattr ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -267,7 +264,7 @@ struct fuse_lowlevel_ops
* Changed in version 2.5 :
* Changed in version 2.5 :
* file information filled in for ftruncate
* file information filled in for ftruncate
*/
*/
void ( * setattr ) ( fuse_req_t req , fuse_ino _t ino , struct stat * attr ,
void ( * setattr ) ( fuse_req_t req , uint64 _t ino , struct stat * attr ,
int to_set , fuse_file_info_t * fi ) ;
int to_set , fuse_file_info_t * fi ) ;
/**
/**
@ -280,7 +277,7 @@ struct fuse_lowlevel_ops
* @ param req request handle
* @ param req request handle
* @ param ino the inode number
* @ param ino the inode number
*/
*/
void ( * readlink ) ( fuse_req_t req , fuse_ino _t ino ) ;
void ( * readlink ) ( fuse_req_t req , uint64 _t ino ) ;
/**
/**
* Create file node
* Create file node
@ -298,7 +295,7 @@ struct fuse_lowlevel_ops
* @ param mode file type and mode with which to create the new file
* @ param mode file type and mode with which to create the new file
* @ param rdev the device number ( only valid if created file is a device )
* @ param rdev the device number ( only valid if created file is a device )
*/
*/
void ( * mknod ) ( fuse_req_t req , fuse_ino _t parent , const char * name ,
void ( * mknod ) ( fuse_req_t req , uint64 _t parent , const char * name ,
mode_t mode , dev_t rdev ) ;
mode_t mode , dev_t rdev ) ;
/**
/**
@ -313,7 +310,7 @@ struct fuse_lowlevel_ops
* @ param name to create
* @ param name to create
* @ param mode with which to create the new file
* @ param mode with which to create the new file
*/
*/
void ( * mkdir ) ( fuse_req_t req , fuse_ino _t parent , const char * name ,
void ( * mkdir ) ( fuse_req_t req , uint64 _t parent , const char * name ,
mode_t mode ) ;
mode_t mode ) ;
/**
/**
@ -331,7 +328,7 @@ struct fuse_lowlevel_ops
* @ param parent inode number of the parent directory
* @ param parent inode number of the parent directory
* @ param name to remove
* @ param name to remove
*/
*/
void ( * unlink ) ( fuse_req_t req , fuse_ino _t parent , const char * name ) ;
void ( * unlink ) ( fuse_req_t req , uint64 _t parent , const char * name ) ;
/**
/**
* Remove a directory
* Remove a directory
@ -348,7 +345,7 @@ struct fuse_lowlevel_ops
* @ param parent inode number of the parent directory
* @ param parent inode number of the parent directory
* @ param name to remove
* @ param name to remove
*/
*/
void ( * rmdir ) ( fuse_req_t req , fuse_ino _t parent , const char * name ) ;
void ( * rmdir ) ( fuse_req_t req , uint64 _t parent , const char * name ) ;
/**
/**
* Create a symbolic link
* Create a symbolic link
@ -362,7 +359,7 @@ struct fuse_lowlevel_ops
* @ param parent inode number of the parent directory
* @ param parent inode number of the parent directory
* @ param name to create
* @ param name to create
*/
*/
void ( * symlink ) ( fuse_req_t req , const char * link , fuse_ino _t parent ,
void ( * symlink ) ( fuse_req_t req , const char * link , uint64 _t parent ,
const char * name ) ;
const char * name ) ;
/** Rename a file
/** Rename a file
@ -382,8 +379,8 @@ struct fuse_lowlevel_ops
* @ param newparent inode number of the new parent directory
* @ param newparent inode number of the new parent directory
* @ param newname new name
* @ param newname new name
*/
*/
void ( * rename ) ( fuse_req_t req , fuse_ino _t parent , const char * name ,
fuse_ino _t newparent , const char * newname ) ;
void ( * rename ) ( fuse_req_t req , uint64 _t parent , const char * name ,
uint64 _t newparent , const char * newname ) ;
/**
/**
* Create a hard link
* Create a hard link
@ -397,7 +394,7 @@ struct fuse_lowlevel_ops
* @ param newparent inode number of the new parent directory
* @ param newparent inode number of the new parent directory
* @ param newname new name to create
* @ param newname new name to create
*/
*/
void ( * link ) ( fuse_req_t req , fuse_ino_t ino , fuse_ino _t newparent ,
void ( * link ) ( fuse_req_t req , uint64_t ino , uint64 _t newparent ,
const char * newname ) ;
const char * newname ) ;
/**
/**
@ -425,7 +422,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param fi file information
* @ param fi file information
*/
*/
void ( * open ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * open ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -453,7 +450,7 @@ struct fuse_lowlevel_ops
* @ param off offset to read from
* @ param off offset to read from
* @ param fi file information
* @ param fi file information
*/
*/
void ( * read ) ( fuse_req_t req , fuse_ino _t ino , size_t size , off_t off ,
void ( * read ) ( fuse_req_t req , uint64 _t ino , size_t size , off_t off ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -479,7 +476,7 @@ struct fuse_lowlevel_ops
* @ param off offset to write to
* @ param off offset to write to
* @ param fi file information
* @ param fi file information
*/
*/
void ( * write ) ( fuse_req_t req , fuse_ino _t ino , const char * buf ,
void ( * write ) ( fuse_req_t req , uint64 _t ino , const char * buf ,
size_t size , off_t off , fuse_file_info_t * fi ) ;
size_t size , off_t off , fuse_file_info_t * fi ) ;
/**
/**
@ -511,7 +508,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param fi file information
* @ param fi file information
*/
*/
void ( * flush ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * flush ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -538,7 +535,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param fi file information
* @ param fi file information
*/
*/
void ( * release ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * release ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -555,7 +552,7 @@ struct fuse_lowlevel_ops
* @ param datasync flag indicating if only data should be flushed
* @ param datasync flag indicating if only data should be flushed
* @ param fi file information
* @ param fi file information
*/
*/
void ( * fsync ) ( fuse_req_t req , fuse_ino _t ino , int datasync ,
void ( * fsync ) ( fuse_req_t req , uint64 _t ino , int datasync ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -579,7 +576,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param fi file information
* @ param fi file information
*/
*/
void ( * opendir ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * opendir ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -603,10 +600,10 @@ struct fuse_lowlevel_ops
* @ param off offset to continue reading the directory stream
* @ param off offset to continue reading the directory stream
* @ param fi file information
* @ param fi file information
*/
*/
void ( * readdir ) ( fuse_req_t req , fuse_ino _t ino , size_t size , off_t off ,
void ( * readdir ) ( fuse_req_t req , uint64 _t ino , size_t size , off_t off ,
fuse_file_info_t * llffi ) ;
fuse_file_info_t * llffi ) ;
void ( * readdir_plus ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * readdir_plus ) ( fuse_req_t req , uint64 _t ino ,
size_t size , off_t off ,
size_t size , off_t off ,
fuse_file_info_t * ffi ) ;
fuse_file_info_t * ffi ) ;
@ -626,7 +623,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param fi file information
* @ param fi file information
*/
*/
void ( * releasedir ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * releasedir ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -646,7 +643,7 @@ struct fuse_lowlevel_ops
* @ param datasync flag indicating if only data should be flushed
* @ param datasync flag indicating if only data should be flushed
* @ param fi file information
* @ param fi file information
*/
*/
void ( * fsyncdir ) ( fuse_req_t req , fuse_ino _t ino , int datasync ,
void ( * fsyncdir ) ( fuse_req_t req , uint64 _t ino , int datasync ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
/**
/**
@ -659,7 +656,7 @@ struct fuse_lowlevel_ops
* @ param req request handle
* @ param req request handle
* @ param ino the inode number , zero means " undefined "
* @ param ino the inode number , zero means " undefined "
*/
*/
void ( * statfs ) ( fuse_req_t req , fuse_ino _t ino ) ;
void ( * statfs ) ( fuse_req_t req , uint64 _t ino ) ;
/**
/**
* Set an extended attribute
* Set an extended attribute
@ -667,7 +664,7 @@ struct fuse_lowlevel_ops
* Valid replies :
* Valid replies :
* fuse_reply_err
* fuse_reply_err
*/
*/
void ( * setxattr ) ( fuse_req_t req , fuse_ino _t ino , const char * name ,
void ( * setxattr ) ( fuse_req_t req , uint64 _t ino , const char * name ,
const char * value , size_t size , int flags ) ;
const char * value , size_t size , int flags ) ;
/**
/**
@ -693,7 +690,7 @@ struct fuse_lowlevel_ops
* @ param name of the extended attribute
* @ param name of the extended attribute
* @ param size maximum size of the value to send
* @ param size maximum size of the value to send
*/
*/
void ( * getxattr ) ( fuse_req_t req , fuse_ino _t ino , const char * name ,
void ( * getxattr ) ( fuse_req_t req , uint64 _t ino , const char * name ,
size_t size ) ;
size_t size ) ;
/**
/**
@ -719,7 +716,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param size maximum size of the list to send
* @ param size maximum size of the list to send
*/
*/
void ( * listxattr ) ( fuse_req_t req , fuse_ino _t ino , size_t size ) ;
void ( * listxattr ) ( fuse_req_t req , uint64 _t ino , size_t size ) ;
/**
/**
* Remove an extended attribute
* Remove an extended attribute
@ -731,7 +728,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param name of the extended attribute
* @ param name of the extended attribute
*/
*/
void ( * removexattr ) ( fuse_req_t req , fuse_ino _t ino , const char * name ) ;
void ( * removexattr ) ( fuse_req_t req , uint64 _t ino , const char * name ) ;
/**
/**
* Check file access permissions
* Check file access permissions
@ -751,7 +748,7 @@ struct fuse_lowlevel_ops
* @ param ino the inode number
* @ param ino the inode number
* @ param mask requested access mode
* @ param mask requested access mode
*/
*/
void ( * access ) ( fuse_req_t req , fuse_ino _t ino , int mask ) ;
void ( * access ) ( fuse_req_t req , uint64 _t ino , int mask ) ;
/**
/**
* Create and open a file
* Create and open a file
@ -786,7 +783,7 @@ struct fuse_lowlevel_ops
* @ param mode file type and mode with which to create the new file
* @ param mode file type and mode with which to create the new file
* @ param fi file information
* @ param fi file information
*/
*/
void ( * create ) ( fuse_req_t req , fuse_ino _t parent , const char * name ,
void ( * create ) ( fuse_req_t req , uint64 _t parent , const char * name ,
mode_t mode , fuse_file_info_t * fi ) ;
mode_t mode , fuse_file_info_t * fi ) ;
/**
/**
@ -803,7 +800,7 @@ struct fuse_lowlevel_ops
* @ param fi file information
* @ param fi file information
* @ param lock the region / type to test
* @ param lock the region / type to test
*/
*/
void ( * getlk ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * getlk ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi , struct flock * lock ) ;
fuse_file_info_t * fi , struct flock * lock ) ;
/**
/**
@ -830,7 +827,7 @@ struct fuse_lowlevel_ops
* @ param lock the region / type to set
* @ param lock the region / type to set
* @ param sleep locking operation may sleep
* @ param sleep locking operation may sleep
*/
*/
void ( * setlk ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * setlk ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi ,
fuse_file_info_t * fi ,
struct flock * lock , int sleep ) ;
struct flock * lock , int sleep ) ;
@ -851,7 +848,7 @@ struct fuse_lowlevel_ops
* @ param blocksize unit of block index
* @ param blocksize unit of block index
* @ param idx block index within file
* @ param idx block index within file
*/
*/
void ( * bmap ) ( fuse_req_t req , fuse_ino _t ino , size_t blocksize ,
void ( * bmap ) ( fuse_req_t req , uint64 _t ino , size_t blocksize ,
uint64_t idx ) ;
uint64_t idx ) ;
/**
/**
@ -881,7 +878,7 @@ struct fuse_lowlevel_ops
* @ param in_bufsz number of fetched bytes
* @ param in_bufsz number of fetched bytes
* @ param out_bufsz maximum size of output data
* @ param out_bufsz maximum size of output data
*/
*/
void ( * ioctl ) ( fuse_req_t req , fuse_ino _t ino , unsigned long cmd , void * arg ,
void ( * ioctl ) ( fuse_req_t req , uint64 _t ino , unsigned long cmd , void * arg ,
fuse_file_info_t * fi , unsigned flags ,
fuse_file_info_t * fi , unsigned flags ,
const void * in_buf , uint32_t in_bufsz , uint32_t out_bufsz ) ;
const void * in_buf , uint32_t in_bufsz , uint32_t out_bufsz ) ;
@ -912,7 +909,7 @@ struct fuse_lowlevel_ops
* @ param ph poll handle to be used for notification
* @ param ph poll handle to be used for notification
*/
*/
void ( * poll ) ( fuse_req_t req ,
void ( * poll ) ( fuse_req_t req ,
fuse_ino _t ino ,
uint64 _t ino ,
fuse_file_info_t * fi ,
fuse_file_info_t * fi ,
fuse_pollhandle_t * ph ) ;
fuse_pollhandle_t * ph ) ;
@ -942,7 +939,7 @@ struct fuse_lowlevel_ops
* @ param off offset to write to
* @ param off offset to write to
* @ param fi file information
* @ param fi file information
*/
*/
void ( * write_buf ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * write_buf ) ( fuse_req_t req , uint64 _t ino ,
struct fuse_bufvec * bufv , off_t off ,
struct fuse_bufvec * bufv , off_t off ,
fuse_file_info_t * fi ) ;
fuse_file_info_t * fi ) ;
@ -960,7 +957,7 @@ struct fuse_lowlevel_ops
* @ param offset the offset supplied to fuse_lowlevel_notify_retrieve ( )
* @ param offset the offset supplied to fuse_lowlevel_notify_retrieve ( )
* @ param bufv the buffer containing the returned data
* @ param bufv the buffer containing the returned data
*/
*/
void ( * retrieve_reply ) ( fuse_req_t req , void * cookie , fuse_ino _t ino ,
void ( * retrieve_reply ) ( fuse_req_t req , void * cookie , uint64 _t ino ,
off_t offset , struct fuse_bufvec * bufv ) ;
off_t offset , struct fuse_bufvec * bufv ) ;
/**
/**
@ -996,7 +993,7 @@ struct fuse_lowlevel_ops
* @ param fi file information
* @ param fi file information
* @ param op the locking operation , see flock ( 2 )
* @ param op the locking operation , see flock ( 2 )
*/
*/
void ( * flock ) ( fuse_req_t req , fuse_ino _t ino ,
void ( * flock ) ( fuse_req_t req , uint64 _t ino ,
fuse_file_info_t * fi , int op ) ;
fuse_file_info_t * fi , int op ) ;
/**
/**
@ -1016,7 +1013,7 @@ struct fuse_lowlevel_ops
* @ param mode determines the operation to be performed on the given range ,
* @ param mode determines the operation to be performed on the given range ,
* see fallocate ( 2 )
* see fallocate ( 2 )
*/
*/
void ( * fallocate ) ( fuse_req_t req , fuse_ino _t ino , int mode ,
void ( * fallocate ) ( fuse_req_t req , uint64 _t ino , int mode ,
off_t offset , off_t length , fuse_file_info_t * fi ) ;
off_t offset , off_t length , fuse_file_info_t * fi ) ;
/**
/**
@ -1056,10 +1053,10 @@ struct fuse_lowlevel_ops
* @ param flags passed along with the copy_file_range ( ) syscall
* @ param flags passed along with the copy_file_range ( ) syscall
*/
*/
void ( * copy_file_range ) ( fuse_req_t req ,
void ( * copy_file_range ) ( fuse_req_t req ,
fuse_ino _t ino_in ,
uint64 _t ino_in ,
off_t off_in ,
off_t off_in ,
fuse_file_info_t * fi_in ,
fuse_file_info_t * fi_in ,
fuse_ino _t ino_out ,
uint64 _t ino_out ,
off_t off_out ,
off_t off_out ,
fuse_file_info_t * fi_out ,
fuse_file_info_t * fi_out ,
size_t len ,
size_t len ,
@ -1345,7 +1342,7 @@ int fuse_lowlevel_notify_poll(fuse_pollhandle_t *ph);
* @ param len the amount of cache to invalidate or 0 for all
* @ param len the amount of cache to invalidate or 0 for all
* @ return zero for success , - errno for failure
* @ return zero for success , - errno for failure
*/
*/
int fuse_lowlevel_notify_inval_inode ( struct fuse_chan * ch , fuse_ino _t ino ,
int fuse_lowlevel_notify_inval_inode ( struct fuse_chan * ch , uint64 _t ino ,
off_t off , off_t len ) ;
off_t off , off_t len ) ;
/**
/**
@ -1362,7 +1359,7 @@ int fuse_lowlevel_notify_inval_inode(struct fuse_chan *ch, fuse_ino_t ino,
* @ param namelen strlen ( ) of file name
* @ param namelen strlen ( ) of file name
* @ return zero for success , - errno for failure
* @ return zero for success , - errno for failure
*/
*/
int fuse_lowlevel_notify_inval_entry ( struct fuse_chan * ch , fuse_ino _t parent ,
int fuse_lowlevel_notify_inval_entry ( struct fuse_chan * ch , uint64 _t parent ,
const char * name , size_t namelen ) ;
const char * name , size_t namelen ) ;
/**
/**
@ -1382,7 +1379,7 @@ int fuse_lowlevel_notify_inval_entry(struct fuse_chan *ch, fuse_ino_t parent,
* @ return zero for success , - errno for failure
* @ return zero for success , - errno for failure
*/
*/
int fuse_lowlevel_notify_delete ( struct fuse_chan * ch ,
int fuse_lowlevel_notify_delete ( struct fuse_chan * ch ,
fuse_ino_t parent , fuse_ino _t child ,
uint64_t parent , uint64 _t child ,
const char * name , size_t namelen ) ;
const char * name , size_t namelen ) ;
/**
/**
@ -1406,7 +1403,7 @@ int fuse_lowlevel_notify_delete(struct fuse_chan *ch,
* @ param flags flags controlling the copy
* @ param flags flags controlling the copy
* @ return zero for success , - errno for failure
* @ return zero for success , - errno for failure
*/
*/
int fuse_lowlevel_notify_store ( struct fuse_chan * ch , fuse_ino _t ino ,
int fuse_lowlevel_notify_store ( struct fuse_chan * ch , uint64 _t ino ,
off_t offset , struct fuse_bufvec * bufv ,
off_t offset , struct fuse_bufvec * bufv ,
enum fuse_buf_copy_flags flags ) ;
enum fuse_buf_copy_flags flags ) ;
/**
/**
@ -1434,7 +1431,7 @@ int fuse_lowlevel_notify_store(struct fuse_chan *ch, fuse_ino_t ino,
* @ param cookie user data to supply to the reply callback
* @ param cookie user data to supply to the reply callback
* @ return zero for success , - errno for failure
* @ return zero for success , - errno for failure
*/
*/
int fuse_lowlevel_notify_retrieve ( struct fuse_chan * ch , fuse_ino _t ino ,
int fuse_lowlevel_notify_retrieve ( struct fuse_chan * ch , uint64 _t ino ,
size_t size , off_t offset , void * cookie ) ;
size_t size , off_t offset , void * cookie ) ;