home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / old / ckermit5a190 / ckotcp.h < prev    next >
C/C++ Source or Header  |  2020-01-01  |  3KB  |  144 lines

  1. /* ckotcp.c
  2.  *
  3.  * TCP/IP interface for OS/2 C-Kermit
  4.  *
  5.  * Author:  Kai-Uwe Rommel <rommel@ars.muc.de>
  6.  * Created: Wed May 25 1994
  7.  */
  8.  
  9. /* macro functions */
  10.  
  11. #ifndef CK_DLL
  12. #define byteswap(x)       ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
  13. #define htons(x)          (byteswap(x))
  14. #define ntohs(x)          (byteswap(x))
  15. #define bzero(x, y)       memset((x), 0, (y))
  16. #define bcopy(x, y, z)    memcpy((y), (x), (z))
  17. #endif
  18.  
  19. /* defines */
  20.  
  21. #ifndef CK_DLL
  22. #define AF_INET           CK_AF_INET
  23. #define SOCK_STREAM       CK_SOCK_STREAM
  24. #define FIONREAD          CK_FIONREAD
  25. #define FIONBIO           CK_FIONBIO
  26. #define SOL_SOCKET        CK_SOL_SOCKET
  27. #define SO_OOBINLINE      CK_SO_OOBINLINE
  28. #endif
  29.  
  30. #define CK_AF_INET        2
  31. #define CK_SOCK_STREAM    1
  32.  
  33. #define CK_FIONREAD       1
  34. #define CK_FIONBIO        2
  35.  
  36. #define CK_SOL_SOCKET     1
  37. #define CK_SO_OOBINLINE   1
  38.  
  39. /* type definitions */
  40.  
  41. #ifndef CK_DLL
  42. typedef char *caddr_t;
  43. #define in_addr           ck_in_addr
  44. #define ck_sockaddr_in    sockaddr_in
  45. #define ck_sockaddr       sockaddr
  46. #define ck_hostent        hostent
  47. #define ck_servent        servent
  48. #endif
  49.  
  50. struct ck_in_addr
  51. {
  52.   unsigned long s_addr;
  53. };
  54.  
  55. struct ck_sockaddr_in 
  56. {
  57.   short sin_family;
  58.   unsigned short sin_port;
  59.   struct ck_in_addr sin_addr;
  60.   char sin_zero[8];
  61. };
  62.  
  63. struct ck_sockaddr
  64. {
  65.   unsigned short sa_family;
  66.   char sa_data[14];
  67. };
  68.  
  69. struct ck_hostent
  70. {
  71.   char *h_name;
  72.   char **h_aliases;
  73.   int h_addrtype;
  74.   int h_length;
  75.   char *h_address;
  76. #ifndef CK_DLL
  77. #define h_addr h_address
  78. #endif
  79. };
  80.  
  81. struct ck_servent
  82. {
  83.   char *s_name;
  84.   char **s_aliases;
  85.   int s_port;
  86.   char *s_proto;
  87. };
  88.  
  89. /* prototypes */
  90.  
  91. #ifdef CK_DLL
  92.   #ifdef __32BIT__
  93.   #define ENTRY _System _Export
  94.   #else
  95.   #define ENTRY _export _loadds
  96.   #endif
  97. #else
  98.   #ifdef __32BIT__
  99.   #define SYSTEM _System
  100.   #else
  101.   #define SYSTEM
  102.   #endif
  103.   #define ck_sockinit       (* SYSTEM sockinit)
  104.   #define ck_connect        (* SYSTEM connect)
  105.   #define ck_ioctl          (* SYSTEM ioctl)
  106.   #define ck_recv           (* SYSTEM recv)
  107.   #define ck_select         (* SYSTEM select)
  108.   #define ck_send           (* SYSTEM send)
  109.   #define ck_setsockopt     (* SYSTEM setsockopt)
  110.   #define ck_socket         (* SYSTEM socket)
  111.   #define ck_soclose        (* SYSTEM soclose)
  112.   #define ck_gethostbyname  (* SYSTEM gethostbyname)
  113.   #define ck_getservbyname  (* SYSTEM getservbyname)
  114.   #define ck_inet_addr      (* SYSTEM inet_addr)
  115.   #define ck_inet_ntoa      (* SYSTEM inet_ntoa)
  116. #endif
  117.  
  118. #ifndef ENTRY
  119. #define ENTRY
  120. #endif
  121.  
  122. #ifndef EXTERN
  123. #define EXTERN extern
  124. #endif
  125.  
  126. EXTERN int ENTRY ck_sockinit(void);
  127.  
  128. EXTERN int ENTRY ck_connect(int socket, struct ck_sockaddr *name, int namelen);
  129. EXTERN int ENTRY ck_ioctl(int socket, int cmd, char *data, int length);
  130. EXTERN int ENTRY ck_recv(int socket, char *buffer, int length, int flags);
  131. EXTERN int ENTRY ck_select(int *fds, int nread, int write, int except, long timeout);
  132. EXTERN int ENTRY ck_send(int socket, char *buffer, int length, int flags);
  133. EXTERN int ENTRY ck_setsockopt(int socket, int level, int optname, 
  134.                    char *optvalue, int optlength);
  135. EXTERN int ENTRY ck_socket(int domain, int type, int protocol);
  136. EXTERN int ENTRY ck_soclose(int socket);
  137.  
  138. EXTERN struct ck_hostent * ENTRY ck_gethostbyname(char *name);
  139. EXTERN struct ck_servent * ENTRY ck_getservbyname(char *name, char *protocol);
  140. EXTERN unsigned long ENTRY ck_inet_addr(char *cp);
  141. EXTERN char * ENTRY ck_inet_ntoa(struct ck_in_addr in);
  142.  
  143. /* end of ckotcp.h */
  144.