1 /* 2 * System dependent header files for research 3 */ 4 #include <u.h> 5 #include <libc.h> 6 #include <regexp.h> 7 #include <bio.h> 8 #include "../libString/String.h" 9 10 /* 11 * for the lock foutines in libsys.c 12 */ 13 typedef struct Lock Lock; 14 struct Lock { 15 int fd; 16 String *name; 17 }; 18 19 /* 20 * from config.c 21 */ 22 extern char *LOGROOT; /* root of log system */ 23 extern char *MAILROOT; /* root of mail system */ 24 extern char *UPASROOT; /* root of upas system */ 25 extern char *SMTPQROOT; /* root of smtpq directory */ 26 extern char *SYSALIAS; /* file system alias files are listed in */ 27 extern char *USERALIAS; /* file system alias files are listed in */ 28 extern int MBOXMODE; /* default mailbox protection mode */ 29 30 /* 31 * files in libsys.c 32 */ 33 extern char *sysname_read(void); 34 extern char *alt_sysname_read(void); 35 extern char *domainname_read(void); 36 extern char *getlog(void); 37 extern char *thedate(void); 38 extern Biobuf *sysopen(char*, char*, ulong); 39 extern int sysclose(Biobuf*); 40 extern int sysmkdir(char*, ulong); 41 extern int syschgrp(char*, char*); 42 extern Lock *lock(char *); 43 extern void unlock(Lock *); 44 extern int e_nonexistant(void); 45 extern int e_locked(void); 46 extern ulong sysfilelen(Biobuf*); 47 extern int sysremove(char*); 48 extern int sysrename(char*, char*); 49 extern int sysexist(char*); 50 extern int syskill(int); 51 extern int syscreate(char*, int); 52 extern long sysmtime(char*); 53 extern Lock *trylock(char *); 54 extern void exit(int); 55 extern void pipesig(int*); 56 extern void pipesigoff(void); 57 extern void newprocgroup(void); 58 extern void becomenone(void); 59 extern char* csquery(char*, char*, char*); 60 extern int holdon(void); 61 extern void holdoff(int); 62 63 extern int nsysfile; 64 extern int nofile; 65 66 /* 67 * maximum size for a file path 68 */ 69 #define MAXPATHLEN 128 70