Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1035 lines
51 KiB

/* routines.h, /appletalk/ins, Garth Conboy, 10/04/88 */
/* Copyright (c) 1988 by Pacer Software Inc., La Jolla, CA */
/* GC - Initial coding.
GC - (02/20/90): The various MapAddressToXxxx routines need a "port"
argument.
GC - (02/07/92): "routersNode" is now an argument to GetNodeOnPort().
GC - (03/24/92): Return type change for AspGetSession() from
"AppleTalkErrorCode" to "long".
GC - (03/24/92): Added PapCancelGetNextJob() and AspCancelGetSession().
GC - (06/27/92): All buffers coming from user space are now "opaque," they
may or may not be "char *;" they are now typed as "void
*."
GC - (06/30/92): Added Ddp transmit completetion routine support.
GC - (09/17/92): Both OpenSocketOnNode() and AtpOpenSocketOnNode() now
return AppleTalkErrorCode's.
GC - (11/15/92): Integrated Nikki's (Microsoft) changes for adding event
handler support to Adsp and Dpp.
*** Make the PVCS source control system happy:
$Header$
$Log$
***
Pacer AppleTalk protocol stack routines.
*/
/* Routine declarations... */
extern void _near _fastcall AarpPacketIn(int port,
char far *routingInfo,
int routingInfoLength,
char far *packet,
int length);
extern void _near _fastcall DdpPacketIn(int port,
char far *packet,
int length,
Boolean freePacket,
Boolean extendedDdpHeader,
int sourceNode,
int destinationNode);
#if ArapIncluded
extern void ArapIncomingPacket(int port, char far *packet, int length);
extern void far ArapHandleIncomingConnection(int port);
extern void far ArapHandleConnectionDisconnect(int port);
extern void far TeardownConnection(int port);
extern void far ShutdownArap(void);
extern void far DecodeArapPacket(char far *direction,
int port,
char far *packet,
int length);
#endif
#if (Iam an OS2) or (Iam a DOS) or (Iam a WindowsNT)
extern void far CheckTimers(int sig);
#endif
extern void far UnloadAppleTalk(void);
extern void far StopTimerHandling(void);
#if Iam an AppleTalkRouter
extern void far ShutdownFullRtmp(void);
extern void far ShutdownFullZip(void);
extern void far ReleaseRoutingTable(void);
#endif
extern void far ShutdownErrorLogging(void);
extern void far ShutdownAarp(void);
extern void far ShutdownRtmpStub(void);
extern void far desdone(void); /* Public domain DES routine */
extern void far setkey(char *key); /* Public domain DES routine */
extern void far endes(char *block); /* Public domain DES routine */
extern void far dedes(char *block); /* Public domain DES routine */
#if Iam an AppleTalkRouter
extern void _near _fastcall Router(int port,
AppleTalkAddress source,
AppleTalkAddress destination,
int protocolType,
char far *datagram,
int datagramLength,
int numberOfHops,
Boolean prependHeadersInPlace);
#endif
extern void _near _fastcall InvokeSocketHandler(OpenSocket socket,
int port,
AppleTalkAddress source,
int protocolType,
char far *datagram,
int datagramLength,
AppleTalkAddress
actualDestination);
extern void far UnlinkOpenSocket(OpenSocket openSocket);
extern void far UnlinkActiveNode(ActiveNode activeNode);
#if Iam an AppleTalkRouter
extern void far UnlinkRoutingTableEntry(RoutingTableEntry routingTableEntry);
#endif
#if ArapIncluded
extern void UnlinkRemoteAccessInfo(RemoteAccessInfo remoteAccessInfo);
#endif
/* The following macros are used to insert variable trailing arguments into
the ErrorLog macro. */
#define Insert0() 0
#define Insert1(a1) 1, a1
#define Insert2(a1,a2) 2, a1, a2
#define Insert3(a1,a2,a3) 3, a1, a2, a3
#define Insert4(a1,a2,a3,a4) 4, a1, a2, a3, a4
#define Insert5(a1,a2,a3,a4,a5) 5, a1, a2, a3, a4, a5
#define Insert6(a1,a2,a3,a4,a5,a6) 6, a1, a2, a3, a4, a5, a6
#if Ihave an OutboardErrorTextFile
#define ErrorLog(routineName, severity, lineNumber, portNumber, \
errorCode, errorText, insertMacro) \
ErrorLogger(routineName, severity, lineNumber, portNumber, \
errorCode, insertMacro)
#else
#define ErrorLog(routineName, severity, lineNumber, portNumber, \
errorCode, errorText, insertMacro) \
ErrorLogger(routineName, severity, lineNumber, portNumber, \
errorCode, errorText, insertMacro)
#endif
extern void far ErrorLogger(const char far *routineName,
ErrorSeverity severity,
long lineNumber,
int portNumber,
int errorCode,
#if IdontHave an OutboardErrorTextFile
const char far *errorText,
#endif
int extraArgCount,
...);
extern void far CloseSocketOnNodeIfOpen(int port,
ExtendedAppleTalkNodeNumber node,
int actualSocket);
extern void far CloseLog(void);
extern void near NbpCloseSocket(OpenSocket openSocket);
#if (Iam an AppleTalkRouter) and Verbose
extern void near DumpRtmpRoutingTable(void);
#endif
extern void far DecodeEthernetPacket(char far *direction,
int port,
char far *packet);
extern void far DecodeDdpHeader(char far *packet);
#if not defined(DeferIncomingPackets)
extern void far DeferIncomingPackets(void);
extern void far HandleIncomingPackets(void);
#endif
extern void far FreeZoneList(ZoneList zoneList);
extern void far RegisterOurName(int port);
extern void far SavePRamAddress(int port, Boolean routersNode,
ExtendedAppleTalkNodeNumber node);
#if Iam an AppleTalkStack
#if not defined(DeferAtpPackets)
extern void near DeferAtpPackets(void);
extern void near HandleAtpPackets(void);
#endif
extern void far ShutdownAsp(void);
extern void far ShutdownPap(void);
#endif
extern Boolean far ShutdownPort(int port, Boolean force);
#if Iam an AppleTalkRouter
extern Boolean far StartRouterOnPort(int port);
extern Boolean far StopRouterOnPort(int port);
extern Boolean far StartRtmpProcessingOnPort(int port,
ExtendedAppleTalkNodeNumber
routerNode);
extern Boolean far StartZipProcessingOnPort(int port);
extern Boolean far RemoveFromRoutingTable(AppleTalkNetworkRange
networkRange);
#endif
#if ArapIncluded
Boolean far ArapCensorPacket(int port, char *packet, int length);
#endif
extern Boolean far Is802dot2headerGood(char far *packet,
char far *protocol);
extern Boolean far CheckNetworkRange(AppleTalkNetworkRange networkRange);
extern Boolean far RangesOverlap(AppleTalkNetworkRange *range1,
AppleTalkNetworkRange *range2);
extern Boolean far IsWithinNetworkRange(short unsigned networkNumber,
AppleTalkNetworkRange *range);
extern Boolean far WaitFor(int hundreths,
volatile Boolean far *stopFlag);
extern Boolean far Initialize(int numberOfPorts,
PortInfo portInfo[]);
extern Boolean far GleanAarpInfo(int port,
char far *sourceAddress,
int addressLength,
char far *routingInfo,
int routingInfoLength,
char far *packet,
int length);
extern Boolean far GetNetworkInfoForNode(int port,
ExtendedAppleTalkNodeNumber
extendedNode,
Boolean findDefaultZone);
extern Boolean far CompareCaseSensitive(register const char far *s1,
register const char far *s2);
extern Boolean far CompareCaseInsensitive(register const char far *s1,
register const char far *s2);
extern Boolean far FixedCompareCaseSensitive(const char far *s1,
int l1,
const char far *s2,
int l2);
extern Boolean far FixedCompareCaseInsensitive(const char far *s1,
int l1,
const char far *s2,
int l2);
extern Boolean far AarpForNodeOnPort(int port,
Boolean allowStartupRange,
Boolean serverNode,
ExtendedAppleTalkNodeNumber desiredNode,
ExtendedAppleTalkNodeNumber far *node);
extern Boolean far ExtendedAppleTalkNodesEqual(
ExtendedAppleTalkNodeNumber far *p1,
ExtendedAppleTalkNodeNumber far *p2);
extern Boolean far AppleTalkAddressesEqual(AppleTalkAddress far *p1,
AppleTalkAddress far *p2);
extern Boolean far RoutersNodeOnPort(int port,
ExtendedAppleTalkNodeNumber *extendedNode);
extern Boolean _near _fastcall TransmitDdp(int port,
AppleTalkAddress source,
AppleTalkAddress destination,
int protocol,
BufferDescriptor datagram,
int datagramLength,
int hopCount,
char far *knownMulticastAddress,
ExtendedAppleTalkNodeNumber
*transmitDestination,
TransmitCompleteHandler
*completionRotuine,
long unsigned userData);
#if Iam an AppleTalkRouter
extern char far * far MulticastAddressForZoneOnPort(int port,
char far *zone);
#endif
extern char far * far StringCopyReasonableAscii(register char far *dest,
register const char
far *source);
extern short far HashString(char far *string);
extern short far EncodeNbpTuple(NbpTuple far *tuple, char far *buffer);
extern int far desinit(int mode); /* Public domain DES routine */
extern int far FindDefaultPort(void);
#define ElementsOnList(head) \
NodesOnList(head, &(head)->next)
extern int far NodesOnList(void *listHead, void *next);
extern int far GetNextNbpIdForNode(long socket);
extern int far OrderCaseInsensitive(register const char far *s1,
register const char far *s2);
extern long far MapAddressToSocket(int port,
AppleTalkAddress address);
extern long far MapNisOnPortToSocket(int port);
extern long DecodeNbpTuple(void far *buffer, long offset,
Boolean bufferIsOpaque, NbpTuple far *tuple);
extern long far RandomNumber(void);
extern long far UniqueNumber(void);
#if ArapIncluded
extern AppleTalkErrorCode far ArapNewMaxConnectTime(int port,
long unsigned
maxConnectTime);
#endif
extern AppleTalkErrorCode far GetNodeOnPort(int port,
Boolean allowStartupRange,
Boolean serverNode,
Boolean routersNode,
ExtendedAppleTalkNodeNumber far
*node);
extern AppleTalkErrorCode far MapSocketToAddress(long socket,
AppleTalkAddress far *address);
extern AppleTalkErrorCode far GetMyZone(int port,
void far *opaqueBuffer,
GetMyZoneComplete *completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far GetZoneList(int port,
Boolean getLocalZones,
void far *opaqueBuffer,
int bufferSize,
GetZoneListComplete
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far
ReleaseNodeOnPort(int port,
ExtendedAppleTalkNodeNumber node);
extern AppleTalkErrorCode far
OpenSocketOnNode(long far *socketHandle,
int port,
ExtendedAppleTalkNodeNumber far *desiredNode,
int desiredSocket,
IncomingDdpHandler *handler,
long unsigned userData,
Boolean eventHandler,
char far *datagramBuffers,
int totalBufferSize,
AppleTalkAddress far *actualAddress);
extern AppleTalkErrorCode far CloseSocketOnNode(
long socket,
CloseCompletionRoutine far
*closeCompletionRoutine,
long unsigned closeUserData);
extern AppleTalkErrorCode far NewHandlerForSocket(long socket,
IncomingDdpHandler *handler,
long unsigned userData,
Boolean eventHandler);
extern AppleTalkErrorCode far SetCookieForSocket(long socket,
long unsigned cookie);
extern AppleTalkErrorCode far GetCookieForSocket(long socket,
long unsigned far *cookie);
extern AppleTalkErrorCode far DdpRead(long socket,
void far *opaqueDatagram,
long bufferLength,
IncomingDdpHandler *handler,
long unsigned userData);
extern AppleTalkErrorCode far DdpWrite(long sourceSocket,
AppleTalkAddress destination,
int protocol,
void far *opaqueDatagram,
long datagramLength,
TransmitCompleteHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far DeliverDdp(long sourceSocket,
AppleTalkAddress destination,
int protocol,
BufferDescriptor datagram,
int datagramLength,
char far *zoneMulticastAddress,
TransmitCompleteHandler
*completionRotuine,
long unsigned userData);
extern AppleTalkErrorCode far DeliverDdpOnPort(int sourcePort,
AppleTalkAddress source,
AppleTalkAddress destination,
int protocol,
BufferDescriptor datagram,
int datagramLength,
char far *zoneMulticastAddress,
TransmitCompleteHandler
*completionRotuine,
long unsigned userData);
extern AppleTalkErrorCode far NbpAction(WhyPending reason,
long socket,
char far *object,
char far *type,
char far *zone,
int nbpId,
int broadcastInterval,
int numberOfBroadcasts,
NbpCompletionHandler *completionRoutine,
long unsigned userData,
...);
extern AppleTalkErrorCode far NbpRemove(long socket,
char far *object,
char far *type,
char far *zone);
#if Iam an AppleTalkStack
extern AppleTalkErrorCode far AdspSetWindowSizes(long newSendWindow,
long newReceiveWindow);
extern AppleTalkErrorCode far AdspMaxCurrentSendSize(long refNum,
long far *size);
extern AppleTalkErrorCode far AdspMaxCurrentReceiveSize(long refNum,
long far *size,
Boolean far
*endOfMessage);
extern AppleTalkErrorCode far AdspCreateConnectionListener(
int port,
ExtendedAppleTalkNodeNumber
*desiredNode,
long existingDdpSocket,
int desiredSocket,
long far *listenerRefNum,
long far *socketHandle,
AdspConnectionEventHandler
far *eventHandler,
long unsigned eventContext);
extern AppleTalkErrorCode far AdspDeleteConnectionListener(
long listenerRefNum);
extern AppleTalkErrorCode far AdspSetConnectionEventHandler(
long listenerRefNum,
AdspConnectionEventHandler
far *eventHandler,
long unsigned eventContext);
extern AppleTalkErrorCode far AdspGetConnectionRequest(
long listenerRefNum,
long far *refNum,
AdspIncomingOpenRequestHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AdspCancelGetConnectionRequest(
long listenerRefNum,
long getConnectionRequestRefNum);
extern AppleTalkErrorCode AdspDenyConnectionRequest(
long listenerRefNum,
long refNum);
extern AppleTalkErrorCode AdspAcceptConnectionRequest(
long listenerRefNum,
long refNum,
long far *socketHandle,
int port,
ExtendedAppleTalkNodeNumber
*desiredNode,
int desiredSocket,
AdspOpenCompleteHandler
*completionRoutine,
long unsigned userData,
AdspReceiveEventHandler far
*receiveEventHandler,
long unsigned
receiveEventContext,
AdspReceiveAttnEventHandler far
*receiveAttentionEventHandler,
long unsigned
receiveAttentionEventContext,
AdspSendOkayEventHandler far
*sendOkayEventHandler,
long unsigned
sendOkayEventContext,
AdspDisconnectEventHandler far
*disconnectEventHandler,
long unsigned
disconnectEventContext);
extern AppleTalkErrorCode far AdspOpenConnectionOnNode(
AdspOpenType openType,
long far *socketHandle,
int port,
ExtendedAppleTalkNodeNumber
*desiredNode,
int desiredSocket,
AppleTalkAddress remoteAddress,
long far *refNum,
AdspOpenCompleteHandler
*completionRoutine,
long unsigned userData,
AdspReceiveEventHandler far
*receiveEventHandler,
long unsigned
receiveEventContext,
AdspReceiveAttnEventHandler far
*receiveAttentionEventHandler,
long unsigned
receiveAttentionEventContext,
AdspSendOkayEventHandler far
*sendOkayEventHandler,
long unsigned
sendOkayEventContext,
AdspDisconnectEventHandler far
*disconnectEventHandler,
long unsigned
disconnectEventContext);
extern AppleTalkErrorCode AdspSetDataEventHandlers(
long refNum,
AdspReceiveEventHandler far
*receiveEventHandler,
long unsigned
receiveEventContext,
AdspReceiveAttnEventHandler far
*receiveAttentionEventHandler,
long unsigned
receiveAttentionEventContext,
AdspSendOkayEventHandler far
*sendOkayEventHandler,
long unsigned
sendOkayEventContext,
AdspDisconnectEventHandler far
*disconnectEventHandler,
long unsigned
disconnectEventContext);
extern AppleTalkErrorCode far AdspCloseConnection(long refNum,
Boolean remoteClose);
extern AppleTalkErrorCode far AdspSetCookieForConnection(long refNum,
long unsigned
cookie);
extern AppleTalkErrorCode far AdspGetCookieForConnection(long refNum,
long unsigned far
*cookie);
extern AppleTalkErrorCode far AdspForwardReset(long refNum,
AdspForwardResetAckHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AdspSend(long refNum,
void far *opaqueBuffer,
long bufferSize,
Boolean endOfMessage,
Boolean flushFlag,
long far *bytesSent);
extern AppleTalkErrorCode far AdspReceive(long refNum,
void far *opaqueBuffer,
long bufferSize,
AdspReceiveHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AdspPeek(long refNum,
void far *opaqueBuffer,
long bufferSize,
long far *bytesReturned,
Boolean *endOfMessage);
extern AppleTalkErrorCode far AdspGetAnything(long refNum,
void far *opaqueBuffer,
long bufferSize,
AdspGetAnythingHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far
AtpOpenSocketOnNode(long far *socketHandle,
int port,
ExtendedAppleTalkNodeNumber *desiredNode,
int desiredSocket,
char far *datagramBuffers,
int totalBufferSize);
extern AppleTalkErrorCode far
AtpCloseSocketOnNode(long socket,
CloseCompletionRoutine far
*closeCompletionRoutine,
long unsigned closeUserData);
extern AppleTalkErrorCode far AtpSetCookieForSocket(long socket,
long unsigned cookie);
extern AppleTalkErrorCode far AtpGetCookieForSocket(long socket,
long unsigned far
*cookie);
extern AppleTalkErrorCode far AdspGetAttention(long refNum,
void far *opaqueBuffer,
long bufferSize,
AdspIncomingAttentionRoutine
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AdspSendAttention(long refNum,
short unsigned attentionCode,
void far
*attentionOpaqueBuffer,
int attentionBufferSize,
AdspAttentionAckHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AtpEnqueueRequestHandler(
long far *requestHandlerId,
long socket,
void far *opaqueBuffer,
int bufferSize,
char far *userBytes,
AtpIncomingRequestHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AtpCancelRequestHandler(long socket,
long requestHandlerId,
Boolean
cancelDueToClose);
extern AppleTalkErrorCode far AtpCancelRequest(long socket,
short unsigned transactionId,
Boolean cancelDueToClose);
extern AppleTalkErrorCode far AtpCancelResponse(long socket,
AppleTalkAddress destination,
short unsigned transactionId,
Boolean cancelDueToClose);
extern AppleTalkErrorCode far AtpPostRequest(long sourceSocket,
AppleTalkAddress destination,
short unsigned
*transactionIdUsed,
void far *requestOpaqueBuffer,
int requestBufferSize,
char far *requestUserBytes,
Boolean exactlyOnce,
void far *responseOpaqueBuffer,
int responseBufferSize,
char far *responseUserBytes,
int retryCount,
int retryInterval,
TRelTimerValue trelTimerValue,
AtpIncomingResponseHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AtpPostResponse(long sourceSocket,
AppleTalkAddress destination,
short unsigned transactionId,
void far *responseOpaqueBuffer,
int responseBufferSize,
char far *responseUserBytes,
Boolean exactlyOnce,
AtpIncomingReleaseHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode near AtpMaximumSinglePacketDataSize(
long socket,
short maximumSinglePacketDataSize);
extern AppleTalkErrorCode near AspGetParams(int far *maxCommandSize,
int far *quantumSize);
extern AppleTalkErrorCode AspSetCookieForSession(long sessionRefNum,
long unsigned cookie);
extern AppleTalkErrorCode AspGetCookieForSession(long sessionRefNum,
long unsigned far *cookie);
extern AppleTalkErrorCode far AspCreateSessionListenerOnNode
(int port,
long existingAtpSocket,
int desiredSocket,
long *sessionListenerRefNum,
long *socket);
extern AppleTalkErrorCode far AspDeleteSessionListener
(long sessionListenerRefNum,
CloseCompletionRoutine far *closeCompletionRoutine,
long unsigned closeUserData);
extern AppleTalkErrorCode far AspGetSession(long sessionListenerRefNum,
Boolean privateSocket,
long *getSessionRefNum,
AspIncomingSessionOpenHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspCancelGetSession(long sessionListenerRefNum,
long getSessionRefNum);
extern AppleTalkErrorCode far AspOpenSessionOnNode
(int port,
long existingAtpSocket,
int desiredSocket,
AppleTalkAddress serverAddress,
long *ourSocket,
AspIncomingOpenReplyHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspSetStatus(long sessionListenerRefNum,
void far *serviceStatusOpaque,
int serviceStatusSize);
extern AppleTalkErrorCode far AspGetStatus(long ourSocket,
AppleTalkAddress serverAddress,
void far *opaqueBuffer,
int bufferSize,
AspIncomingStatusHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspCloseSession(long sessionRefNum,
CloseCompletionRoutine far
*closeCompletionRoutine,
long unsigned closeUserData,
Boolean remoteClose);
extern AppleTalkErrorCode far AspSendAttention(long sessionRefNum,
short unsigned attentionData);
extern AppleTalkErrorCode far AspGetAttention(long sessionRefNum,
AspIncomingAttentionHandler
*handler,
long unsigned userData);
extern AppleTalkErrorCode far AspGetRequest(long sessionRefNum,
void far *opaqueBuffer,
int bufferSize,
AspIncomingCommandHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspGetAnyRequest(long sessionListenerRefNum,
void far *opaqueBuffer,
int bufferSize,
AspIncomingCommandHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspReply(long sessionRefNum,
long getRequestRefNum,
short requestType,
char far *resultCode,
void far *opaqueBuffer,
int bufferSize,
AspReplyCompleteHandler
*competionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspWriteContinue(long sessionRefNum,
long getRequestRefNum,
void far *opaqueBuffer,
int bufferSize,
AspIncomingWriteDataHandler
*competionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspCommand(long sessionRefNum,
void far *opaqueCommandBuffer,
int commandBufferSize,
char far *resultCode,
void far *opaqueReplyBuffer,
int replyBufferSize,
AspWriteOrCommCompleteHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far AspWrite(long sessionRefNum,
void far *opaqueCommandBuffer,
int commandBufferSize,
void far *opaqueWriteBuffer,
int writeBufferSize,
char far *resultCode,
void far *opaqueReplyBuffer,
int replyBufferSize,
AspWriteOrCommCompleteHandler
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far
PapCreateServiceListenerOnNode(int port,
long existingAtpSocket,
int desiredSocket,
char far *object,
char far *type,
char far *zone,
short serverQuantum,
long far *returnSocket,
long far
*serviceListenerRefNum,
PapNbpRegisterComplete
*completionRoutine,
long unsigned userData,
StartJobHandler
*startJobRoutine,
long unsigned
startJobUserData);
extern AppleTalkErrorCode far
PapSetConnectionEventHandler(long serviceListenerRefNum,
StartJobHandler
*startJobRoutine,
long unsigned
startJobUserData);
extern AppleTalkErrorCode far
PapDeleteServiceListener(long serviceListenerRefNum,
CloseCompletionRoutine far
*closeCompletionRoutine,
long unsigned closeUserData);
extern AppleTalkErrorCode far PapRegisterName(long serviceListenerRefNum,
char far *object,
char far *type,
char far *zone,
PapNbpRegisterComplete
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far PapRemoveName(long serviceListenerRefNum,
char far *object,
char far *type,
char far *zone);
extern AppleTalkErrorCode far PapOpenJobOnNode(int port,
long existingAtpSocket,
int desiredSocket,
long far *jobRefNum,
AppleTalkAddress
*serverListenerAddress,
char far *object,
char far *type,
char far *zone,
short workstationQuantum,
void far *opaqueStatusBuffer,
SendPossibleHandler
*sendPossibleRoutine,
long unsigned
sendPossibleUserData,
CloseJobHandler
*closeJobRoutine,
long unsigned closeJobUserData,
PapOpenComplete
*completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far PapCloseJob(long jobRefNum,
CloseCompletionRoutine far
*closeCompletionRoutine,
long unsigned closeUserData,
Boolean remoteClose,
Boolean closedByConnectionTimer);
extern AppleTalkErrorCode far PapGetRemoteAddressForJob(
long jobRefNum,
AppleTalkAddress *remoteAddress);
extern AppleTalkErrorCode far PapSetCookieForJob(long jobRefNum,
long unsigned cookie);
extern AppleTalkErrorCode far PapGetCookieForJob(long jobRefNum,
long unsigned far *cookie);
extern AppleTalkErrorCode far PapHereIsStatus(long serviceListenerRefNum,
void far *opaqueStatusBuffer,
int statusSize);
extern AppleTalkErrorCode far PapGetStatus(long jobRefNum,
AppleTalkAddress far
*serverAddress,
char far *object,
char far *type,
char far *zone,
void far *opaqueStatusBuffer,
PapGetStatusComplete
*completionRotuine,
long unsigned userData);
extern AppleTalkErrorCode far PapGetNextJob(long serviceListenerRefNum,
long far *jobRefNum,
StartJobHandler *startJobRoutine,
long unsigned startJobUserData,
CloseJobHandler *closeJobRoutine,
long unsigned closeJobUserData);
extern AppleTalkErrorCode far PapCancelGetNextJob(long serviceListenerRefNum,
long jobRefNum,
Boolean
sessionListenerClosing);
extern AppleTalkErrorCode far PapAcceptJob(long jobRefNum,
SendPossibleHandler
*sendPossibleRoutine,
long unsigned
sendPossibleUserData,
CloseJobHandler
*closeJobRoutine,
long unsigned closeJobUserData);
extern AppleTalkErrorCode far PapRead(long jobRefNum,
void far *opaqueBuffer,
long bufferSize,
PapReadComplete *completionRoutine,
long unsigned userData);
extern AppleTalkErrorCode far PapWrite(long jobRefNum,
void far *opaqueBuffer,
long bufferSize,
Boolean eofFlag,
PapWriteComplete *completionRoutine,
long unsigned userData);
extern Boolean far PapSendCreditAvailable(long jobRefNum);
#endif
extern OpenSocket far MapAddressToOpenSocket(int port,
AppleTalkAddress address);
extern OpenSocket far MapSocketToOpenSocket(long socket);
#if Iam an AppleTalkRouter
extern RoutingTableEntry far FindInRoutingTable(short unsigned networkNumber);
#endif
extern IncomingDdpHandler NbpPacketIn;
extern IncomingDdpHandler RtmpPacketIn;
extern IncomingDdpHandler ZipPacketIn;
extern IncomingDdpHandler EpPacketIn;
#if Iam an AppleTalkRouter
extern IncomingDdpHandler RtmpPacketInRouter;
extern IncomingDdpHandler ZipPacketInRouter;
#endif
#if Iam an OS2
extern IncomingDdpHandler Ring0Handler;
#endif
extern ZoneList far CopyZoneList(ZoneList zoneList);
extern ZoneList far AddZoneToList(ZoneList zoneList,
char far *zone);
#if Iam an AppleTalkRouter
extern UniqueZone far LinkZone(char far *zone);
extern void far UnlinkZone(UniqueZone zone);
extern Boolean far ZoneInZones(char far *zone, Zones zones);
extern Zones far AddZoneToZones(Zones zones, char far *zone);
extern void far FreeZones(Zones zones);
extern Zones far ZoneListToZones(ZoneList zoneList);
extern Zones far CopyZones(Zones zones);
#endif
extern BufferDescriptor far BuildAarpProbeTo(int port,
int hardwareLength,
ExtendedAppleTalkNodeNumber
nodeAddress,
int far *packetLength);
extern BufferDescriptor far BuildAarpRequestTo(int port,
int hardwareLength,
ExtendedAppleTalkNodeNumber
sourceNode,
ExtendedAppleTalkNodeNumber
destinationNode,
int far *packetLength);
extern BufferDescriptor far BuildAarpResponseTo(int port,
int hardwareLength,
char far *hardwareAddress,
char far *routingInfo,
int routingInfoLength,
ExtendedAppleTalkNodeNumber
sourceNode,
ExtendedAppleTalkNodeNumber
destinationNode,
int far *packetLength);