xref: /plan9/sys/src/cmd/upas/common/sys.h (revision dc5a79c1208f0704eeb474acc990728f8b4854f5)
13e12c5d1SDavid du Colombier /*
23e12c5d1SDavid du Colombier  * System dependent header files for research
33e12c5d1SDavid du Colombier  */
480ee5cbfSDavid du Colombier 
53e12c5d1SDavid du Colombier #include <u.h>
63e12c5d1SDavid du Colombier #include <libc.h>
73e12c5d1SDavid du Colombier #include <regexp.h>
83e12c5d1SDavid du Colombier #include <bio.h>
980ee5cbfSDavid du Colombier #include "String.h"
103e12c5d1SDavid du Colombier 
113e12c5d1SDavid du Colombier /*
127dd7cddfSDavid du Colombier  *  for the lock routines in libsys.c
133e12c5d1SDavid du Colombier  */
147dd7cddfSDavid du Colombier typedef struct Mlock	Mlock;
157dd7cddfSDavid du Colombier struct Mlock {
163e12c5d1SDavid du Colombier 	int fd;
177dd7cddfSDavid du Colombier 	int pid;
183e12c5d1SDavid du Colombier 	String *name;
193e12c5d1SDavid du Colombier };
203e12c5d1SDavid du Colombier 
213e12c5d1SDavid du Colombier /*
223e12c5d1SDavid du Colombier  *  from config.c
233e12c5d1SDavid du Colombier  */
243e12c5d1SDavid du Colombier extern char *MAILROOT;	/* root of mail system */
257dd7cddfSDavid du Colombier extern char *UPASLOG;	/* log directory */
267dd7cddfSDavid du Colombier extern char *UPASLIB;	/* upas library directory */
277dd7cddfSDavid du Colombier extern char *UPASBIN;	/* upas binary directory */
287dd7cddfSDavid du Colombier extern char *UPASTMP;	/* temporary directory */
297dd7cddfSDavid du Colombier extern char *SHELL;	/* path name of shell */
307dd7cddfSDavid du Colombier extern char *POST;	/* path name of post server addresses */
313e12c5d1SDavid du Colombier extern int MBOXMODE;	/* default mailbox protection mode */
323e12c5d1SDavid du Colombier 
333e12c5d1SDavid du Colombier /*
343e12c5d1SDavid du Colombier  *  files in libsys.c
353e12c5d1SDavid du Colombier  */
363e12c5d1SDavid du Colombier extern char	*sysname_read(void);
37219b2ee8SDavid du Colombier extern char	*alt_sysname_read(void);
38219b2ee8SDavid du Colombier extern char	*domainname_read(void);
397dd7cddfSDavid du Colombier extern char	**sysnames_read(void);
403e12c5d1SDavid du Colombier extern char	*getlog(void);
413e12c5d1SDavid du Colombier extern char	*thedate(void);
423e12c5d1SDavid du Colombier extern Biobuf	*sysopen(char*, char*, ulong);
437dd7cddfSDavid du Colombier extern int	sysopentty(void);
443e12c5d1SDavid du Colombier extern int	sysclose(Biobuf*);
453e12c5d1SDavid du Colombier extern int	sysmkdir(char*, ulong);
463e12c5d1SDavid du Colombier extern int	syschgrp(char*, char*);
477dd7cddfSDavid du Colombier extern Mlock	*syslock(char *);
487dd7cddfSDavid du Colombier extern void	sysunlock(Mlock *);
497dd7cddfSDavid du Colombier extern void	syslockrefresh(Mlock *);
507dd7cddfSDavid du Colombier extern int	e_nonexistent(void);
513e12c5d1SDavid du Colombier extern int	e_locked(void);
527dd7cddfSDavid du Colombier extern long	sysfilelen(Biobuf*);
533e12c5d1SDavid du Colombier extern int	sysremove(char*);
543e12c5d1SDavid du Colombier extern int	sysrename(char*, char*);
553e12c5d1SDavid du Colombier extern int	sysexist(char*);
56*dc5a79c1SDavid du Colombier extern int	sysisdir(char*);
573e12c5d1SDavid du Colombier extern int	syskill(int);
587dd7cddfSDavid du Colombier extern int	syskillpg(int);
597dd7cddfSDavid du Colombier extern int	syscreate(char*, int, ulong);
607dd7cddfSDavid du Colombier extern Mlock	*trylock(char *);
613e12c5d1SDavid du Colombier extern void	exit(int);
623e12c5d1SDavid du Colombier extern void	pipesig(int*);
633e12c5d1SDavid du Colombier extern void	pipesigoff(void);
64219b2ee8SDavid du Colombier extern int	holdon(void);
65219b2ee8SDavid du Colombier extern void	holdoff(int);
667dd7cddfSDavid du Colombier extern int	syscreatelocked(char*, int, int);
677dd7cddfSDavid du Colombier extern int	sysopenlocked(char*, int);
687dd7cddfSDavid du Colombier extern int	sysunlockfile(int);
697dd7cddfSDavid du Colombier extern int	sysfiles(void);
707dd7cddfSDavid du Colombier extern int 	become(char**, char*);
717dd7cddfSDavid du Colombier extern int	sysdetach(void);
729a747e4fSDavid du Colombier extern int	sysdirreadall(int, Dir**);
737dd7cddfSDavid du Colombier extern String	*username(String*);
747dd7cddfSDavid du Colombier extern char*	remoteaddr(int, char*);
759a747e4fSDavid du Colombier extern int	creatembox(char*, char*);
763e12c5d1SDavid du Colombier 
777dd7cddfSDavid du Colombier extern String	*readlock(String*);
787dd7cddfSDavid du Colombier extern char	*homedir(char*);
797dd7cddfSDavid du Colombier extern String	*mboxname(char*, String*);
807dd7cddfSDavid du Colombier extern String	*deadletter(String*);
813e12c5d1SDavid du Colombier 
823e12c5d1SDavid du Colombier /*
833e12c5d1SDavid du Colombier  *  maximum size for a file path
843e12c5d1SDavid du Colombier  */
853e12c5d1SDavid du Colombier #define MAXPATHLEN 128
86