Merge of VFS by Balasz Gerofi with Minix trunk.
[minix3.git] / servers / mfs / proto.h
blob2ed4d75b951009973d2badf0cffa2152821c08cb
1 /* Function prototypes. */
3 #include "timers.h"
5 /* Structs used in prototypes must be declared as such first. */
6 struct buf;
7 struct filp;
8 struct inode;
9 struct super_block;
12 int fs_open(void);
13 int fs_putnode(void);
14 int fs_getnode(void);
15 int fs_pipe(void);
16 int fs_readwrite(void);
17 int fs_clone_opcl(void);
18 int fs_new_driver(void);
19 int fs_ftrunc(void);
20 int fs_chown(void);
21 int fs_chmod(void);
22 int fs_access(void);
23 int fs_mknod(void);
24 int fs_mkdir(void);
25 int fs_inhibread(void);
26 int fs_stat(void);
27 int fs_fstat(void);
28 int fs_unlink(void);
29 int fs_utime(void);
30 int fs_fstatfs(void);
31 int fs_lstat(void);
32 int fs_getdir(void);
33 int fs_link(void);
34 int fs_lookup_rn_old(void);
35 int fs_lookup_rn_new(void);
36 int fs_rename(void);
38 int fs_mountpoint(void);
39 int fs_readsuper(void);
40 int fs_unmount(void);
41 int fs_trunc(void);
42 int fs_sync(void);
43 int fs_stime(void);
44 int lookup(void);
46 int fs_slink(void);
47 int fs_rdlink(void);
48 int fs_breadwrite(void);
50 void init_inode_cache(void);
52 /* cache.c */
53 _PROTOTYPE( zone_t alloc_zone, (Dev_t dev, zone_t z) );
54 _PROTOTYPE( void flushall, (Dev_t dev) );
55 _PROTOTYPE( void free_zone, (Dev_t dev, zone_t numb) );
56 _PROTOTYPE( struct buf *get_block, (Dev_t dev, block_t block,int only_search));
57 _PROTOTYPE( void invalidate, (Dev_t device) );
58 _PROTOTYPE( void put_block, (struct buf *bp, int block_type) );
59 _PROTOTYPE( void rw_scattered, (Dev_t dev,
60 struct buf **bufq, int bufqsize, int rw_flag) );
62 #if ENABLE_CACHE2
63 /* cache2.c */
64 _PROTOTYPE( void init_cache2, (unsigned long size) );
65 _PROTOTYPE( int get_block2, (struct buf *bp, int only_search) );
66 _PROTOTYPE( void put_block2, (struct buf *bp) );
67 _PROTOTYPE( void invalidate2, (Dev_t device) );
68 #endif
70 /* device.c */
71 _PROTOTYPE( int block_dev_io, (int op, Dev_t dev, int proc, void *buf,
72 off_t pos, int bytes, int flags) );
75 /* inode.c */
76 _PROTOTYPE( struct inode *find_inode, (Dev_t dev, int numb) );
78 _PROTOTYPE( struct inode *alloc_inode, (dev_t dev, mode_t bits) );
79 _PROTOTYPE( void dup_inode, (struct inode *ip) );
80 _PROTOTYPE( void free_inode, (Dev_t dev, Ino_t numb) );
81 _PROTOTYPE( struct inode *get_inode, (Dev_t dev, int numb) );
82 _PROTOTYPE( void put_inode, (struct inode *rip) );
83 _PROTOTYPE( void update_times, (struct inode *rip) );
84 _PROTOTYPE( void rw_inode, (struct inode *rip, int rw_flag) );
85 _PROTOTYPE( void wipe_inode, (struct inode *rip) );
87 /* link.c */
88 _PROTOTYPE( int truncate_inode, (struct inode *rip, off_t len) );
89 _PROTOTYPE( int freesp_inode, (struct inode *rip, off_t st, off_t end) );
91 /* lock.c */
92 _PROTOTYPE( int lock_op, (struct filp *f, int req) );
93 _PROTOTYPE( void lock_revive, (void) );
95 /* main.c */
96 _PROTOTYPE( int main, (void) );
97 _PROTOTYPE( void reply, (int who, message *m_out) );
99 /* misc.c */
100 _PROTOTYPE( int do_dup, (void) );
101 _PROTOTYPE( int do_exit, (void) );
102 _PROTOTYPE( int do_fcntl, (void) );
103 _PROTOTYPE( int do_fork, (void) );
104 _PROTOTYPE( int do_exec, (void) );
105 _PROTOTYPE( int do_revive, (void) );
106 _PROTOTYPE( int do_set, (void) );
107 _PROTOTYPE( int do_sync, (void) );
108 _PROTOTYPE( int do_fsync, (void) );
109 _PROTOTYPE( int do_reboot, (void) );
110 _PROTOTYPE( int do_svrctl, (void) );
111 _PROTOTYPE( int do_getsysinfo, (void) );
113 /* mount.c */
114 _PROTOTYPE( int do_mount, (void) );
115 _PROTOTYPE( int do_umount, (void) );
116 _PROTOTYPE( int unmount, (Dev_t dev) );
118 /* open.c */
119 _PROTOTYPE( int do_close, (void) );
120 _PROTOTYPE( int do_creat, (void) );
121 _PROTOTYPE( int do_lseek, (void) );
122 _PROTOTYPE( int do_mknod, (void) );
123 _PROTOTYPE( int do_mkdir, (void) );
124 _PROTOTYPE( int do_open, (void) );
125 _PROTOTYPE( int do_slink, (void) );
127 /* path.c */
128 _PROTOTYPE( struct inode *advance,(struct inode **dirp, char string[NAME_MAX]));
129 _PROTOTYPE( int search_dir, (struct inode *ldir_ptr,
130 char string [NAME_MAX], ino_t *numb, int flag) );
131 _PROTOTYPE( struct inode *eat_path, (char *path) );
132 _PROTOTYPE( struct inode *last_dir, (char *path, char string [NAME_MAX]));
133 _PROTOTYPE( struct inode *parse_path, (char *path, char string[NAME_MAX],
134 int action) );
137 /* protect.c */
138 _PROTOTYPE( int do_access, (void) );
139 _PROTOTYPE( int do_chmod, (void) );
140 _PROTOTYPE( int do_chown, (void) );
141 _PROTOTYPE( int do_umask, (void) );
142 _PROTOTYPE( int forbidden, (struct inode *rip, mode_t access_desired) );
143 _PROTOTYPE( int read_only, (struct inode *ip) );
145 /* read.c */
146 _PROTOTYPE( int do_read, (void) );
147 _PROTOTYPE( struct buf *rahead, (struct inode *rip, block_t baseblock,
148 off_t position, unsigned bytes_ahead) );
149 _PROTOTYPE( void read_ahead, (void) );
150 _PROTOTYPE( block_t read_map, (struct inode *rip, off_t pos) );
151 _PROTOTYPE( int read_write, (int rw_flag) );
152 _PROTOTYPE( zone_t rd_indir, (struct buf *bp, int index) );
154 /* stadir.c */
155 _PROTOTYPE( int do_chdir, (void) );
156 _PROTOTYPE( int do_fchdir, (void) );
157 _PROTOTYPE( int do_chroot, (void) );
158 _PROTOTYPE( int do_fstat, (void) );
159 _PROTOTYPE( int do_stat, (void) );
160 _PROTOTYPE( int do_fstatfs, (void) );
161 _PROTOTYPE( int do_rdlink, (void) );
162 _PROTOTYPE( int do_lstat, (void) );
164 /* super.c */
165 _PROTOTYPE( bit_t alloc_bit, (struct super_block *sp, int map, bit_t origin));
166 _PROTOTYPE( void free_bit, (struct super_block *sp, int map,
167 bit_t bit_returned) );
168 _PROTOTYPE( struct super_block *get_super, (Dev_t dev) );
169 _PROTOTYPE( int mounted, (struct inode *rip) );
170 _PROTOTYPE( int read_super, (struct super_block *sp) );
171 _PROTOTYPE( int get_block_size, (dev_t dev) );
173 /* time.c */
174 _PROTOTYPE( int do_stime, (void) );
175 _PROTOTYPE( int do_utime, (void) );
177 /* utility.c */
178 _PROTOTYPE( time_t clock_time, (void) );
179 _PROTOTYPE( unsigned conv2, (int norm, int w) );
180 _PROTOTYPE( long conv4, (int norm, long x) );
181 _PROTOTYPE( int fetch_name, (char *path, int len, int flag) );
182 _PROTOTYPE( int no_sys, (void) );
183 _PROTOTYPE( int isokendpt_f, (char *f, int l, int e, int *p, int ft));
184 _PROTOTYPE( void panic, (char *who, char *mess, int num) );
186 #define okendpt(e, p) isokendpt_f(__FILE__, __LINE__, (e), (p), 1)
187 #define isokendpt(e, p) isokendpt_f(__FILE__, __LINE__, (e), (p), 0)
189 /* write.c */
190 _PROTOTYPE( void clear_zone, (struct inode *rip, off_t pos, int flag) );
191 _PROTOTYPE( int do_write, (void) );
192 _PROTOTYPE( struct buf *new_block, (struct inode *rip, off_t position) );
193 _PROTOTYPE( void zero_block, (struct buf *bp) );
194 _PROTOTYPE( int write_map, (struct inode *, off_t, zone_t, int) );
196 /* select.c */
197 _PROTOTYPE( int do_select, (void) );
198 _PROTOTYPE( int select_callback, (struct filp *, int ops) );
199 _PROTOTYPE( void select_forget, (int fproc) );
200 _PROTOTYPE( void select_timeout_check, (timer_t *) );
201 _PROTOTYPE( void init_select, (void) );
202 _PROTOTYPE( void select_unsuspend_by_endpt, (int proc) );
203 _PROTOTYPE( int select_notified, (int major, int minor, int ops) );
205 /* timers.c */
206 _PROTOTYPE( void fs_set_timer, (timer_t *tp, int delta, tmr_func_t watchdog, int arg));
207 _PROTOTYPE( void fs_expire_timers, (clock_t now) );
208 _PROTOTYPE( void fs_cancel_timer, (timer_t *tp) );
209 _PROTOTYPE( void fs_init_timer, (timer_t *tp) );
211 /* cdprobe.c */
212 _PROTOTYPE( int cdprobe, (void) );