UDPPB.h

/* 
    UDPPB.h 
    C definitions of parameter block entries needed for UDP calls
 
    Copyright Apple Computer, Inc. 1988-89 
    All rights reserved
        
*/
 
#define UDPCreate       20
#define UDPRead         21
#define UDPBfrReturn    22
#define UDPWrite        23
#define UDPRelease      24
#define UDPMaxMTUSize   25
#define UDPCtlMax       29
 
typedef enum UDPEventCode {
    UDPDataArrival = 1,
    UDPICMPReceived,
    lastUDPEvent = 65535
    };
 
typedef pascal void (*UDPNotifyProc) (
        StreamPtr udpStream, 
        unsigned short eventCode, 
        Ptr userDataPtr,
        struct ICMPReport *icmpMsg);
 
typedef void (*UDPIOCompletionProc) (struct UDPiopb *iopb);
 
typedef unsigned short  udp_port;
 
typedef struct UDPCreatePB {            /* for create and release calls */
    Ptr             rcvBuff;
    unsigned long   rcvBuffLen;
    UDPNotifyProc   notifyProc;
    unsigned short  localPort;
    Ptr             userDataPtr;
} UDPCreatePB;
    
typedef struct UDPSendPB {
    unsigned short  reserved;
    ip_addr         remoteHost;
    udp_port        remotePort;
    Ptr             wdsPtr;
    Boolean         checkSum;   
    unsigned short  sendLength;
    Ptr             userDataPtr;
} UDPSendPB;
    
typedef struct UDPReceivePB {       /* for receive and buffer return calls */
    unsigned short  timeOut;
    ip_addr         remoteHost;
    udp_port        remotePort;
    Ptr             rcvBuff;
    unsigned short  rcvBuffLen;
    unsigned short  secondTimeStamp;
    Ptr             userDataPtr;
} UDPReceivePB;
 
typedef struct UDPMTUPB {
    unsigned short  mtuSize;
    ip_addr         remoteHost;
    Ptr             userDataPtr;
} UDPMTUPB;
 
typedef struct UDPiopb {
    char                fill12[12];
    UDPIOCompletionProc ioCompletion;
    short               ioResult;
    char                *ioNamePtr;     
    short               ioVRefNum;      
    short               ioCRefNum;          
    short               csCode;
    StreamPtr           udpStream;              
    union {
        struct UDPCreatePB  create;
        struct UDPSendPB    send;
        struct UDPReceivePB receive;
        struct UDPMTUPB     mtu;
    } csParam;
} UDPiopb;