blob: ef9e133a8d1a6e4cd93d63fa2281703befc94560 [file] [log] [blame]
Jack Jansenedf58551994-12-14 13:36:34 +00001/*
2 * Prototypes for mactcpglue routines and includes/structures needed
3 * by those.
4 *
5 * Jack Jansen, CWI, 1994.
6 *
7 * Adapted from mac socket library, which has in turn adapted from ncsa telnet.
8 * Original authors: Tom Milligan, Charlie Reiman
9 */
10
11#include <MacTCPCommonTypes.h>
12#include <GetMyIPAddr.h>
13#include <TCPPB.h>
14#include <UDPPB.h>
15#include <AddressXlation.h>
16
Jack Jansen75b6f1c1995-01-18 13:50:42 +000017#ifndef __MWERKS__
18#define TCPIOCompletionUPP TCPIOCompletionProc
19#define TCPNotifyUPP TCPNotifyProc
20#define UDPIOCompletionUPP UDPIOCompletionProc
21#define UDPNotifyUPP UDPNotifyProc
22#define NewTCPIOCompletionProc(x) (x)
23#define NewTCPNotifyProc(x) (x)
24#define NewUDPIOCompletionProc(x) (x)
25#define NewUDPNotifyProc(x) (x)
26#endif /* __MWERKS__ */
27
28#if defined(powerc) || defined (__powerc)
29#pragma options align=mac68k
30#endif
31
Jack Jansenedf58551994-12-14 13:36:34 +000032typedef struct miniwds
33 {
34 unsigned short length;
35 char * ptr;
36 unsigned short terminus; /* must be zero'd for use */
37 } miniwds;
38
Jack Jansen75b6f1c1995-01-18 13:50:42 +000039#if defined(powerc) || defined(__powerc)
40#pragma options align=reset
41#endif
42
Jack Jansenedf58551994-12-14 13:36:34 +000043
44OSErr xOpenDriver(void);
Jack Jansen75b6f1c1995-01-18 13:50:42 +000045OSErr xPBControl(TCPiopb *pb, TCPIOCompletionUPP completion);
Jack Jansenedf58551994-12-14 13:36:34 +000046OSErr xPBControlSync(TCPiopb *pb);
Jack Jansen75b6f1c1995-01-18 13:50:42 +000047OSErr xTCPCreate(int buflen, TCPNotifyUPP notify, void *udp, TCPiopb *pb);
48OSErr xTCPPassiveOpen(TCPiopb *pb, short port, TCPIOCompletionUPP completion, void *udp);
49OSErr xTCPActiveOpen(TCPiopb *pb, short port, long rhost, short rport, TCPIOCompletionUPP completion);
50OSErr xTCPRcv(TCPiopb *pb, char *buf, int buflen, int timeout, TCPIOCompletionUPP completion);
51OSErr xTCPNoCopyRcv(TCPiopb *,rdsEntry *,int,int,TCPIOCompletionUPP);
52OSErr xTCPBufReturn(TCPiopb *pb,rdsEntry *rds,TCPIOCompletionUPP completion);
53OSErr xTCPSend(TCPiopb *pb, wdsEntry *wds, Boolean push, Boolean urgent, TCPIOCompletionUPP completion);
54OSErr xTCPClose(TCPiopb *pb,TCPIOCompletionUPP completion);
Jack Jansenedf58551994-12-14 13:36:34 +000055OSErr xTCPAbort(TCPiopb *pb);
56OSErr xTCPRelease(TCPiopb *pb);
57
Jack Jansen75b6f1c1995-01-18 13:50:42 +000058OSErr xUDPCreate(UDPiopb *pb,int buflen,ip_port *port, UDPNotifyUPP asr, void *udp);
59OSErr xUDPRead(UDPiopb *pb,int timeout, UDPIOCompletionUPP completion);
Jack Jansenedf58551994-12-14 13:36:34 +000060OSErr xUDPBfrReturn(UDPiopb *pb, char *buff);
61OSErr xUDPWrite(UDPiopb *pb,ip_addr host,ip_port port,miniwds *wds,
Jack Jansen75b6f1c1995-01-18 13:50:42 +000062 UDPIOCompletionUPP completion);
Jack Jansenedf58551994-12-14 13:36:34 +000063OSErr xUDPRelease(UDPiopb *pb);
64
65ip_addr xIPAddr(void);
66long xNetMask(void);
67unsigned short xMaxMTU(void);
68