diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 16:47:56 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 16:47:56 +0300 |
commit | c558a99e0be506a9abdf677f0ca4490644e05fc1 (patch) | |
tree | 17aef678ad05a32ef96ce8385703cb3fe089a5c7 /sys/include/ape/lib9.h | |
parent | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (diff) |
Import sources from 2011-03-30 iso image - sys/include
Diffstat (limited to 'sys/include/ape/lib9.h')
-rwxr-xr-x | sys/include/ape/lib9.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/sys/include/ape/lib9.h b/sys/include/ape/lib9.h new file mode 100755 index 000000000..84b7c3253 --- /dev/null +++ b/sys/include/ape/lib9.h @@ -0,0 +1,78 @@ +#ifndef __LIB9_H +#define __LIB9_H +#if !defined(_RESEARCH_SOURCE) && !defined(_PLAN9_SOURCE) + This header file is an extension to ANSI/POSIX +#endif +#pragma lib "/$M/lib/ape/lib9.a" + +#include <u.h> /* ick; need Rune defined below */ + +#define MORDER 0x0003 /* mask for bits defining order of mounting */ +#define MREPL 0x0000 /* mount replaces object */ +#define MBEFORE 0x0001 /* mount goes before others in union directory */ +#define MAFTER 0x0002 /* mount goes after others in union directory */ +#define MCREATE 0x0004 /* permit creation in mounted directory */ +#define MRECOV 0x0008 /* perform recovery if mount channel is lost */ +#define MCACHE 0x0010 /* cache some data */ +#define MMASK 0x0007 /* all bits on */ + +#define FORKPG 1 +#define FORKEG 2 +#define FORKFD 4 + +#define SG_RONLY 0040 /* read only */ +#define SG_CEXEC 0100 /* detach on exec */ + +enum +{ + RFNAMEG = (1<<0), + RFENVG = (1<<1), + RFFDG = (1<<2), + RFNOTEG = (1<<3), + RFPROC = (1<<4), + RFMEM = (1<<5), + RFNOWAIT = (1<<6), + RFCNAMEG = (1<<10), + RFCENVG = (1<<11), + RFCFDG = (1<<12), + RFREND = (1<<13) +}; + +extern char *argv0; +#define ARGBEGIN for((argv0||(argv0=*argv)),argv++,argc--;\ + argv[0] && argv[0][0]=='-' && argv[0][1];\ + argc--, argv++) {\ + char *_args, *_argt;\ + Rune _argc;\ + _args = &argv[0][1];\ + if(_args[0]=='-' && _args[1]==0){\ + argc--; argv++; break;\ + }\ + _argc = 0;\ + while(*_args && (_args += chartorune(&_argc, _args)))\ + switch(_argc) +#define ARGEND SET(_argt);USED(_argt,_argc,_args);}USED(argv, argc); +#define ARGF() (_argt=_args, _args="",\ + (*_argt? _argt: argv[1]? (argc--, *++argv): 0)) +#define EARGF(x) (_argt=_args, _args="",\ + (*_argt? _argt: argv[1]? (argc--, *++argv): ((x), abort(), (char*)0))) + +#define ARGC() _argc + +extern int errstr(char*, unsigned int); +extern int bind(char*, char*, int); +extern int mount(int, int, char*, int, char*); +extern int unmount(char*, char*); +extern int rfork(int); +extern int segattach(int, char*, void*, unsigned long); +extern int segbrk(void*, void*); +extern int segdetach(void*); +extern int segflush(void*, unsigned long); +extern int segfree(void*, unsigned long); +extern unsigned long rendezvous(unsigned long, unsigned long); +extern unsigned long getfcr(void); +extern unsigned long getfsr(void); +extern void setfcr(unsigned long); +extern void setfsr(unsigned long); + +#endif |