3 #if !defined(_RESEARCH_SOURCE) && !defined(_PLAN9_SOURCE)
4 This header file is an extension to ANSI/POSIX
6 #pragma lib "/$M/lib/ape/lib9.a"
8 #include <u.h> /* ick; need Rune defined below */
10 #define MORDER 0x0003 /* mask for bits defining order of mounting */
11 #define MREPL 0x0000 /* mount replaces object */
12 #define MBEFORE 0x0001 /* mount goes before others in union directory */
13 #define MAFTER 0x0002 /* mount goes after others in union directory */
14 #define MCREATE 0x0004 /* permit creation in mounted directory */
15 #define MRECOV 0x0008 /* perform recovery if mount channel is lost */
16 #define MCACHE 0x0010 /* cache some data */
17 #define MMASK 0x0007 /* all bits on */
23 #define SG_RONLY 0040 /* read only */
24 #define SG_CEXEC 0100 /* detach on exec */
42 #define ARGBEGIN for((argv0||(argv0=*argv)),argv++,argc--;\
43 argv[0] && argv[0][0]=='-' && argv[0][1];\
48 if(_args[0]=='-' && _args[1]==0){\
49 argc--; argv++; break;\
52 while(*_args && (_args += chartorune(&_argc, _args)))\
54 #define ARGEND SET(_argt);USED(_argt,_argc,_args);}USED(argv, argc);
55 #define ARGF() (_argt=_args, _args="",\
56 (*_argt? _argt: argv[1]? (argc--, *++argv): 0))
57 #define EARGF(x) (_argt=_args, _args="",\
58 (*_argt? _argt: argv[1]? (argc--, *++argv): ((x), abort(), (char*)0)))
62 extern int errstr(char*, unsigned int);
63 extern int bind(char*, char*, int);
64 extern int mount(int, int, char*, int, char*);
65 extern int unmount(char*, char*);
66 extern int rfork(int);
67 extern void* segattach(int, char*, void*, unsigned long);
68 extern void* segbrk(void*, void*);
69 extern int segdetach(void*);
70 extern int segflush(void*, unsigned long);
71 extern int segfree(void*, unsigned long);
72 extern void* rendezvous(void*, void*);
73 extern unsigned long getfcr(void);
74 extern unsigned long getfsr(void);
75 extern void setfcr(unsigned long);
76 extern void setfsr(unsigned long);
77 extern int fd2path(int, char*, int);