2 * functions (possibly) linked in, complete, from libc.
8 extern void *memccpy(void*, void*, int, long);
9 extern void *memset(void*, int, long);
10 extern int memcmp(void*, void*, long);
11 extern void *memmove(void*, void*, long);
12 extern void *memchr(void*, int, long);
17 extern char *strcat(char*, char*);
18 extern char *strchr(char*, char);
19 extern char *strrchr(char*, char);
20 extern int strcmp(char*, char*);
21 extern char *strcpy(char*, char*);
22 extern char *strncat(char*, char*, long);
23 extern char *strncpy(char*, char*, long);
24 extern int strncmp(char*, char*, long);
25 extern long strlen(char*);
26 extern char* strstr(char*, char*);
27 extern int atoi(char*);
31 UTFmax = 3, /* maximum bytes per rune */
32 Runesync = 0x80, /* cannot represent part of a UTF sequence */
33 Runeself = 0x80, /* rune and UTF sequences are the same (<) */
34 Runeerror = 0x80, /* decoding error in UTF */
40 extern int runetochar(char*, Rune*);
41 extern int chartorune(Rune*, char*);
42 extern char* utfrune(char*, long);
43 extern int utflen(char*);
44 extern int runelen(long);
51 typedef struct Cconv Fconv;
52 extern char* donprint(char*, char*, char*, void*);
53 extern int sprint(char*, char*, ...);
54 extern char* seprint(char*, char*, char*, ...);
55 extern int snprint(char*, int, char*, ...);
56 extern int print(char*, ...);
61 extern char* cleanname(char*);
62 extern uintptr getcallerpc(void*);
63 extern long strtol(char*, char**, int);
64 extern ulong strtoul(char*, char**, int);
65 extern vlong strtoll(char*, char**, int);
66 extern uvlong strtoull(char*, char**, int);
70 extern int getfields(char*, char**, int, int, char*);
73 * Syscall data structures
75 #define MORDER 0x0003 /* mask for bits defining order of mounting */
76 #define MREPL 0x0000 /* mount replaces object */
77 #define MBEFORE 0x0001 /* mount goes before others in union directory */
78 #define MAFTER 0x0002 /* mount goes after others in union directory */
79 #define MCREATE 0x0004 /* permit creation in mounted directory */
80 #define MCACHE 0x0010 /* cache some data */
81 #define MMASK 0x001F /* all bits on */
83 #define OREAD 0 /* open for read */
84 #define OWRITE 1 /* write */
85 #define ORDWR 2 /* read and write */
86 #define OEXEC 3 /* execute, == read but check execute permission */
87 #define OTRUNC 16 /* or'ed in (except for exec), truncate file first */
88 #define OCEXEC 32 /* or'ed in, close on exec */
89 #define ORCLOSE 64 /* or'ed in, remove on close */
91 #define NCONT 0 /* continue after note */
92 #define NDFLT 1 /* terminate after note */
93 #define NSAVE 2 /* clear note but hold state */
94 #define NRSTR 3 /* restore saved state */
96 typedef struct Qid Qid;
97 typedef struct Dir Dir;
98 typedef struct Waitmsg Waitmsg;
126 char pid[12]; /* of loved one */
127 char time[3*12]; /* of loved one and descendants */
139 extern int _tas(int*);
141 extern void lock(Lock*);
142 extern void unlock(Lock*);
143 extern int canlock(Lock*);