4857d5d554
. move cache size heuristic from mfs there so mfs and ext2 can share it . add vfs credentials retrieving function, with backwards compatability from previous struct format, to be used by both ext2 and mfs . fix for ext2 - STATICINIT was fed no. of bytes instead of no. of elements, overallocating memory by a megabyte or two for the superblock
136 lines
5.1 KiB
C
136 lines
5.1 KiB
C
#ifndef EXT2_PROTO_H
|
|
#define EXT2_PROTO_H
|
|
|
|
/* Function prototypes. */
|
|
|
|
/* Structs used in prototypes must be declared as such first. */
|
|
struct buf;
|
|
struct filp;
|
|
struct inode;
|
|
struct super_block;
|
|
|
|
|
|
/* balloc.c */
|
|
_PROTOTYPE( void discard_preallocated_blocks, (struct inode *rip) );
|
|
_PROTOTYPE( block_t alloc_block, (struct inode *rip, block_t goal) );
|
|
_PROTOTYPE( void free_block, (struct super_block *sp, bit_t bit) );
|
|
|
|
/* cache.c */
|
|
_PROTOTYPE( void buf_pool, (int bufs) );
|
|
_PROTOTYPE( void flushall, (dev_t dev) );
|
|
_PROTOTYPE( struct buf *get_block, (dev_t dev, block_t block,int only_search));
|
|
_PROTOTYPE( void invalidate, (dev_t device) );
|
|
_PROTOTYPE( void put_block, (struct buf *bp, int block_type) );
|
|
_PROTOTYPE( void set_blocksize, (unsigned int blocksize, u32_t blocks,
|
|
u32_t freeblocks, dev_t major));
|
|
_PROTOTYPE( void rw_scattered, (dev_t dev,
|
|
struct buf **bufq, int bufqsize, int rw_flag) );
|
|
|
|
/* device.c */
|
|
_PROTOTYPE( int block_dev_io, (int op, dev_t dev, endpoint_t proc_e,
|
|
void *buf, u64_t pos, size_t bytes) );
|
|
_PROTOTYPE( int dev_open, (endpoint_t driver_e, dev_t dev, endpoint_t proc_e,
|
|
int flags) );
|
|
_PROTOTYPE( void dev_close, (endpoint_t driver_e, dev_t dev) );
|
|
_PROTOTYPE( int fs_new_driver, (void) );
|
|
|
|
/* ialloc.c */
|
|
_PROTOTYPE( struct inode *alloc_inode, (struct inode *parent, mode_t bits));
|
|
_PROTOTYPE( void free_inode, (struct inode *rip) );
|
|
|
|
/* inode.c */
|
|
_PROTOTYPE( void dup_inode, (struct inode *ip) );
|
|
_PROTOTYPE( struct inode *find_inode, (dev_t dev, ino_t numb) );
|
|
_PROTOTYPE( int fs_putnode, (void) );
|
|
_PROTOTYPE( void init_inode_cache, (void) );
|
|
_PROTOTYPE( struct inode *get_inode, (dev_t dev, ino_t numb) );
|
|
_PROTOTYPE( void put_inode, (struct inode *rip) );
|
|
_PROTOTYPE( void update_times, (struct inode *rip) );
|
|
_PROTOTYPE( void rw_inode, (struct inode *rip, int rw_flag) );
|
|
|
|
/* link.c */
|
|
_PROTOTYPE( int fs_ftrunc, (void) );
|
|
_PROTOTYPE( int fs_link, (void) );
|
|
_PROTOTYPE( int fs_rdlink, (void) );
|
|
_PROTOTYPE( int fs_rename, (void) );
|
|
_PROTOTYPE( int fs_unlink, (void) );
|
|
_PROTOTYPE( int truncate_inode, (struct inode *rip, off_t len) );
|
|
|
|
/* misc.c */
|
|
_PROTOTYPE( int fs_flush, (void) );
|
|
_PROTOTYPE( int fs_sync, (void) );
|
|
|
|
/* mount.c */
|
|
_PROTOTYPE( int fs_mountpoint, (void) );
|
|
_PROTOTYPE( int fs_readsuper, (void) );
|
|
_PROTOTYPE( int fs_unmount, (void) );
|
|
|
|
/* open.c */
|
|
_PROTOTYPE( int fs_create, (void) );
|
|
_PROTOTYPE( int fs_inhibread, (void) );
|
|
_PROTOTYPE( int fs_mkdir, (void) );
|
|
_PROTOTYPE( int fs_mknod, (void) );
|
|
_PROTOTYPE( int fs_slink, (void) );
|
|
|
|
/* path.c */
|
|
_PROTOTYPE( int fs_lookup, (void) );
|
|
_PROTOTYPE( struct inode *advance, (struct inode *dirp,
|
|
char string[NAME_MAX + 1], int chk_perm));
|
|
_PROTOTYPE( int search_dir, (struct inode *ldir_ptr,
|
|
char string [NAME_MAX + 1], ino_t *numb, int flag,
|
|
int check_permissions, int ftype) );
|
|
|
|
/* protect.c */
|
|
_PROTOTYPE( int fs_chmod, (void) );
|
|
_PROTOTYPE( int fs_chown, (void) );
|
|
_PROTOTYPE( int fs_getdents, (void) );
|
|
_PROTOTYPE( int forbidden, (struct inode *rip, mode_t access_desired) );
|
|
_PROTOTYPE( int read_only, (struct inode *ip) );
|
|
|
|
/* read.c */
|
|
_PROTOTYPE( int fs_breadwrite, (void) );
|
|
_PROTOTYPE( int fs_readwrite, (void) );
|
|
_PROTOTYPE( void read_ahead, (void) );
|
|
_PROTOTYPE( block_t read_map, (struct inode *rip, off_t pos) );
|
|
_PROTOTYPE( block_t rd_indir, (struct buf *bp, int index) );
|
|
|
|
/* stadir.c */
|
|
_PROTOTYPE( int fs_fstatfs, (void) );
|
|
_PROTOTYPE( int fs_stat, (void) );
|
|
_PROTOTYPE( int fs_statvfs, (void) );
|
|
|
|
/* super.c */
|
|
_PROTOTYPE( unsigned int get_block_size, (dev_t dev) );
|
|
_PROTOTYPE( struct super_block *get_super, (dev_t dev) );
|
|
_PROTOTYPE( int read_super, (struct super_block *sp) );
|
|
_PROTOTYPE( void write_super, (struct super_block *sp) );
|
|
_PROTOTYPE( struct group_desc* get_group_desc, (unsigned int bnum) );
|
|
|
|
/* time.c */
|
|
_PROTOTYPE( int fs_utime, (void) );
|
|
|
|
/* utility.c */
|
|
_PROTOTYPE( time_t clock_time, (void) );
|
|
_PROTOTYPE( unsigned conv2, (int norm, int w) );
|
|
_PROTOTYPE( long conv4, (int norm, long x) );
|
|
_PROTOTYPE( void mfs_nul_f, (char *file, int line, char *str,
|
|
unsigned int len, unsigned int maxlen) );
|
|
_PROTOTYPE( int min, (unsigned int l, unsigned int r) );
|
|
_PROTOTYPE( int no_sys, (void) );
|
|
_PROTOTYPE( void sanitycheck, (char *file, int line) );
|
|
#define SANITYCHECK sanitycheck(__FILE__, __LINE__)
|
|
_PROTOTYPE( int ansi_strcmp, (register const char* ansi_s,
|
|
register const char *s2,
|
|
register size_t ansi_s_length) );
|
|
_PROTOTYPE( bit_t setbit, (bitchunk_t *bitmap, bit_t max_bits,
|
|
unsigned int word));
|
|
_PROTOTYPE( bit_t setbyte, (bitchunk_t *bitmap, bit_t max_bits,
|
|
unsigned int word));
|
|
_PROTOTYPE( int unsetbit, (bitchunk_t *bitmap, bit_t bit) );
|
|
|
|
/* write.c */
|
|
_PROTOTYPE( struct buf *new_block, (struct inode *rip, off_t position) );
|
|
_PROTOTYPE( void zero_block, (struct buf *bp) );
|
|
_PROTOTYPE( int write_map, (struct inode *, off_t, block_t, int) );
|
|
|
|
#endif /* EXT2_PROTO_H */
|