4 struct puffs_usermount
;
7 /* Function prototypes. */
10 int fs_putnode(ino_t ino_nr
, unsigned int count
);
11 void release_node(struct puffs_usermount
*pu
, struct puffs_node
*pn
);
14 int fs_trunc(ino_t ino_nr
, off_t start
, off_t end
);
15 int fs_link(ino_t dir_nr
, char *name
, ino_t ino_nr
);
16 ssize_t
fs_rdlink(ino_t ino_nr
, struct fsdriver_data
*data
, size_t bytes
);
17 int fs_rename(ino_t old_dir_nr
, char *old_name
, ino_t new_dir_nr
,
19 int fs_unlink(ino_t dir_nr
, char *name
, int call
);
25 int fs_mount(dev_t dev
, unsigned int flags
, struct fsdriver_node
*root_node
,
26 unsigned int *res_flags
);
27 void fs_unmount(void);
28 int fs_mountpt(ino_t ino_nr
);
31 int fs_create(ino_t dir_nr
, char *name
, mode_t mode
, uid_t uid
, gid_t gid
,
32 struct fsdriver_node
*node
);
33 int fs_mkdir(ino_t dir_nr
, char *name
, mode_t mode
, uid_t uid
, gid_t gid
);
34 int fs_mknod(ino_t dir_nr
, char *name
, mode_t mode
, uid_t uid
, gid_t gid
,
36 int fs_slink(ino_t dir_nr
, char *name
, uid_t uid
, gid_t gid
,
37 struct fsdriver_data
*data
, size_t bytes
);
40 int fs_lookup(ino_t dir_nr
, char *name
, struct fsdriver_node
*node
,
42 struct puffs_node
*advance(struct puffs_node
*dirp
, char string
[NAME_MAX
+ 1]);
45 int fs_chmod(ino_t ino_nr
, mode_t
*mode
);
46 int fs_chown(ino_t ino_nr
, uid_t uid
, gid_t gid
, mode_t
*mode
);
49 ssize_t
fs_read(ino_t ino_nr
, struct fsdriver_data
*data
, size_t bytes
,
51 ssize_t
fs_write(ino_t ino_nr
, struct fsdriver_data
*data
, size_t bytes
,
53 ssize_t
fs_getdents(ino_t ino_nr
, struct fsdriver_data
*data
, size_t bytes
,
57 int fs_stat(ino_t ino
, struct stat
*statbuf
);
58 int fs_statvfs(struct statvfs
*st
);
61 int fs_utime(ino_t ino_nr
, struct timespec
*atime
, struct timespec
*mtime
);
64 void *find_inode_cb(struct puffs_usermount
*pu
, struct puffs_node
*pn
,
66 int update_timens(struct puffs_node
*pn
, int fl
, struct timespec
*);
68 #endif /* PUFFS_PROTO_H */