xref: /plan9-contrib/sys/include/ape/lib9.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #ifndef __LIB9_H
2 #define __LIB9_H
3 #if !defined(_RESEARCH_SOURCE) && !defined(_PLAN9_SOURCE)
4     This header file is an extension to ANSI/POSIX
5 #endif
6 #pragma lib "/$M/lib/ape/lib9.a"
7 
8 
9 #define	MORDER	0x0003	/* mask for bits defining order of mounting */
10 #define	MREPL	0x0000	/* mount replaces object */
11 #define	MBEFORE	0x0001	/* mount goes before others in union directory */
12 #define	MAFTER	0x0002	/* mount goes after others in union directory */
13 #define	MCREATE	0x0004	/* permit creation in mounted directory */
14 #define MRECOV	0x0008	/* perform recovery if mount channel is lost */
15 #define MCACHE	0x0010	/* cache some data */
16 #define	MMASK	0x0007	/* all bits on */
17 
18 #define	FORKPG		1
19 #define	FORKEG		2
20 #define	FORKFD		4
21 
22 #define	SG_RONLY	0040	/* read only */
23 #define	SG_CEXEC	0100	/* detach on exec */
24 
25 enum
26 {
27 	RFNAMEG		= (1<<0),
28 	RFENVG		= (1<<1),
29 	RFFDG		= (1<<2),
30 	RFNOTEG		= (1<<3),
31 	RFPROC		= (1<<4),
32 	RFMEM		= (1<<5),
33 	RFNOWAIT	= (1<<6),
34 	RFCNAMEG	= (1<<10),
35 	RFCENVG		= (1<<11),
36 	RFCFDG		= (1<<12),
37 	RFREND		= (1<<13)
38 };
39 
40 extern	int	errstr(char*);
41 extern	int	bind(char*, char*, int);
42 extern	int	mount(int, char*, int, char*, char*);
43 extern	int	unmount(char*, char*);
44 extern	int	rfork(int);
45 extern	int	segattach(int, char*, void*, unsigned long);
46 extern	int	segbrk(void*, void*);
47 extern	int	segdetach(void*);
48 extern	int	segflush(void*, unsigned long);
49 extern	int	segfree(void*, unsigned long);
50 extern	unsigned long	rendezvous(unsigned long, unsigned long);
51 extern	unsigned long	getfcr(void);
52 extern	unsigned long	getfsr(void);
53 extern	void		setfcr(unsigned long);
54 extern	void		setfsr(unsigned long);
55 
56 #endif
57