home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / editor / j414src.arc / SYSDEP.H < prev    next >
C/C++ Source or Header  |  1989-11-02  |  5KB  |  213 lines

  1. /***************************************************************************
  2.  * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE *
  3.  * is provided to you without charge, and with no warranty.  You may give  *
  4.  * away copies of JOVE, including sources, provided that this notice is    *
  5.  * included in all the files.                                              *
  6.  ***************************************************************************/
  7.  
  8. #ifdef THINK_C
  9. # define MAC 1
  10. # define defined(x) (x)    /* take this out and you're in trouble... */
  11. typedef int size_t;
  12. #endif
  13.  
  14. #if defined(MAC) || defined(MSDOS)
  15.     extern int    errno;
  16. #endif    /* MAC */
  17.  
  18. #if !(defined(MSDOS) || defined(MAC) || defined(__STDC__))
  19. # define void int
  20. #endif
  21.  
  22. #ifndef    __STDC__
  23. #define    const
  24. #endif
  25.  
  26. /* The operating system (MSDOS or MAC) must be defined by this point.
  27.    IBMPC is defined in the Makefile. All MAC defines should be
  28.    numerical (i.e. #define MAC 1) so that defined() will work. */
  29.  
  30. #if !(defined(MSDOS) || defined(MAC))
  31. # define UNIX
  32. #endif
  33.  
  34. #ifdef UNIX
  35. # if !sun
  36.     extern int    errno;
  37. # endif
  38. # if sun
  39. #  define YP_PASSWD    /* if you are a sun running the yellow pages */
  40. # endif
  41. # define KILL0        /* kill(pid, 0) returns 0 if proc exists */
  42. #endif /* UNIX */
  43.  
  44. #ifdef UNIX
  45. # ifdef pdp11
  46. #  define SMALL
  47. #  define JBUFSIZ    512    /* or 1024 */
  48. #  define NBUF        3
  49. # else
  50. #  define VMUNIX        /* Virtual Memory UNIX */
  51. #  define JBUFSIZ    1024
  52. #  ifdef iAPX286
  53. #   define NBUF        48    /* NBUF*JBUFSIZ must be less than 64 kB */
  54. #  else
  55. #   define NBUF    64    /* number of disk buffers */
  56. #  endif /* iAPX286 */
  57. # endif
  58. #endif
  59.  
  60. #ifdef SMALL
  61.   typedef unsigned short    daddr;
  62. #else
  63. # if defined(iAPX286) || defined(MSDOS) || defined(MAC)
  64.    typedef long    daddr;
  65. # else
  66.    typedef    int    daddr;
  67. # endif /* iAPX286 */
  68. #endif /* SMALL */
  69.  
  70. #ifdef UNIX
  71.             /* pick your version of Unix */
  72. # define BSD4_2        /* Berkeley 4.2 BSD */
  73. # define BSD4_3        /* Berkeley 4.3 BSD and 2.10 BSD */
  74. /*# define SYSV        /* for (System III/System V) UNIX systems */
  75. /*# define SYSVR2    /* system 5, rel. 2 */
  76. /*# define SYSVR3    /* system 5, rel. 3 */
  77.             /* M_XENIX is defined by the Compiler */
  78. #endif /* UNIX */
  79.  
  80. #ifdef SYSVR3
  81. # ifndef SYSVR2
  82. #  define SYSVR2    /* SYSVR2 is a subset of SYSVR3 */
  83. # endif
  84. # define    SIGRESULT    void
  85. # define    SIGRETURN    { return; }
  86. # ifndef SIGCHLD
  87. #  define    SIGCHLD        SIGCLD
  88. # endif
  89. #endif
  90.  
  91. #ifdef SYSVR2
  92. # ifndef SYSV
  93. #  define SYSV    /* SYSV is a subset of SYSVR2 */
  94. # endif
  95. #endif
  96.  
  97. #ifdef BSD4_3
  98. # ifndef BSD4_2
  99. #  define BSD4_2    /* 4.3 is 4.2 only different. */
  100. # endif
  101. #endif
  102.  
  103. #ifdef M_XENIX
  104. # define iAPX286 1    /* we have segments */
  105. # define BSD_DIR
  106. #endif
  107.  
  108. #ifdef MSDOS
  109. # ifdef M_I86LM        /* large memory model */
  110. #  define NBUF         64
  111. # else
  112. #  define NBUF         3
  113. #  define SMALL
  114. # endif
  115. # define JBUFSIZ        512        /* or 1024 */
  116. #endif
  117.  
  118. #if (defined(BSD4_3) || defined(MAC))
  119. # define RESHAPING    /* enable windows to handle reshaping */
  120. #endif
  121.  
  122. #ifdef BSD4_2            /* byte_copy(from, to, len) */
  123. # define byte_copy    bcopy    /* use fast assembler version */
  124. # define byte_zero    bzero
  125. # define strchr    index
  126. # define strrchr    rindex
  127. # define BSD_SIGS    /* Berkeley style signals */
  128. # define BSD_WAIT    /* Berkeley style sys/wait.h */
  129. # define WAIT3        /* Berkeley style wait3() */
  130. # define BSD_DIR        /* Berkeley style dirent routines */
  131. # define VFORK        /* if you have vfork(2) */
  132. # define JOB_CONTROL    /* if you have job stopping */
  133. #endif
  134.  
  135. #ifdef JOB_CONTROL
  136. # define MENLO_JCL
  137. #endif
  138.  
  139. #ifdef apple_ux        /* A/UX on a MacII */
  140. # define BSD_WAIT    /* Berkeley style sys/wait.h */
  141. # define BSD_DIR        /* Berkeley style dirent routines */
  142. # define WAIT3        /* Berkeley style wait3() */
  143. # define BSD_SIGS    /* Berkeley style signals */
  144. #endif
  145.  
  146. #ifdef mips
  147. /*
  148.  * MIPS and SGI boxes have BSD style wait, and directory routines if you link
  149.  * -lbsd and define -I/usr/include/bsd on the compile line. But they have SysV
  150.  * style signals.
  151.  */
  152. # define BSD_WAIT    /* Berkeley style sys/wait.h */
  153. # define BSD_DIR        /* Berkeley style dirent routines */
  154. # ifdef sgi
  155. #  define WAIT3        /* Berkeley style wait3() */
  156. # endif
  157. #endif
  158.  
  159. #ifndef VFORK
  160. # define vfork    fork
  161. #endif
  162.  
  163. #ifndef BSD4_2
  164. # define PIPEPROCS        /* if IPROCS selected, use pipes */
  165. #endif
  166.  
  167. #if defined(SYSV) || defined(MSDOS) || defined(M_XENIX)
  168. #include <memory.h>
  169. # define byte_copy(s2, s1, n)    memcpy((s1), (s2), (n))
  170. # define byte_zero(s, n)        memset((s), 0, (n))
  171. #endif
  172.  
  173. #ifndef    SIGRESULT
  174. # define    SIGRESULT    int
  175. # define    SIGRETURN    { return 0; }
  176. #endif
  177.  
  178. #ifndef BSD4_2
  179. # ifdef MENLO_JCL
  180. #  define signal    sigset
  181. # endif /* MENLO_JCL */
  182. #endif
  183.  
  184. #if !(defined(IBMPC) || defined(MAC))
  185. # define TERMCAP
  186. # define ASCII
  187. #endif
  188.  
  189. #ifdef ASCII    /* seven bit characters */
  190. # define NCHARS 0200
  191. #else
  192. # define NCHARS 0400
  193. #endif
  194.  
  195. #define CHARMASK (NCHARS - 1)
  196.  
  197. #ifndef MSDOS
  198. # define FILESIZE    256
  199. #else /* MSDOS */
  200. # define FILESIZE    64
  201. #endif /* MSDOS */
  202.  
  203. #if defined(BSD_SIGS)
  204. extern long    SigMask;
  205.  
  206. # define SigHold(s)    sigblock(SigMask |= sigmask((s)))
  207. # define SigRelse(s)    sigsetmask(SigMask &= ~sigmask((s)))
  208. #else
  209. # define SigHold(s)    sighold(s)
  210. # define SigRelse(s)    sigrelse(s)
  211. # define killpg(pid, sig)    kill(-(pid), (sig))
  212. #endif
  213.