home *** CD-ROM | disk | FTP | other *** search
/ Super Net 1 / SUPERNET_1.iso / PC / OTROS / MSDOS / WATTCP / MSWATTCP.ZIP / INCLUDE / PROTO.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-27  |  14.7 KB  |  493 lines

  1. /*
  2.  * File: proto.h
  3.  *
  4.  * 18-Jun-92 lr
  5.  *
  6.  *    Here are all global function prototypes and variables
  7.  *
  8.  */
  9.  
  10. #define EXTERN extern
  11.  
  12. /*** elib/cout.c ***/
  13.  
  14. EXTERN void outch( unsigned char ch );
  15. EXTERN void outs(char *s);
  16. EXTERN void outsn(char *s,unsigned n);
  17. EXTERN void outhex( unsigned char ch );
  18. EXTERN void outhexes( unsigned char *p, unsigned n );
  19.  
  20. /*** elib/inchksum.asm ***/
  21.  
  22. EXTERN word inchksum(void far *buf, short cnt); 
  23.  
  24.  
  25. /*** elib/intel.asm ***/
  26.  
  27. EXTERN longword intel(long);
  28. /*EXTERN long ntohl(long);
  29.   EXTERN long htonl(long);*/
  30.  
  31. EXTERN word intel16(short);
  32. /*EXTERN short htons(short);
  33.   EXTERN short ntohs(short);*/
  34.  
  35. /*** elib/timeout.asm ***/
  36.  
  37. EXTERN long set_timeout( int seconds );
  38. EXTERN long set_ttimeout( int pc_ticks );
  39. EXTERN int chk_timeout( long value );
  40.  
  41. /*** src/asmpkt.asm ***/
  42.  
  43. EXTERN _pktentry(); /* only called by the packet driver */
  44.  
  45. EXTERN void _pktasminit(void far *buffer, int maxbufs, int buflen, long far *lost_packets);
  46.  
  47. /*** src/tcp.c ***/
  48.  
  49. #ifdef NEWPCTCP
  50. #undef EXTERN
  51. #define EXTERN
  52. EXTERN sock_desc sockarr[MAXSOCK] = {
  53.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL},
  54.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL},
  55.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL},
  56.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL},
  57.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL},
  58.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL},
  59.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL},
  60.         {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}, {0,0,0,NULL}
  61.         };
  62. EXTERN void (*system_yield)() = NULL;
  63. EXTERN tcp_Socket *tcp_allsocs = NULL;  /* fr traslated from tcp.c */
  64. EXTERN void (*_dbugxmit)() = NULL;
  65. EXTERN void (*_dbugrecv)() = NULL;
  66. EXTERN char *_hostname = "012345678901234567890123456789012345678901234567890";
  67. EXTERN word _mss = ETH_MSS;
  68. EXTERN word debug_on = 0;
  69. EXTERN char *_wattcp = WATTCP_C;
  70. EXTERN longword my_ip_addr = 0L;       /* for external references */
  71. EXTERN longword sin_mask = 0xfffffe00L; /* strange number! */
  72. EXTERN longword sin_gate = 0x0;
  73. EXTERN word MaxBufSize=DEFAULT_BUFSIZE;
  74. EXTERN word RxMaxBufSize=DEFAULT_BUFSIZE;
  75. EXTERN word TxMaxBufSize=DEFAULT_BUFSIZE;
  76. EXTERN long gm_tcp_Retransmitter=0L;
  77. EXTERN long gm_tcp_send_retr=0L;
  78. EXTERN long gm_tcp_send_very=0L;
  79. EXTERN long gm_expire=0L;
  80. EXTERN long gm_tcp_unthread=0L;
  81. EXTERN long previous_lost_packets=0;
  82. EXTERN long gm_udp_write=0l;
  83. EXTERN long gm_udp_sendfailed=0l;
  84. EXTERN long gm_udp_read=0l;
  85. EXTERN long gm_udp_handler=0l;
  86. EXTERN long gm_proces_sent=0L;
  87. EXTERN long gm_proces_estab=0L;
  88. EXTERN long gm_proces_finwt1=0L;
  89. EXTERN long gm_proces_finwt2=0L;
  90. EXTERN long gm_tcp_handler=0L;
  91. EXTERN long gm_tcp_ProcessData=0L;
  92. EXTERN long gm_proc_option=0L;
  93. EXTERN long gm_proc_opt_in=0L;
  94. EXTERN long gm_tcp_send=0L;
  95. EXTERN long gm_tcp_tick=0L;
  96. EXTERN long emptyretr=0L;
  97. EXTERN long emptyeack=0L;
  98. EXTERN long gm_tcp_rst=0l;
  99. EXTERN char *state_names[] = {
  100.     "LISTEN",       "SYNSENT",      "SYNREC",       "SYNRECLIS",
  101.     "ESTAB",        "ESTCL",        "FINWT1",       "FINWT2",
  102.     "CLOSWT",       "CLOSWTCL",     "CLOSING",      "LASTACK",
  103.     "TIMEWT",       "CLOSEMSL",     "CLOSED"};
  104.  
  105. #endif /* NEWPCTCP */
  106.  
  107. /*** public functions ***/
  108.  
  109. EXTERN void largecheck( void *s, int size);/*fr made public (used in socket.c)*/
  110. EXTERN void ip_timer_init( udp_Socket *s , int delayseconds );
  111. EXTERN int ip_timer_expired( udp_Socket *s);
  112. EXTERN longword MsecClock(void);
  113. EXTERN void tcp_shutdown(void);
  114. EXTERN void tcp_init(void);
  115. EXTERN void set_tcp_rxbufsize(word size);
  116. EXTERN void set_tcp_txbufsize(word size);
  117. EXTERN void set_udp_bufsize(word size);
  118. EXTERN int set_udp_buffer(udp_Socket *s,int size);
  119. EXTERN int set_tcp_buffers(tcp_Socket *s,int tsize, int rsize);
  120. EXTERN int udp_open(udp_Socket *s, word lport, longword ina,word port, procref datahandler);
  121. EXTERN int tcp_open(register tcp_Socket *s, word lport,longword ina,
  122. word port, procref datahandler);
  123. EXTERN int tcp_listen(register tcp_Socket *s, word lport,longword ina,
  124. word port, procref datahandler, word timeout);
  125. EXTERN void sock_abort(tcp_Socket *s );
  126. EXTERN tcp_Socket *multi_listen(int numsock, word lport,longword ina,
  127. word port, procref datahandler, word mode);
  128. EXTERN void make_in_hdr(in_Header *inp, byte proto, longword dest, word len);
  129. EXTERN short tcp_tick(register sock_type *s );
  130. EXTERN void tcp_set_debug_state(int x);
  131. EXTERN int tcp_established(tcp_Socket *s);
  132. EXTERN void _udp_cancel( in_Header *ip );
  133. EXTERN void _tcp_cancel(in_Header *ip);
  134. EXTERN void tcp_rst( in_Header *his_ip, tcp_Header *oldtcpp );
  135. EXTERN void sock_yield( tcp_Socket *s, void (*fn)());
  136. EXTERN void sock_mode( sock_type *s, word mode );
  137. EXTERN int sock_read(sock_type *s, byte *dp, int len );
  138. EXTERN int sock_fastread(sock_type *s, byte *dp, int len );
  139. EXTERN int sock_write(register sock_type *s, byte *dp, int len);
  140. EXTERN int sock_fastwrite(sock_type *s, byte *dp, int len);
  141. EXTERN void sock_flush( sock_type *s );
  142. EXTERN int sock_waitwrite( sock_type *s, byte *dp, int len );
  143. EXTERN void sock_flushnext( sock_type *s);
  144. EXTERN byte sock_putc( sock_type *s, byte c );
  145. EXTERN word sock_getc( sock_type *s );
  146. EXTERN int sock_puts( sock_type *s, byte *dp );
  147. EXTERN word sock_gets( sock_type *s, byte *dp, int n );
  148. EXTERN int sock_dataready( register sock_type *s );
  149. EXTERN int sock_established( sock_type *s );
  150. EXTERN void sock_close( sock_type *s);
  151. EXTERN tcp_Socket *tcp_accept( tcp_Socket *sl );
  152. EXTERN int _ip_delay0(register sock_type *s, int timeoutseconds,procref fn, int *statusptr );
  153. EXTERN int _ip_delay1(register sock_type *s, int timeoutseconds,procref fn, int *statusptr);
  154. EXTERN int _ip_delay2(register sock_type *s, int timeoutseconds,procref fn, int *statusptr);
  155. EXTERN char *rip( char *s );
  156. EXTERN void gm_statistics(void);
  157. EXTERN void gm_udp_statistics(void);
  158.  
  159. #undef EXTERN
  160. #define EXTERN extern
  161.  
  162. /*** global variables declared here ***/
  163.  
  164. EXTERN sock_desc sockarr[MAXSOCK];
  165. EXTERN void (*system_yield)();
  166. EXTERN tcp_Socket *tcp_allsocs;  /* fr traslated from tcp.c */
  167. EXTERN void (*_dbugxmit)();
  168. EXTERN void (*_dbugrecv)();
  169. EXTERN char *_hostname;
  170. EXTERN word _mss;
  171. EXTERN word debug_on;
  172. EXTERN char *_wattcp;
  173. EXTERN longword my_ip_addr;       /* for external references */
  174. EXTERN longword sin_mask; /* strange number! */
  175. EXTERN longword sin_gate;
  176. EXTERN word MaxBufSize;
  177. EXTERN word RxMaxBufSize;
  178. EXTERN word TxMaxBufSize;
  179. EXTERN long gm_tcp_Retransmitter;
  180. EXTERN long gm_tcp_send_retr;
  181. EXTERN long gm_tcp_send_very;
  182. EXTERN long gm_expire;
  183. EXTERN long gm_tcp_unthread;
  184. EXTERN long previous_lost_packets;
  185. EXTERN long gm_udp_write;
  186. EXTERN long gm_udp_sendfailed;
  187. EXTERN long gm_udp_read;
  188. EXTERN long gm_udp_handler;
  189. EXTERN long gm_proces_sent;
  190. EXTERN long gm_proces_estab;
  191. EXTERN long gm_proces_finwt1;
  192. EXTERN long gm_proces_finwt2;
  193. EXTERN long gm_tcp_handler;
  194. EXTERN long gm_tcp_ProcessData;
  195. EXTERN long gm_proc_option;
  196. EXTERN long gm_proc_opt_in;
  197. EXTERN long gm_tcp_send;
  198. EXTERN long gm_tcp_tick;
  199. EXTERN long emptyretr;
  200. EXTERN long emptyeack;
  201. EXTERN long gm_tcp_rst;
  202. EXTERN char *state_names[];
  203.  
  204. /*** src/pc_cbrk.c ***/
  205.  
  206. #ifdef PC_CBRK
  207. #undef EXTERN
  208. #define EXTERN
  209. EXTERN word wathndlcbrk = 0;
  210.     /* changes operation of the break stuff if in resolve or something */
  211. EXTERN word watcbroke = 0; /* set to non-zero if wathndlcbrk happenned */
  212. #endif /* PC_CBRK */
  213.  
  214. EXTERN void tcp_cbrk( int mode );
  215. EXTERN word wathndlcbrk;
  216. EXTERN word watcbroke;
  217.  
  218. #undef EXTERN
  219. #define EXTERN extern
  220.  
  221. /*** src/pcarp.c ***/
  222.  
  223. #ifdef PCARP
  224. #undef EXTERN
  225. #define EXTERN
  226. #endif /* PCARP */
  227.  
  228. EXTERN void _arp_add_gateway( char *data , longword ip );
  229. EXTERN void _arp_register( longword use, longword instead_of );
  230. EXTERN void _arp_handler( arp_Header *in);
  231. EXTERN int _arp_resolve( longword ina, eth_address *ethap);
  232.  
  233. EXTERN short _arp_last_gateway;
  234.  
  235. #undef EXTERN
  236. #define EXTERN extern
  237.  
  238. /*** src/pcbootp.c ***/
  239.  
  240. #ifdef PCBOOTP
  241. #undef EXTERN
  242. #define EXTERN
  243. EXTERN longword _bootphost = 0xffffffffL;
  244. EXTERN word _bootptimeout = 30;
  245. EXTERN word _bootpon = 0;
  246. #endif /* PCBOOTP */
  247.  
  248. EXTERN int _dobootp(void);
  249.  
  250. EXTERN longword _bootphost;
  251. EXTERN word _bootptimeout;
  252. EXTERN word _bootpon;
  253.  
  254. #undef EXTERN
  255. #define EXTERN extern
  256.  
  257. /*** src/pcbsd.c ***/
  258.  
  259. EXTERN int _chk_socket( tcp_Socket *s );
  260. EXTERN char *w_inet_ntoa( char *s, longword x );
  261. EXTERN void psocket( tcp_Socket *s );
  262. EXTERN longword inet_addr( char *s );
  263. EXTERN char *sockerr( tcp_Socket *s );
  264. EXTERN char *sockstate( tcp_Socket *s );
  265. EXTERN int getpeername( tcp_Socket *s, void *dest, int *len );
  266. EXTERN int wat_getsockname(  tcp_Socket *s, void *dest, int *len );
  267. EXTERN longword gethostid(void);
  268. EXTERN longword sethostid( longword ip );
  269. EXTERN char *getdomainname( char *name, int length );
  270. EXTERN char *setdomainname( char *string );
  271. EXTERN char *wat_gethostname( char *name, int len );
  272. EXTERN char *sethostname( char *name );
  273.  
  274. /*** src/pcbuf.c ***/
  275.  
  276. EXTERN int sock_rbsize( tcp_Socket *s );
  277. EXTERN int sock_rbused( tcp_Socket *s );
  278. EXTERN int sock_rbleft( tcp_Socket *s );
  279. EXTERN int sock_tbsize( tcp_Socket *s );
  280. EXTERN int sock_tbused( tcp_Socket *s );
  281. EXTERN int sock_tbleft( tcp_Socket *s );
  282. EXTERN int sock_preread( sock_type *s, byte *dp, int len );
  283.  
  284. /*** src/config.c ***/
  285.  
  286. #ifdef CONFIG
  287. #undef EXTERN
  288. #define EXTERN
  289. EXTERN word sock_delay = 30;
  290. EXTERN word sock_inactive = 0;  /* defaults to forever */
  291. EXTERN void (*usr_init)() = NULL;
  292. #endif /* PCCONFIG */
  293.  
  294. EXTERN char *_inet_atoeth( char *src, eth_address eth );
  295. EXTERN void _add_server( int *counter, int max, longword *array, longword value);
  296. EXTERN int tcp_config( char *path );
  297.  
  298. EXTERN word sock_delay;
  299. EXTERN word sock_inactive;
  300. EXTERN void (*usr_init)();
  301. EXTERN char defaultdomain[ 80 ];
  302. EXTERN longword _cookie[ MAX_COOKIES ];
  303. EXTERN int _last_cookie;
  304.  
  305.  
  306. #undef EXTERN
  307. #define EXTERN extern
  308.  
  309.  
  310. /*** src/pcdbug.c ***/
  311.  
  312. #ifdef PCDBUG
  313. #undef EXTERN
  314. #define EXTERN
  315. #endif /* PCDBUG */
  316.  
  317. EXTERN void db_write( char *msg );
  318. EXTERN void dbuginit(void);
  319.  
  320. EXTERN char debugname[ 128 ];
  321. EXTERN int debugheaders, debugdump, debugudp, debugtcp;
  322. /* extern void (*_dbugxmit)(); */
  323. /* extern void (*_dbugrecv)(); */
  324.  
  325.  
  326. #undef EXTERN
  327. #define EXTERN extern
  328.  
  329. /*** src/pcicmp.c ***/
  330. #ifdef PCICMP
  331. #undef EXTERN
  332. #define EXTERN
  333. EXTERN int print_icmp=0;
  334. #endif /* PCICMP */
  335. EXTERN longword _chk_ping( longword host, longword *ptr );
  336. EXTERN struct _pkt *icmp_Format( longword destip );
  337. EXTERN void icmp_handler( in_Header *ip );
  338. EXTERN int print_icmp;
  339.  
  340. #undef EXTERN
  341. #define EXTERN extern
  342.  
  343. /*** src/pcping.c ***/
  344.  
  345. EXTERN int _ping( longword host, longword countnum );
  346.  
  347. /*** src/pcpkt.c ***/
  348.  
  349. #ifdef PCPKT
  350. #undef EXTERN
  351. #define EXTERN
  352. EXTERN word _pktipofs = 0;      /* offset from header to start of pkt */
  353. EXTERN word pkt_ip_type = 0x0008;       /* these are intelled values */
  354. EXTERN word pkt_arp_type = 0x608;
  355. EXTERN longword far *interrupts = 0L;
  356. EXTERN long far lost_packets=0;
  357. #endif /* PCPKT */
  358.  
  359. EXTERN int farcmp(char far *f, char *d, int len);
  360. EXTERN int pkt_init(void);
  361. EXTERN int pkt_release(void);
  362. EXTERN int pkt_send( char *buffer, int length );
  363. EXTERN void pkt_buf_wipe(void );
  364. EXTERN void pkt_buf_release( char *ptr );
  365. EXTERN void *pkt_received(void);
  366. EXTERN void *_pkt_eth_init(void);
  367.  
  368. EXTERN word _pktipofs;
  369. EXTERN word pkt_ip_type;
  370. EXTERN word pkt_arp_type;
  371. EXTERN longword far *interrupts;
  372. EXTERN long far lost_packets;
  373.  
  374. EXTERN word pkt_interrupt;
  375. EXTERN byte pktbuf[MAXBUFS][ BUFSIZE + 2 ];/* char busy, spare, buf[] */
  376. EXTERN word  pkt_ip_handle;
  377. EXTERN word  pkt_arp_handle;
  378. EXTERN byte eth_addr[ 6 ] ;
  379.  
  380. #undef EXTERN
  381. #define EXTERN extern
  382.  
  383.  
  384. #ifdef unused /*** src/pcrecv.c ***/
  385.  
  386. EXTERN int _recvdaemon( udp_Socket *s, byte *data, int len, tcp_PseudoHeader *ph);
  387. EXTERN void sock_recv_init( udp_Socket *s, void *space, word len );
  388. EXTERN int sock_recv( udp_Socket *s, char *buffer, int len, word flags);
  389.  
  390. #endif /* unused */ /* src/pcrecv.c */
  391. /*** src/pcsed.c ***/
  392.  
  393. #ifdef PCSED
  394. #undef EXTERN
  395. #define EXTERN
  396. EXTERN word _pktdevclass = 1;          /* Ethernet = 1, SLIP = 6 */
  397. EXTERN long gm_eth_send=0L;
  398. #endif
  399.  
  400. EXTERN void _eth_init(void);
  401. EXTERN byte *_eth_formatpacket( void *eth_dest, word eth_type );
  402. EXTERN int _eth_send( word len);
  403. EXTERN void _eth_free( void *buf);
  404. EXTERN byte *_eth_arrived( word *type_ptr);
  405. EXTERN void _eth_release(void);
  406. EXTERN void *_eth_hardware( byte *p );
  407.  
  408. EXTERN eth_address _eth_addr;          /* local ethernet address */
  409. EXTERN eth_address _eth_brdcast;       /* Ethernet broadcast address */
  410. EXTERN word _pktdevclass;
  411. EXTERN long gm_eth_send;
  412.  
  413. #undef EXTERN
  414. #define EXTERN extern
  415.  
  416. /*** src/sock_ini.c ***/
  417.  
  418. #ifdef SOCK_INI
  419. #undef EXTERN
  420. #define EXTERN
  421. EXTERN word _survivebootp = 0;
  422. #endif
  423.  
  424. EXTERN void sock_exit(void);
  425. EXTERN void sock_init(void);
  426.  
  427. #undef EXTERN
  428. #define EXTERN extern
  429. EXTERN word _survivebootp;
  430.  
  431.  
  432.  
  433. /*** src/sock_prn.c ***/
  434.  
  435. EXTERN int sock_printf( sock_type *s, char *format, ... );
  436. EXTERN int sock_scanf( sock_type *s, char *format, ... );
  437.  
  438. /*** src/udp_dom.c ***/
  439.  
  440. #ifdef UDP_DOM
  441. #undef EXTERN
  442. #define EXTERN
  443. EXTERN int _domaintimeout = 0;
  444. #endif /* UDP_DOM */
  445.  
  446. EXTERN int countpaths(char *pathstring);
  447. EXTERN longword resolve(char *name);
  448. EXTERN void add_hosts_table(char *ip, char *ipname);
  449. EXTERN void disp_hosts_table(void);
  450.     /* these are loaded by config */
  451. EXTERN char *def_domain;
  452. EXTERN char *loc_domain; /* current subname to be used by the domain system */
  453. EXTERN longword def_nameservers[ MAX_NAMESERVERS ];
  454. EXTERN int _last_nameserver;
  455. EXTERN int _domaintimeout;
  456.  
  457. #undef EXTERN
  458. #define EXTERN extern
  459.  
  460. /*** src/udp_nds.c ***/
  461.  
  462. EXTERN longword aton( char *text );
  463. EXTERN word isaddr( char *text );
  464.  
  465.  
  466. /*** src/socket.c ***/
  467.  
  468. #ifdef SOCKET
  469. #undef EXTERN
  470. #define EXTERN
  471. #endif /* SOCKET */
  472.  
  473. EXTERN int sendto(int sock, char *buf, int nbytes, int flags, 
  474.                   struct sockaddr *to, int addrlen);
  475. EXTERN int recvfrom(int sock, char *buf, int nbytes, int flags, 
  476.                   struct sockaddr *from, int *addrlen);
  477. EXTERN int select(int maxfdp, fd_set *readfds, fd_set *writefds, 
  478.                   fd_set *exceptfds, struct timeval *timeout);
  479. EXTERN int socket(int af, int type, int protocol);
  480. EXTERN int bind(int s, struct sockaddr *name, int namelen);
  481. EXTERN int getsockname(int s, struct sockaddr *name, int *lenp);
  482. EXTERN int gethostname(char *buf, int len);
  483. EXTERN int listen(int sock, int numsock);
  484. EXTERN int accept(int s, struct sockaddr *addr, int *addrlen);
  485. EXTERN char *inet_ntoa(struct in_addr in);
  486. EXTERN int n_write(int fd, char *dp, int len);
  487. EXTERN int n_read(int fd, char *dp, int len);
  488. EXTERN int n_close(int sock);
  489. EXTERN struct hostent *gethostbyname(char *name);
  490. EXTERN int connect(int sock, struct sockaddr *name, int namelen);
  491. EXTERN void sleep(int sec);
  492. /******* end of file proto.h *********/
  493.