1 #define _LOCK_EXTENSION
2 #define _QLOCK_EXTENSION
19 #define nelem(x) (sizeof(x)/sizeof((x)[0]))
31 /* system-modified data */
32 ushort type; /* server type */
33 uint dev; /* server subtype */
35 Qid qid; /* unique id from server */
36 ulong mode; /* permissions */
37 ulong atime; /* last read time */
38 ulong mtime; /* last write time */
39 vlong length; /* file length: see <u.h> */
40 char *name; /* last element of path */
41 char *uid; /* owner name */
42 char *gid; /* group name */
43 char *muid; /* last modifier name */
46 uint _convM2D(uchar*, uint, Dir*, char*);
47 uint _convD2M(Dir*, uchar*, uint);
49 int _dirwstat(char*, Dir*);
51 int _dirfwstat(int, Dir*);
52 long _dirread(int, Dir**);
53 long _dirreadall(int, Dir**);
60 int pid; /* of loved one */
61 unsigned long time[3]; /* of loved one & descendants */
66 extern int _AWAIT(char*, int);
67 extern int _ALARM(unsigned long);
68 extern int _BIND(const char*, const char*, int);
69 extern int _CHDIR(const char*);
70 extern int _CLOSE(int);
71 extern int _CREATE(char*, int, unsigned long);
72 extern int _DUP(int, int);
73 extern int _ERRSTR(char*, unsigned int);
74 extern int _EXEC(char*, char*[]);
75 extern void _EXITS(char *);
76 extern int _FD2PATH(int, char*, int);
77 extern int _FAUTH(int, char*);
78 extern int _FSESSION(int, char*, int);
79 extern int _FSTAT(int, unsigned char*, int);
80 extern int _FWSTAT(int, unsigned char*, int);
81 extern int _MOUNT(int, int, const char*, int, const char*);
82 extern int _NOTED(int);
83 extern int _NOTIFY(int(*)(void*, char*));
84 extern int _OPEN(const char*, int);
85 extern int _PIPE(int*);
86 extern long _PREAD(int, void*, long, long long);
87 extern long _PWRITE(int, void*, long, long long);
88 extern long _READ(int, void*, long);
89 extern int _REMOVE(const char*);
90 extern void* _RENDEZVOUS(void*, void*);
91 extern int _RFORK(int);
92 extern void* _SEGATTACH(int, char*, void*, unsigned long);
93 extern void* _SEGBRK(void*, void*);
94 extern int _SEGDETACH(void*);
95 extern int _SEGFLUSH(void*, unsigned long);
96 extern int _SEGFREE(void*, unsigned long);
97 extern long long _SEEK(int, long long, int);
98 extern int _SLEEP(long);
99 extern int _STAT(const char*, unsigned char*, int);
100 extern Waitmsg* _WAIT(void);
101 extern long _WRITE(int, const void*, long);
102 extern int _WSTAT(const char*, unsigned char*, int);
103 extern void* _MALLOCZ(int, int);
104 extern int _WERRSTR(char*, ...);
105 extern long _READN(int, void*, long);
106 extern int _IOUNIT(int);
107 extern vlong _NSEC(void);
109 #define dirstat _dirstat
110 #define dirfstat _dirfstat
122 #define _exits(s) _exit(s && *(char*)s ? 1 : 0)
123 #define exits(s) exit(s && *(char*)s ? 1 : 0)
125 #define create(file, omode, perm) open(file, (omode) |O_CREAT | O_TRUNC, perm)
126 #define seek(fd, off, dir) lseek(fd, off, dir)
130 #define pwrite _PWRITE
131 #define mallocz _MALLOCZ
133 #define iounit _IOUNIT
135 #define postnote(who,pid,note) kill(pid,SIGTERM)
136 #define atnotify(func,in)
140 extern void setmalloctag(void*, uintptr_t);
141 extern void setrealloctag(void*, uintptr_t);
142 extern uintptr_t getcallerpc(void*);
144 extern int dec16(uchar *, int, char *, int);
145 extern int enc16(char *, int, uchar *, int);
146 extern int dec32(uchar *, int, char *, int);
147 extern int enc32(char *, int, uchar *, int);
148 extern int dec64(uchar *, int, char *, int);
149 extern int enc64(char *, int, uchar *, int);
151 extern int tokenize(char*, char**, int);
152 extern void sysfatal(char*, ...);
153 extern ulong truerand(void); /* uses /dev/random */