home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 4 / CDPD_IV.bin / networking / tcpip / amitcp-support / ncftp-1.5.6 / src / amiga / s_socket.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-29  |  5.5 KB  |  191 lines

  1.  
  2. #include <stdio.h>
  3. #include <stdarg.h>
  4. #include <fcntl.h>
  5. #include <sys/types.h>
  6. #include <proto/socket.h>
  7.  
  8. #define S_MAXFH 32 /* first socket descriptor */
  9.  
  10. #ifdef PRIVATE_SOCKET_H
  11.  
  12. #define _IOSOCK 0x1000 /* socket buffered io */
  13.  
  14. struct __iobufext {
  15.     struct __iobufext *_next;
  16.     unsigned char *_ptr;    /* current buffer pointer */
  17.     int _rcnt;                /* current byte count for reading */
  18.     int _wcnt;                /* current byte count for writing */
  19.     unsigned char *_base;    /* base address of I/O buffer */
  20.     int _size;            /* size of buffer */
  21.     int _flag;                /* control flags */
  22.     int _file;                /* file descriptor */
  23.     unsigned char _cbuff;    /* single char buffer */
  24. };
  25.  
  26. typedef struct __iobufext FILEEXT;
  27. #else
  28. #define FILEEXT FILE
  29.  
  30. #define fclose s_fclose
  31. #define fflush s_fflush
  32. #define freopen s_freopen
  33. #define setbuf s_setbuf
  34. #define setvbuf s_setvbuf
  35. #define fprintf s_fprintf
  36. #define fscanf s_fscanf
  37. #define vfprintf s_vfprintf
  38.  
  39. #define fgetc s_fgetc
  40. #define fgets s_fgets
  41. #define fputc s_fputc
  42. #define fputs s_fputs
  43. #ifdef getc
  44. #undef getc
  45. #endif
  46. #define getc s_getc
  47. #ifdef putc
  48. #undef putc
  49. #endif
  50. #define putc s_putc
  51.  
  52. #define fread s_fread
  53. #define fwrite s_fwrite
  54. #define fgetpos s_fgetpos
  55. #define fseek s_fseek
  56. #define fsetpos s_fsetpos
  57. #define ftell s_ftell
  58. #ifndef rewind
  59. #define rewind s_rewind
  60. #endif
  61. #ifndef clearerr
  62. #define clearerr s_clearerr
  63. #endif
  64. #ifndef feof
  65. #define feof s_feof
  66. #endif
  67. #ifndef ferror
  68. #define ferror s_ferror
  69. #endif
  70. /* FIXME: #define perror s_perror */
  71. #define fdopen s_fdopen
  72.  
  73. /* low level file stuff */
  74. #undef write
  75. #define write s_write
  76. #undef read
  77. #define read s_read
  78. #undef close
  79. #define close s_close
  80. #undef lseek
  81. #define lseek s_lseek
  82. #undef tell
  83. #define tell s_tell
  84. #define isatty s_isatty
  85. #define iomode s_iomode
  86.  
  87. /* socket stuff */
  88. #define accept s_accept
  89. #define bind s_bind
  90. #define CloseSocket s_CloseSocket
  91. #define connect s_connect
  92. #define getpeername s_getpeername
  93. #define getsockname s_getsockname
  94. #define getsockopt s_getsockopt
  95. #define setsockopt s_setsockopt
  96. #define ioctl s_ioctl
  97. #define listen s_listen
  98. #define recv s_recv
  99. #define recvfrom s_recvfrom
  100. #ifdef select
  101. #undef select
  102. #endif
  103. #define select s_select
  104. #define WaitSelect s_WaitSelect
  105. #define send s_send
  106. #define sento s_sendto
  107. #define shutdown s_shutdown
  108. #define socket s_socket
  109. #define getdtablesize s_getdtablesize
  110. #undef FD_SET
  111. #define    FD_SET(n, p)    ((p)->fds_bits[(n-S_MAXFH)/NFDBITS] |= (1 << ((n-S_MAXFH) % NFDBITS)))
  112. #undef FD_CLR
  113. #define    FD_CLR(n, p)    ((p)->fds_bits[(n-S_MAXFH)/NFDBITS] &= ~(1 << ((n-S_MAXFH) % NFDBITS)))
  114. #undef FD_ISSET
  115. #define    FD_ISSET(n, p)    ((p)->fds_bits[(n-S_MAXFH)/NFDBITS] & (1 << ((n-S_MAXFH) % NFDBITS)))
  116. #endif
  117.  
  118. #define s_getc(p) \
  119.         (((p)->_flag & _IOREAD) ? \
  120.             (--(p)->_rcnt >= 0 && ! ((p)->_file & _IORKEY) ? \
  121.                 *(p)->_ptr++ \
  122.             : \
  123.                 s_fgetc(p)) \
  124.         : \
  125.             s_fgetc(p))
  126.  
  127. #define s_putc(c,p) \
  128.         (((p)->_flag & _IOWRT) ? \
  129.             (++(p)->_wcnt <= (p)->_size ? \
  130.                 ((((int) (*(p)->_ptr++ = ((unsigned char)(c)))) == '\n' && \
  131.                    ((p)->_flag & _IOLBF)) ? \
  132.                     s_fflush(p), ((unsigned char)(c)) \
  133.                 : \
  134.                     ((unsigned char)(c))) \
  135.             : \
  136.                 (--(p)->_wcnt,s_fputc(c,p))) \
  137.         : \
  138.              s_fputc(c,p))
  139.  
  140. /* s_socket.c */
  141. FILE *s_fdopen ( int fd , const char *mode );
  142. void s_fclose ( FILE *af );
  143. size_t s_fread ( void *b , size_t bsize , size_t n , FILE *fp );
  144. size_t s_fwrite ( void *b , size_t bsize , size_t n , FILE *fp );
  145. int s_fgetc ( FILE *af );
  146. int s_fflush ( FILEEXT *af );
  147. int s_vfprintf ( FILE *af , const char *fmt , va_list args );
  148. int s_fprintf ( FILEEXT *af , const char *fmt , ...);
  149. int s_ferror ( FILE *af );
  150. int s_read ( int fh , void *buf , unsigned int len );
  151. int s_write ( int fh , void *buf , unsigned int len );
  152. int s_close ( int sd );
  153.  
  154.  
  155.  
  156. /* s_socket.c */
  157. FILE *s_fdopen ( int fd , const char *mode );
  158. void s_fclose ( FILE *af );
  159. size_t s_fread ( void *b , size_t bsize , size_t n , FILE *fp );
  160. size_t s_fwrite ( void *b , size_t bsize , size_t n , FILE *fp );
  161. char *s_fgets ( char *b , int bsize , FILE *fp );
  162. int s_fputs ( const char *b , FILE *fp );
  163. int s_fseek ( FILE *fp , long rpos , int mode );
  164. int s_fgetc ( FILE *af );
  165. int s_fflush ( FILEEXT *af );
  166. int s_vfprintf ( FILE *af , const char *fmt , va_list args );
  167. int s_fprintf ( FILEEXT *af , const char *fmt , ...);
  168. int s_fputc ( int c , FILEEXT *af );
  169. int s_ferror ( FILE *af );
  170. int s_read ( int fh , void *buf , unsigned int len );
  171. int s_write ( int fh , void *buf , unsigned int len );
  172. int s_close ( int sd );
  173. int s_isatty ( int sd );
  174. int s_iomode(int fd, int mode);
  175. long s_lseek ( int sd , long a , int mode );
  176. long s_accept ( long s , struct sockaddr *addr , int *addrlen );
  177. long s_bind ( long s , struct sockaddr *name , long namelen );
  178. long s_CloseSocket ( long sd );
  179. long s_connect ( long s , struct sockaddr *name , long namelen );
  180. long s_getpeername ( long s , struct sockaddr *name , int *namelen );
  181. long s_getsockname ( long s , struct sockaddr *name , int *namelen );
  182. long s_setsockopt ( long s , long level , long optname , caddr_t optval , long optlen );
  183. long s_listen ( long s , long backlog );
  184. long s_recv ( long s , char *buf , long len , long flags );
  185. long s_recvfrom(long s, char *buf, long len, long flags, 
  186.         struct sockaddr *from, long *len2);
  187. long s_select ( long nfds , fd_set *readfds , fd_set *writefds , fd_set *exceptfds , struct timeval *timeout );
  188. int s_send ( int s , char *msg , int len , int flags );
  189. long s_shutdown ( long s , long how );
  190. long s_socket ( long domain , long type , long protocol );
  191.