1 /* 2 * System dependent header files for research 3 */ 4 5 #include <u.h> 6 #include <libc.h> 7 #include <regexp.h> 8 #include <bio.h> 9 #include "String.h" 10 11 /* 12 * for the lock routines in libsys.c 13 */ 14 typedef struct Mlock Mlock; 15 struct Mlock { 16 int fd; 17 int pid; 18 String *name; 19 }; 20 21 /* 22 * from config.c 23 */ 24 extern char *MAILROOT; /* root of mail system */ 25 extern char *UPASLOG; /* log directory */ 26 extern char *UPASLIB; /* upas library directory */ 27 extern char *UPASBIN; /* upas binary directory */ 28 extern char *UPASTMP; /* temporary directory */ 29 extern char *SHELL; /* path name of shell */ 30 extern char *POST; /* path name of post server addresses */ 31 extern int MBOXMODE; /* default mailbox protection mode */ 32 33 /* 34 * files in libsys.c 35 */ 36 extern char *sysname_read(void); 37 extern char *alt_sysname_read(void); 38 extern char *domainname_read(void); 39 extern char **sysnames_read(void); 40 extern char *getlog(void); 41 extern char *thedate(void); 42 extern Biobuf *sysopen(char*, char*, ulong); 43 extern int sysopentty(void); 44 extern int sysclose(Biobuf*); 45 extern int sysmkdir(char*, ulong); 46 extern int syschgrp(char*, char*); 47 extern Mlock *syslock(char *); 48 extern void sysunlock(Mlock *); 49 extern void syslockrefresh(Mlock *); 50 extern int e_nonexistent(void); 51 extern int e_locked(void); 52 extern long sysfilelen(Biobuf*); 53 extern int sysremove(char*); 54 extern int sysrename(char*, char*); 55 extern int sysexist(char*); 56 extern int sysisdir(char*); 57 extern int syskill(int); 58 extern int syskillpg(int); 59 extern int syscreate(char*, int, ulong); 60 extern Mlock *trylock(char *); 61 extern void exit(int); 62 extern void pipesig(int*); 63 extern void pipesigoff(void); 64 extern int holdon(void); 65 extern void holdoff(int); 66 extern int syscreatelocked(char*, int, int); 67 extern int sysopenlocked(char*, int); 68 extern int sysunlockfile(int); 69 extern int sysfiles(void); 70 extern int become(char**, char*); 71 extern int sysdetach(void); 72 extern int sysdirreadall(int, Dir**); 73 extern String *username(String*); 74 extern char* remoteaddr(int, char*); 75 extern int creatembox(char*, char*); 76 77 extern String *readlock(String*); 78 extern char *homedir(char*); 79 extern String *mboxname(char*, String*); 80 extern String *deadletter(String*); 81 82 /* 83 * maximum size for a file path 84 */ 85 #define MAXPATHLEN 128 86