Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
ATQCGlue.c
/******************************************************************************** |
file: ATQCGlue.c |
********************************************************************************/ |
#include <Types.h> |
#include <AppleTalk.h> |
/*---------------------------------------------------------------------- |
Network Transition Info Record |
----------------------------------------------------------------------*/ |
typedef struct TNetworkTransition { |
Ptr private; /* pointer to private structure */ |
ProcPtr netValidProc; /* pointer to network validation procedure */ |
Boolean newConnectivity; /* true = new connection, */ |
/* false = loss of connection */ |
} |
TNetworkTransition , *TNetworkTransitionPtr, **TNetworkTransitionHdl; |
typedef pascal long (*NetworkTransitionProcPtr)(TNetworkTransitionPtr netTrans, \ |
unsigned long theNet); |
/*---------------------------------------------------------------------- |
AppleTalk Transition Queue Element |
----------------------------------------------------------------------*/ |
typedef struct myATQEntry { |
Ptr qLink; /* -> next queue element */ |
short qType; /* unused */ |
ProcPtr CallAddr; /* -> transition procedure */ |
Ptr globs; /* -> to user defined globals */ |
} |
myATQEntry, *myATQEntryPtr, **myATQEntryHdl; |
/*---------------------------------------------------------------------- |
Prototypes |
----------------------------------------------------------------------*/ |
pascal long ATQueueProc (long selector, myATQEntry *q, void *p); |
long CALLTRANSQUEUE(long selector, myATQEntry *q, void *p); |
/* Capitalize CALLTRANSQUEUE so that linker can match this entry with */ |
/* the pascal call */ |
pascal long CallNetValidProc(ProcPtr p, TNetworkTransitionPtr netTrans, long theNet); |
long CALLTRANSQUEUE(long selector, myATQEntry *q, void *p) |
/* CallTransQueue sets up the pascal stack for the SampleTransQueue handler */ |
/* then puts the result into D0 */ |
{ |
return(ATQueueProc(selector, q, p)); |
} |
pascal long CallNetValidProc(ProcPtr p, TNetworkTransitionPtr netTrans, long theNet) |
/* CallNetValidProc is used to call the netValidProc pointed to by ProcPtr p. */ |
{ |
NetworkTransitionProcPtr myNTProcPtr; |
myNTProcPtr = (NetworkTransitionProcPtr)p; |
return ((*myNTProcPtr)(netTrans, theNet)); |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14