123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #ifndef __MFS_PROTO_H__
- #define __MFS_PROTO_H__
- /* Some shortcuts to functions in -lminixfs */
- #define put_block(b) lmfs_put_block(b)
- /* Function prototypes. */
- /* Structs used in prototypes must be declared as such first. */
- struct buf;
- struct filp;
- struct inode;
- struct super_block;
- /* cache.c */
- zone_t alloc_zone(dev_t dev, zone_t z);
- void free_zone(dev_t dev, zone_t numb);
- struct buf *get_block(dev_t dev, block_t block, int how);
- /* inode.c */
- struct inode *alloc_inode(dev_t dev, mode_t bits, uid_t uid, gid_t gid);
- void dup_inode(struct inode *ip);
- struct inode *find_inode(dev_t dev, ino_t numb);
- int fs_putnode(ino_t ino_nr, unsigned int count);
- void init_inode_cache(void);
- struct inode *get_inode(dev_t dev, ino_t numb);
- void put_inode(struct inode *rip);
- void update_times(struct inode *rip);
- void rw_inode(struct inode *rip, int rw_flag);
- /* link.c */
- int fs_trunc(ino_t ino_nr, off_t start, off_t end);
- int fs_link(ino_t dir_nr, char *name, ino_t ino_nr);
- ssize_t fs_rdlink(ino_t ino_nr, struct fsdriver_data *data, size_t bytes);
- int fs_rename(ino_t old_dir_nr, char *old_name, ino_t new_dir_nr,
- char *new_name);
- int fs_unlink(ino_t dir_nr, char *name, int call);
- int truncate_inode(struct inode *rip, off_t len);
- /* misc.c */
- void fs_sync(void);
- /* mount.c */
- int fs_mount(dev_t dev, unsigned int flags, struct fsdriver_node *root_node,
- unsigned int *res_flags);
- void fs_unmount(void);
- int fs_mountpt(ino_t ino_nr);
- /* open.c */
- int fs_create(ino_t dir_nr, char *name, mode_t mode, uid_t uid, gid_t gid,
- struct fsdriver_node *node);
- int fs_mkdir(ino_t dir_nr, char *name, mode_t mode, uid_t uid, gid_t gid);
- int fs_mknod(ino_t dir_nr, char *name, mode_t mode, uid_t uid, gid_t gid,
- dev_t dev);
- int fs_slink(ino_t dir_nr, char *name, uid_t uid, gid_t gid,
- struct fsdriver_data *data, size_t bytes);
- void fs_seek(ino_t ino_nr);
- /* path.c */
- int fs_lookup(ino_t dir_nr, char *name, struct fsdriver_node *node,
- int *is_mountpt);
- struct inode *advance(struct inode *dirp, const char *string);
- int search_dir(struct inode *ldir_ptr, const char *string, ino_t *numb,
- int flag);
- /* protect.c */
- int fs_chmod(ino_t ino, mode_t *mode);
- int fs_chown(ino_t ino, uid_t uid, gid_t gid, mode_t *mode);
- /* read.c */
- ssize_t fs_readwrite(ino_t ino_nr, struct fsdriver_data *data, size_t bytes,
- off_t pos, int call);
- block_t read_map(struct inode *rip, off_t pos, int opportunistic);
- struct buf *get_block_map(register struct inode *rip, u64_t position);
- zone_t rd_indir(struct buf *bp, int index);
- ssize_t fs_getdents(ino_t ino_nr, struct fsdriver_data *data, size_t bytes,
- off_t *posp);
- /* stadir.c */
- int fs_stat(ino_t ino_nr, struct stat *statbuf);
- int fs_statvfs(struct statvfs *st);
- /* super.c */
- bit_t alloc_bit(struct super_block *sp, int map, bit_t origin);
- void free_bit(struct super_block *sp, int map, bit_t bit_returned);
- unsigned int get_block_size(dev_t dev);
- int read_super(struct super_block *sp);
- int write_super(struct super_block *sp);
- /* stats.c */
- bit_t count_free_bits(struct super_block *sp, int map);
- /* time.c */
- int fs_utime(ino_t ino_t, struct timespec *atime, struct timespec *mtime);
- /* utility.c */
- unsigned conv2(int norm, int w);
- long conv4(int norm, long x);
- /* write.c */
- void clear_zone(struct inode *rip, off_t pos, int flag);
- struct buf *new_block(struct inode *rip, off_t position);
- void zero_block(struct buf *bp);
- int write_map(struct inode *, off_t, zone_t, int);
- #endif
|