home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / ncftp-2.3.0-src.tgz / tar.out / contrib / ncftp / Sys.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  3KB  |  161 lines

  1. /* Sys.h */
  2.  
  3. #include "Config.h"
  4.  
  5. #ifdef HAVE_UNISTD_H
  6. #    include <unistd.h>
  7. #endif
  8. #include <sys/types.h>
  9.  
  10. #include <stdio.h>
  11. #include <sys/time.h>
  12.  
  13. #ifdef STDC_HEADERS
  14. #    include <stdlib.h>
  15. #endif
  16.  
  17.  
  18. #ifdef HAVE_STRING_H
  19. #    include <string.h>        /* They have string.h... */
  20. #    if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
  21. /*
  22.     #        include <memory.h>
  23. */
  24. #    endif
  25. #    define PTRZERO(p,siz)  memset(p, 0, (size_t) (siz))
  26. #else
  27. #    include <strings.h>        /* Then hope they have strings.h. */
  28. #    define strchr index
  29. #    define strrchr rindex
  30. #    ifdef HAVE_MEMORY_H
  31. #        include <memory.h>
  32. #    endif
  33. #    define memcpy(d,s,n) bcopy((s), (d), (int)(n) )
  34. #    define PTRZERO bzero
  35. #endif
  36.  
  37. /* Autoconf's AC_TIME_WITH_SYS_TIME defines TIME_WITH_SYS_TIME. */
  38. #ifdef TIME_WITH_SYS_TIME
  39. #    include <sys/time.h>
  40. #    include <time.h>
  41. #else
  42. #    ifdef HAVE_SYS_TIME_H
  43. #        include <sys/time.h>
  44. #    else
  45. #        include <time.h>
  46. #    endif
  47. #endif
  48.  
  49. #ifdef HAVE_STDARG_H
  50. #    include <stdarg.h>
  51. #else
  52. #    include <varargs.h>
  53. #endif
  54.  
  55.  
  56.  
  57. #ifdef HAVE_FCNTL_H
  58. #    include <fcntl.h>
  59. #endif
  60.  
  61. /* All of this crap because NeXT doesn't define these symbols. */
  62. #include <sys/stat.h>
  63. #ifndef O_RDONLY
  64. #    define    O_RDONLY    0
  65. #    define    O_WRONLY    1
  66. #    define    O_RDWR        2
  67. #endif
  68.  
  69. /* These aren't guaranteed to work, as they are defined differently on
  70.  * different systems!
  71.  */
  72. #ifndef O_CREAT
  73. #    define    O_CREAT        0x100
  74. #    define    O_TRUNC        0x200
  75. #    define    O_EXCL        0x400
  76. #endif
  77. #ifndef O_APPEND
  78. #    define O_APPEND        0x08
  79. #endif
  80.  
  81. /* This group is somewhat standard, though. */
  82. #ifndef S_IRUSR
  83. #    define    S_IRUSR    00400        /* read permission: owner */
  84. #    define    S_IWUSR    00200        /* write permission: owner */
  85. #    define    S_IXUSR    00100        /* execute permission: owner */
  86. #    define    S_IRWXU    00700        /* read, write, execute: owner */
  87. #    define    S_IRWXG    00070        /* read, write, execute: group */
  88. #    define    S_IRGRP    00040        /* read permission: group */
  89. #    define    S_IWGRP    00020        /* write permission: group */
  90. #    define    S_IXGRP    00010        /* execute permission: group */
  91. #    define    S_IRWXO    00007        /* read, write, execute: other */
  92. #    define    S_IROTH    00004        /* read permission: other */
  93. #    define    S_IWOTH    00002        /* write permission: other */
  94. #    define    S_IXOTH    00001        /* execute permission: other */
  95. #endif
  96. #ifndef S_ISDIR
  97. #    define S_ISDIR(mode)    ((mode&S_IFMT) == S_IFDIR)
  98. #    define S_ISREG(mode)    ((mode&S_IFMT) == S_IFREG) 
  99. #    define S_ISLNK(m)      (((m) & S_IFMT) == S_IFLNK)
  100. #endif
  101.  
  102.  
  103.  
  104. #ifdef HAVE_FLOCK
  105. #        define LOCK_METHOD 2
  106. #else
  107. #    ifdef F_SETLK        /* Def'd if <fcntl.h> has it and fcntl() can lock. */
  108. #        define LOCK_METHOD 1
  109. #    else
  110. #        define LOCK_METHOD 3
  111. #    endif
  112. #endif
  113.  
  114.  
  115.  
  116. #ifdef _POSIX_VERSION
  117. #    define POSIX_SIGNALS 1
  118. #endif
  119.  
  120. #define PClose pclose
  121.  
  122. #ifdef SVR4
  123. #    ifndef Gettimeofday
  124. #        define Gettimeofday gettimeofday
  125. #    endif
  126. #endif  /* SVR4 */
  127.  
  128. #ifndef Gettimeofday
  129. #    define Gettimeofday(a) gettimeofday(a, (struct timezone *)0)
  130. #endif /* Gettimeofday */
  131.  
  132. /* This malloc stuff is mostly for our own use. */
  133. #define LIBC_MALLOC 0
  134. #define FAST_MALLOC 1
  135. #define DEBUG_MALLOC 2
  136.  
  137. #ifdef LIBMALLOC
  138.     /* Make sure you use -I to use the malloc.h of choice. */
  139. #    if LIBMALLOC == FAST_MALLOC
  140. #        include "/usr/include/malloc.h"
  141. #    endif
  142. #    if LIBMALLOC == DEBUG_MALLOC
  143. #        include <dbmalloc.h>
  144. #        define MCHK malloc_chain_check(0)
  145. #    endif
  146. #else
  147. #    define LIBMALLOC LIBC_MALLOC
  148. #endif
  149.  
  150. #if LIBMALLOC != DEBUG_MALLOC
  151. #    define malloc_enter(func)
  152. #    define malloc_leave(func)
  153. #    define malloc_chain_check(a)
  154. #    define malloc_dump(fd)
  155. #    define malloc_list(a,b,c)
  156. #    define malloc_inuse(hist)    (*(hist) = 0, 0)
  157. #    define MCHK
  158. #endif
  159.  
  160. /* eof */
  161.