defs.h

Upload User: acmefrp
Upload Date: 2010-03-06
Package Size: 23768k
Code Size: 2k
Category: OS Develop
Development Platform: C/C++
  1. /* @(#)defs 1.7 86/03/30 SMI; from S5R2 1.2 03/28/83 */
  2. #include <stdio.h>
  3. #include <sys/param.h>
  4. #include <sys/dir.h>
  5. /*
  6.  * Flags
  7.  */
  8. typedef struct chain *CHAIN;
  9. typedef struct nameblock *NAMEBLOCK;
  10. typedef struct shblock *SHBLOCK;
  11. typedef struct stateblock *STATEBLOCK;
  12. typedef struct varblock *VARBLOCK;
  13. #define IS_OFF(a) (!(IS_ON(a)))
  14. #define IS_ON(a) (Mflags&(a))
  15. #define TURNOFF(a) (Mflags &= (~(a)))
  16. #define TURNON(a) (Mflags |= (a))
  17. #define DBUG 0000001 /* debug flag */
  18. #define ENVOVER 0000002 /* environ overides file defines */
  19. #define EXPORT 0000004 /* put current variable in environ */
  20. #define PRTR 0000010 /* set `-p' flag */
  21. #define SIL 0000020 /* set `-s' flag */
  22. #define NOEX 0000040 /* set `-n' flag */
  23. #define INTRULE 0000100 /* use internal rules */
  24. #define QUEST 0001000 /* set `-q' flag */
  25. #define INARGS 0002000 /* currently reading cmd args */
  26. #define IGNERR 0004000 /* set `-i' flag */
  27. #define KEEPGO 0010000 /* set `-k' flag */
  28. #define MH_DEP 0040000 /* use old question about whether cmd exists */
  29. extern int Mflags;
  30. #define YES 1
  31. #define NO 0
  32. #define any(a,b) strchr( (a), (b) )
  33. #define equal(a,b) (a[0] == b[0] ? !strcmp((a),(b)) : NO )
  34. #define max(a,b) ((a)>(b)?(a):(b))
  35. #define ALLOC(x) (struct x *) intalloc(sizeof(struct x))
  36. struct stateblock {
  37. STATEBLOCK next,
  38. prev;
  39. char *name;
  40. NAMEBLOCK othercommands;
  41. SHBLOCK commands;
  42. };
  43. struct shblock
  44. {
  45. SHBLOCK nextsh;
  46. short flags;
  47. char *shbp; /* shell command */
  48. };
  49. #define SH_NOECHO 1 /* do not echo this command */
  50. #define SH_NOSTOP 2 /* do not stop if command prduces error */
  51. struct varblock
  52. {
  53. VARBLOCK nextvar;
  54. char *varname,
  55. *varval;
  56. int noreset:1,
  57. used:1,
  58. envflg:1,
  59. v_aflg:1;
  60. };
  61. struct chain
  62. {
  63. CHAIN nextchain;
  64. char *datap;
  65. };
  66. struct nameblock
  67. {
  68. NAMEBLOCK nextname; /* pointer to next nameblock */
  69. NAMEBLOCK backname; /* pointer to predecessor */
  70. char *namep; /* ASCII name string */
  71. short  namelen; /* name length to speed lookup */
  72. };
  73. int *intalloc();
  74. NAMEBLOCK
  75. srchname(),
  76. makename();
  77. VARBLOCK
  78. getfirstvar(),
  79. srchvar(),
  80. varptr();
  81. char *calloc(),
  82. *colontrans(),
  83. *concat(),
  84. *copstr(),
  85. *copys(),
  86. *dftrans(),
  87. *findfl(),
  88. *mkqlist(),
  89. *straightrans(),
  90. *strchr(),
  91. *strrchr();
  92. STATEBLOCK findstate();
  93. extern int (*sigivalue)();
  94. extern int (*sigqvalue)();
  95. void addstars(),
  96. strshift(),
  97. setvar();
  98. extern int wait_pid;
  99. extern int ndocoms;
  100. extern int okdel;
  101. extern NAMEBLOCK firstname;
  102. extern STATEBLOCK firststate;
  103. #define OUTMAX 10240
  104. #define Smergeflags "SMERGEFLAGS"