home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / n / tcpip / netkit-a.06 / netkit-a / NetKit-A-0.06 / nfs-server-2.0 / system.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-21  |  4.7 KB  |  237 lines

  1. /*
  2.  * system.h -- this header consolidates many of the system dependencies
  3.  * Public Domain.
  4.  */
  5.  
  6. #ifdef HAVE_CONFIG_H
  7. #include <config.h>
  8. #endif
  9.  
  10. #include <sys/types.h>
  11.  
  12. /* unistd.h defines _POSIX_VERSION on POSIX.1 systems.  */
  13. #if defined(HAVE_UNISTD_H) || defined(STDC_HEADERS)
  14. #include <unistd.h>
  15. #endif
  16.  
  17. #ifdef STDC_HEADERS
  18. #include <stdlib.h>
  19. #endif
  20.  
  21. #ifdef _POSIX_VERSION
  22. #include <limits.h>
  23. #else
  24. #include <sys/param.h>
  25. #endif
  26.  
  27. #include <sys/stat.h>
  28. #include <sys/ioctl.h>
  29. #include <sys/socket.h>
  30. #include <stdio.h>
  31.  
  32. #include <rpc/rpc.h>
  33.  
  34. #include <ctype.h>
  35. #include <errno.h>
  36. #ifdef HAVE_FCNTL_H
  37. #include <fcntl.h>
  38. #endif
  39. #include <netdb.h>            /* needed for gethostbyname */
  40. #include <netinet/in.h>
  41. #undef NOERROR                /* blasted sysv4 */
  42. #include <arpa/nameser.h>        /* needed for <resolv.h> */
  43. #include <arpa/inet.h>            /* for inet_ntoa(3) */
  44. #include <resolv.h>            /* needed for h_errno */
  45. #include <signal.h>
  46.  
  47. #ifdef __STDC__
  48. #include <stdarg.h>            /* needed for va_arg et al */
  49. #else
  50. #include <varargs.h>
  51. #endif
  52.  
  53. #ifdef _POSIX_VERSION
  54. #include <grp.h>            /* for setgroups */
  55. #endif
  56.  
  57. #ifdef TIME_WITH_SYS_TIME
  58. #include <sys/time.h>
  59. #include <time.h>
  60. #else /* not TIME_WITH_SYS_TIME */
  61. #ifdef HAVE_SYS_TIME_H
  62. #include <sys/time.h>
  63. #else /* not HAVE_SYS_TIME_H */
  64. #include <time.h>
  65. struct timeval {
  66.     long tv_sec;
  67.     long tv_usec;
  68. };
  69. #endif /* not HAVE_SYS_TIME_H */
  70. #endif /* not TIME_WITH_SYS_TIME */
  71. #ifdef HAVE_SYS_FILE_H
  72. #include <sys/file.h>
  73. #endif
  74.  
  75. #ifdef MAJOR_IN_MKDEV
  76. #include <sys/mkdev.h>
  77. #endif
  78. #ifdef MAJOR_IN_SYSMACROS
  79. #include <sys/sysmacros.h>
  80. #endif
  81.  
  82. #if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
  83. #include <string.h>
  84. /* An ANSI string.h and pre-ANSI memory.h might conflict.  */
  85. #if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
  86. #include <memory.h>
  87. #endif /* not STDC_HEADERS and HAVE_MEMORY_H */
  88. #else /* not STDC_HEADERS and not HAVE_STRING_H */
  89. #include <strings.h>
  90. /* memory.h and strings.h conflict on some systems.  */
  91. #ifndef strchr
  92. #define strchr(s, c) index((s), (c))
  93. #endif
  94. #ifndef strrchr
  95. #define strrchr(s, c) rindex((s), (c))
  96. #endif
  97. #ifndef memcpy
  98. #define memcpy(d, s, n) bcopy((s), (d), (n))
  99. #endif
  100. #ifndef memcmp
  101. #define memcmp(s1, s2, n) bcmp((s1), (s2), (n))
  102. #endif
  103. #ifndef memset
  104. #define memset(s, c, n) \
  105.     do {                        \
  106.         char *_s = (s);                \
  107.         int _c = (c);                \
  108.         int _n = (n);                \
  109.         int _i;                    \
  110.                             \
  111.         if (_c == 0)                \
  112.             bzero(_s, _n);            \
  113.         else                    \
  114.             for (_i = 0; _i < _n; _i++)    \
  115.                 *_s++ = _c;        \
  116.     } while (0)
  117. #endif
  118. #endif /* not STDC_HEADERS and not HAVE_STRING_H */
  119.  
  120. #if defined(DIRENT) || defined(_POSIX_VERSION)
  121. #include <dirent.h>
  122. #define NLENGTH(dirent) (strlen((dirent)->d_name))
  123. #else /* not (DIRENT or _POSIX_VERSION) */
  124. #define dirent direct
  125. #define NLENGTH(dirent) ((dirent)->d_namlen)
  126. #ifdef SYSNDIR
  127. #include <sys/ndir.h>
  128. #endif /* SYSNDIR */
  129. #ifdef SYSDIR
  130. #include <sys/dir.h>
  131. #endif /* SYSDIR */
  132. #ifdef NDIR
  133. #include <ndir.h>
  134. #endif /* NDIR */
  135. #endif /* not (DIRENT or _POSIX_VERSION) */
  136.  
  137. #ifdef __GNUC__
  138. #ifndef __STDC__
  139. #define inline __inline__
  140. #endif
  141. #else
  142. #define inline
  143. #endif
  144.  
  145. #ifndef S_IFMT
  146. #define S_IFMT 0170000
  147. #endif
  148.  
  149. #ifdef STAT_MACROS_BROKEN
  150. #undef S_ISBLK
  151. #undef S_ISCHR
  152. #undef S_ISDIR
  153. #undef S_ISREG
  154. #undef S_ISFIFO
  155. #undef S_ISLNK
  156. #undef S_ISSOCK
  157. #endif /* STAT_MACROS_BROKEN */
  158.  
  159. #if !defined(S_ISBLK) && defined(S_IFBLK)
  160. #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
  161. #endif
  162. #if !defined(S_ISCHR) && defined(S_IFCHR)
  163. #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
  164. #endif
  165. #if !defined(S_ISDIR) && defined(S_IFDIR)
  166. #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
  167. #endif
  168. #if !defined(S_ISREG) && defined(S_IFREG)
  169. #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
  170. #endif
  171. #if !defined(S_ISFIFO) && defined(S_IFFIFO)
  172. #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFFIFO)
  173. #endif
  174. #if !defined(S_ISLNK) && defined(S_IFLNK)
  175. #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
  176. #endif
  177. #if !defined(S_ISSOCK) && defined(S_IFSOCK)
  178. #define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
  179. #endif
  180.  
  181. #ifndef S_ISLNK
  182. #define lstat stat
  183. #endif
  184.  
  185. #ifndef HAVE_LCHOWN
  186. #define lchown chown
  187. #endif
  188.  
  189. #ifndef F_OK
  190. #define F_OK 0
  191. #define X_OK 1
  192. #define W_OK 2
  193. #define R_OK 4
  194. #endif
  195.  
  196. #if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID)
  197. #define seteuid(e) setreuid(((uid_t) -1), (e))
  198. #define setegid(e) setregid(((gid_t) -1), (e))
  199. #endif
  200.  
  201. #if !defined(getdtablesize) && !defined(HAVE_GETDTABLESIZE)
  202. #ifdef FILE_MAX
  203. #define getdtablesize() FILE_MAX
  204. #else
  205. #define getdtablesize() 20
  206. #endif
  207. #endif
  208.  
  209. #ifndef HAVE_ST_RDEV
  210. #define st_rdev st_size
  211. #endif
  212.  
  213. #ifndef PATH_MAX
  214. #ifdef _POSIX_VERSION
  215. #define PATH_MAX _POSIX_PATH_MAX
  216. #else
  217. #ifdef MAXPATHLEN
  218. #define PATH_MAX MAXPATHLEN
  219. #else
  220. #define PATH_MAX 1024
  221. #endif
  222. #endif
  223. #endif
  224.  
  225. #ifndef NAME_MAX
  226. #ifdef _POSIX_VERSION
  227. #define NAME_MAX _POSIX_NAME_MAX
  228. #else
  229. #ifdef MAXNAMLEN
  230. #define NAME_MAX MAXNAMLEN
  231. #else
  232. #define NAME_MAX 255
  233. #endif
  234. #endif
  235. #endif
  236.  
  237.