sys.h 2.2 KB

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