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