xref: /plan9/sys/src/cmd/upas/common/sys.h (revision dc5a79c1208f0704eeb474acc990728f8b4854f5)
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