xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/sys9.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #define ERRLEN 64
2 #define NAMELEN 28
3 typedef
4 struct Waitmsg
5 {
6 	char	pid[12];	/* of loved one */
7 	char	time[3*12];	/* of loved one & descendants */
8 	char	msg[ERRLEN];
9 } Waitmsg;
10 
11 #define	MORDER	0x0003	/* mask for bits defining order of mounting */
12 #define	MREPL	0x0000	/* mount replaces object */
13 #define	MBEFORE	0x0001	/* mount goes before others in union directory */
14 #define	MAFTER	0x0002	/* mount goes after others in union directory */
15 #define	MCREATE	0x0004	/* permit creation in mounted directory */
16 #define	MMASK	0x0007	/* all bits on */
17 
18 #define	OREAD	0	/* open for read */
19 #define	OWRITE	1	/* write */
20 #define	ORDWR	2	/* read and write */
21 #define	OEXEC	3	/* execute, == read but check execute permission */
22 #define	OTRUNC	16	/* or'ed in (except for exec), truncate file first */
23 #define	OCEXEC	32	/* or'ed in, close on exec */
24 #define	ORCLOSE	64	/* or'ed in, remove on close */
25 
26 #define	NCONT	0	/* continue after note */
27 #define	NDFLT	1	/* terminate after note */
28 
29 #define CHDIR		0x80000000	/* mode bit for directories */
30 #define CHAPPEND	0x40000000	/* mode bit for append only files */
31 #define CHEXCL		0x20000000	/* mode bit for exclusive use files */
32 #define CHREAD		0x4		/* mode bit for read permission */
33 #define CHWRITE		0x2		/* mode bit for write permission */
34 #define CHEXEC		0x1		/* mode bit for execute permission */
35 
36 #define RFNAMEG		(1<<0)		/* arguments to rfork */
37 #define	RFENVG		(1<<1)
38 #define	RFFDG		(1<<2)
39 #define	RFNOTEG		(1<<3)
40 #define	RFPROC		(1<<4)
41 #define	RFMEM		(1<<5)
42 #define	RFNOWAIT		(1<<6)
43 #define	RFCNAMEG	(1<<10)
44 #define	RFCENVG	(1<<11)
45 #define	RFCFDG	(1<<12)
46 #define	RFREND	(1<<13)
47 
48 extern	int	_ALARM(unsigned long);
49 extern	int	_BIND(char*, char*, int);
50 extern	int	_CHDIR(char*);
51 extern	int	_CLOSE(int);
52 extern	int	_CREATE(char*, int, unsigned long);
53 extern	int	_DUP(int, int);
54 extern	int	_ERRSTR(char*);
55 extern	int	_EXEC(char*, char*[]);
56 extern	void	_EXITS(char *);
57 extern	int	_FSESSION(int, char*);
58 extern	int	_FSTAT(int, char*);
59 extern	int	_FWSTAT(int, char*);
60 extern	int	_MOUNT(int, char*, int, char*);
61 extern	int	_NOTED(int);
62 extern	int	_NOTIFY(int(*)(void*, char*));
63 extern	int	_OPEN(char*, int);
64 extern	int	_PIPE(int*);
65 extern	long	_READ(int, void*, long);
66 extern	int	_REMOVE(char*);
67 extern	int	_RENDEZVOUS(unsigned long, unsigned long);
68 extern	int	_RFORK(int);
69 extern	int	_SEGATTACH(int, char*, void*, unsigned long);
70 extern	int	_SEGBRK(void*, void*);
71 extern	int	_SEGDETACH(void*);
72 extern	int	_SEGFLUSH(void*, unsigned long);
73 extern	int	_SEGFREE(void*, unsigned long);
74 extern	long	_SEEK(int, long, int);
75 extern	int	_SLEEP(long);
76 extern	int	_STAT(char*, char*);
77 extern	int	_WAIT(Waitmsg*);
78 extern	long	_WRITE(int, void*, long);
79 extern	int	_WSTAT(char*, char*);
80 
81 extern	int	__open(char *, int, ...);
82 extern	int	__access(char *, int);
83 extern	int	__chdir(char *);
84 extern	int	__creat(char *, int);
85 extern	int	__link(char *, int);
86 extern	int	__stat(char *, struct stat *);
87 extern	int	__unlink(char *);
88