xref: /minix/minix/servers/vfs/glo.h (revision 0a6a1f1d)
1 #ifndef __VFS_GLO_H__
2 #define __VFS_GLO_H__
3 
4 /* EXTERN should be extern except for the table file */
5 #ifdef _TABLE
6 #undef EXTERN
7 #define EXTERN
8 #endif
9 
10 #include <minix/param.h>
11 
12 /* File System global variables */
13 EXTERN struct fproc *fp;	/* pointer to caller's fproc struct */
14 EXTERN int susp_count;		/* number of procs suspended on pipe */
15 EXTERN int nr_locks;		/* number of locks currently in place */
16 EXTERN int reviving;		/* number of pipe processes to be revived */
17 EXTERN int sending;
18 EXTERN int verbose;
19 
20 EXTERN dev_t ROOT_DEV;		/* device number of the root device */
21 EXTERN int ROOT_FS_E;           /* kernel endpoint of the root FS proc */
22 EXTERN u32_t system_hz;		/* system clock frequency. */
23 
24 /* The parameters of the call are kept here. */
25 EXTERN message m_in;		/* the input message itself */
26 # define who_p		((int) (fp - fproc))
27 # define fproc_addr(e)	(&fproc[_ENDPOINT_P(e)])
28 # define who_e		(self != NULL ? fp->fp_endpoint : m_in.m_source)
29 # define call_nr	(m_in.m_type)
30 # define job_m_in	(self->w_m_in)
31 # define job_m_out	(self->w_m_out)
32 # define job_call_nr	(job_m_in.m_type)
33 # define super_user	(fp->fp_effuid == SU_UID ? 1 : 0)
34 EXTERN struct worker_thread *self;
35 EXTERN int deadlock_resolving;
36 EXTERN mutex_t bsf_lock;/* Global lock for access to block special files */
37 EXTERN struct worker_thread workers[NR_WTHREADS];
38 EXTERN char mount_label[LABEL_MAX];	/* label of file system to mount */
39 
40 /* The following variables are used for returning results to the caller. */
41 EXTERN int err_code;		/* temporary storage for error number */
42 
43 /* Data initialized elsewhere. */
44 extern int (* const call_vec[])(void);
45 
46 #endif
47