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