Blob


1 /*
2 * System dependent header files for research
3 */
5 #include <u.h>
6 #include <libc.h>
7 #include <regexp.h>
8 #include <bio.h>
9 #include <libString.h>
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 };
21 /*
22 * from config.c - call upasconfig() before using
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 extern void upasconfig(void);
34 /* forgive me */
35 #define MAILROOT (upasconfig(), _MAILROOT)
36 #define UPASLOG (upasconfig(), _UPASLOG)
37 #define UPASLIB (upasconfig(), _UPASLIB)
38 #define UPASBIN (upasconfig(), _UPASBIN)
39 #define UPASTMP (upasconfig(), _UPASTMP)
40 #define SHELL (upasconfig(), _SHELL)
41 #define POST (upasconfig(), _POST)
43 /*
44 * files in libsys.c
45 */
46 extern char *sysname_read(void);
47 extern char *alt_sysname_read(void);
48 extern char *domainname_read(void);
49 extern char **sysnames_read(void);
50 extern char *getlog(void);
51 extern char *thedate(void);
52 extern Biobuf *sysopen(char*, char*, ulong);
53 extern int sysopentty(void);
54 extern int sysclose(Biobuf*);
55 extern int sysmkdir(char*, ulong);
56 extern int syschgrp(char*, char*);
57 extern Mlock *syslock(char *);
58 extern void sysunlock(Mlock *);
59 extern void syslockrefresh(Mlock *);
60 extern int e_nonexistent(void);
61 extern int e_locked(void);
62 extern long sysfilelen(Biobuf*);
63 extern int sysremove(char*);
64 extern int sysrename(char*, char*);
65 extern int sysexist(char*);
66 extern int sysisdir(char*);
67 extern int syskill(int);
68 extern int syskillpg(int);
69 extern int syscreate(char*, int, ulong);
70 extern Mlock *trylock(char *);
71 extern void pipesig(int*);
72 extern void pipesigoff(void);
73 extern int holdon(void);
74 extern void holdoff(int);
75 extern int syscreatelocked(char*, int, int);
76 extern int sysopenlocked(char*, int);
77 extern int sysunlockfile(int);
78 extern int sysfiles(void);
79 extern int become(char**, char*);
80 extern int sysdetach(void);
81 extern int sysdirreadall(int, Dir**);
82 extern String *username(String*);
83 extern char* remoteaddr(int, char*);
84 extern int creatembox(char*, char*);
86 extern String *readlock(String*);
87 extern char *homedir(char*);
88 extern String *mboxname(char*, String*);
89 extern String *deadletter(String*);
91 /*
92 * maximum size for a file path
93 */
94 #define MAXPATHLEN 128