1 #define _LOCK_EXTENSION
2 #define _QLOCK_EXTENSION
10 #include <sys/types.h>
25 #define nelem(x) (sizeof(x)/sizeof((x)[0]))
37 /* system-modified data */
38 ushort type; /* server type */
39 uint dev; /* server subtype */
41 Qid qid; /* unique id from server */
42 ulong mode; /* permissions */
43 ulong atime; /* last read time */
44 ulong mtime; /* last write time */
45 vlong length; /* file length: see <u.h> */
46 char *name; /* last element of path */
47 char *uid; /* owner name */
48 char *gid; /* group name */
49 char *muid; /* last modifier name */
52 uint _convM2D(uchar*, uint, Dir*, char*);
53 uint _convD2M(Dir*, uchar*, uint);
55 int _dirwstat(char*, Dir*);
57 int _dirfwstat(int, Dir*);
58 long _dirread(int, Dir**);
59 long _dirreadall(int, Dir**);
63 #define convM2D _convM2D
64 #define convD2M _convD2M
65 #define dirstat _dirstat
66 #define dirwstat _dirwstat
67 #define dirfstat _dirfstat
68 #define dirfwstat _dirfwstat
69 #define dirread _dirread
70 #define dirreadall _dirreadall
71 #define nulldir _nulldir
72 #define sizeD2M _sizeD2M
77 int pid; /* of loved one */
78 unsigned long time[3]; /* of loved one & descendants */
82 extern int _AWAIT(char*, int);
83 extern int _ALARM(unsigned long);
84 extern int _BIND(const char*, const char*, int);
85 extern int _CHDIR(const char*);
86 extern int _CLOSE(int);
87 extern int _CREATE(char*, int, unsigned long);
88 extern int _DUP(int, int);
89 extern int _ERRSTR(char*, unsigned int);
90 extern int _EXEC(char*, char*[]);
91 extern void _EXITS(char *);
92 extern int _FD2PATH(int, char*, int);
93 extern int _FAUTH(int, char*);
94 extern int _FSESSION(int, char*, int);
95 extern int _FSTAT(int, unsigned char*, int);
96 extern int _FWSTAT(int, unsigned char*, int);
97 extern int _MOUNT(int, int, const char*, int, const char*);
98 extern int _NOTED(int);
99 extern int _NOTIFY(int(*)(void*, char*));
100 extern int _OPEN(const char*, int);
101 extern int _PIPE(int*);
102 extern long _PREAD(int, void*, long, long long);
103 extern long _PWRITE(int, void*, long, long long);
104 extern long _READ(int, void*, long);
105 extern int _REMOVE(const char*);
106 extern void* _RENDEZVOUS(void*, void*);
107 extern int _RFORK(int);
108 extern void* _SEGATTACH(int, char*, void*, unsigned long);
109 extern void* _SEGBRK(void*, void*);
110 extern int _SEGDETACH(void*);
111 extern int _SEGFLUSH(void*, unsigned long);
112 extern int _SEGFREE(void*, unsigned long);
113 extern long long _SEEK(int, long long, int);
114 extern int _SLEEP(long);
115 extern int _STAT(const char*, unsigned char*, int);
116 extern Waitmsg* _WAIT(void);
117 extern long _WRITE(int, const void*, long);
118 extern int _WSTAT(const char*, unsigned char*, int);
119 extern void* _MALLOCZ(int, int);
120 extern int _WERRSTR(char*, ...);
121 extern long _READN(int, void*, long);
122 extern int _IOUNIT(int);
123 extern vlong _NSEC(void);
128 #define OEXEC 3 /* execute, == read but check execute permission */
129 #define OTRUNC 16 /* or'ed in (except for exec), truncate file first */
130 #define OCEXEC 32 /* or'ed in, close on exec */
131 #define ORCLOSE 64 /* or'ed in, remove on close */
132 #define OEXCL 0x1000 /* or'ed in, exclusive use (create only) */
139 #define _exits(s) _exit(s && *(char*)s ? 1 : 0)
140 #define exits(s) exit(s && *(char*)s ? 1 : 0)
142 #define create(file, omode, perm) open(file, (omode) |O_CREAT | O_TRUNC, perm)
143 #define seek(fd, off, dir) lseek(fd, off, dir)
149 #define pwrite _PWRITE
150 #define mallocz _MALLOCZ
152 #define iounit _IOUNIT
154 #define getwd(buf,len) getcwd(buf,len)
155 #define postnote(who,pid,note) kill(pid,SIGTERM)
156 #define atnotify(func,in)
160 int errstr(char*, unsigned int);
161 extern void sysfatal(char*, ...);
163 extern void setmalloctag(void*, uintptr_t);
164 extern void setrealloctag(void*, uintptr_t);
165 extern uintptr_t getcallerpc(void*);
167 extern int dec16(uchar *, int, char *, int);
168 extern int enc16(char *, int, uchar *, int);
169 extern int dec32(uchar *, int, char *, int);
170 extern int enc32(char *, int, uchar *, int);
171 extern int dec64(uchar *, int, char *, int);
172 extern int enc64(char *, int, uchar *, int);
174 extern int dec64chr(int);
175 extern int enc64chr(int);
176 extern int dec32chr(int);
177 extern int enc32chr(int);
178 extern int dec16chr(int);
179 extern int enc16chr(int);
181 extern int tokenize(char*, char**, int);
182 extern int getfields(char*, char**, int, int, char*);
183 extern int gettokens(char*, char**, int, char*);
185 extern ulong truerand(void); /* uses /dev/random */
187 extern int encrypt(void*, void*, int len);
188 extern int decrypt(void*, void*, int len);
206 #define gmtime _gmtime