summaryrefslogtreecommitdiff
path: root/sys/src/ape/lib/ap/plan9/sys9.h
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/ape/lib/ap/plan9/sys9.h
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/ape/lib/ap/plan9/sys9.h')
-rwxr-xr-xsys/src/ape/lib/ap/plan9/sys9.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/sys/src/ape/lib/ap/plan9/sys9.h b/sys/src/ape/lib/ap/plan9/sys9.h
new file mode 100755
index 000000000..b289273cb
--- /dev/null
+++ b/sys/src/ape/lib/ap/plan9/sys9.h
@@ -0,0 +1,121 @@
+typedef
+struct Waitmsg
+{
+ int pid; /* of loved one */
+ unsigned long time[3]; /* of loved one & descendants */
+ char *msg;
+} Waitmsg;
+
+#define STATMAX 65535U /* max length of machine-independent stat structure */
+#define DIRMAX (sizeof(Dir)+STATMAX) /* max length of Dir structure */
+#define ERRMAX 128 /* max length of error string */
+
+#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 MCACHE 0x0010 /* cache some data */
+#define MMASK 0x0007 /* all bits on */
+
+#define OREAD 0 /* open for read */
+#define OWRITE 1 /* write */
+#define ORDWR 2 /* read and write */
+#define OEXEC 3 /* execute, == read but check execute permission */
+#define OTRUNC 16 /* or'ed in (except for exec), truncate file first */
+#define OCEXEC 32 /* or'ed in, close on exec */
+#define ORCLOSE 64 /* or'ed in, remove on close */
+#define OEXCL 0x1000 /* or'ed in, exclusive use (create only) */
+
+#define AEXIST 0 /* accessible: exists */
+#define AEXEC 1 /* execute access */
+#define AWRITE 2 /* write access */
+#define AREAD 4 /* read access */
+
+/* Segattch */
+#define SG_RONLY 0040 /* read only */
+#define SG_CEXEC 0100 /* detach on exec */
+
+#define NCONT 0 /* continue after note */
+#define NDFLT 1 /* terminate after note */
+#define NSAVE 2 /* clear note but hold state */
+#define NRSTR 3 /* restore saved state */
+
+/* bits in Qid.type */
+#define QTDIR 0x80 /* type bit for directories */
+#define QTAPPEND 0x40 /* type bit for append only files */
+#define QTEXCL 0x20 /* type bit for exclusive use files */
+#define QTMOUNT 0x10 /* type bit for mounted channel */
+#define QTFILE 0x00 /* plain file */
+
+/* bits in Dir.mode */
+#define DMDIR 0x80000000 /* mode bit for directories */
+#define DMAPPEND 0x40000000 /* mode bit for append only files */
+#define DMEXCL 0x20000000 /* mode bit for exclusive use files */
+#define DMMOUNT 0x10000000 /* mode bit for mounted channel */
+#define DMREAD 0x4 /* mode bit for read permission */
+#define DMWRITE 0x2 /* mode bit for write permission */
+#define DMEXEC 0x1 /* mode bit for execute permission */
+
+/* rfork */
+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),
+ RFNOMNT = (1<<14)
+};
+
+extern int _AWAIT(char*, int);
+extern int _ALARM(unsigned long);
+extern int _BIND(const char*, const char*, int);
+extern int _CHDIR(const char*);
+extern int _CLOSE(int);
+extern int _CREATE(char*, int, unsigned long);
+extern int _DUP(int, int);
+extern int _ERRSTR(char*, unsigned int);
+extern int _EXEC(char*, char*[]);
+extern void _EXITS(char *);
+extern int _FD2PATH(int, char*, int);
+extern int _FAUTH(int, char*);
+extern int _FSESSION(int, char*, int);
+extern int _FSTAT(int, unsigned char*, int);
+extern int _FWSTAT(int, unsigned char*, int);
+extern int _MOUNT(int, int, const char*, int, const char*);
+extern int _NOTED(int);
+extern int _NOTIFY(int(*)(void*, char*));
+extern int _OPEN(const char*, int);
+extern int _PIPE(int*);
+extern long _PREAD(int, void*, long, long long);
+extern long _PWRITE(int, void*, long, long long);
+extern long _READ(int, void*, long);
+extern int _REMOVE(const char*);
+extern int _RENDEZVOUS(unsigned long, unsigned long);
+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 long long _SEEK(int, long long, int);
+extern int _SLEEP(long);
+extern int _STAT(const char*, unsigned char*, int);
+extern Waitmsg* _WAIT(void);
+extern long _WRITE(int, const void*, long);
+extern int _WSTAT(const char*, unsigned char*, int);
+
+extern int __open(char *, int, ...);
+extern int __access(char *, int);
+extern int __chdir(char *);
+extern int __creat(char *, int);
+extern int __link(char *, int);
+extern int __stat(char *, struct stat *);
+extern int __unlink(char *);