topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-AppleTalk.h / h
/*
File: AppleTalk.h
Contains: AppleTalk Interfaces.
Version: Technology: System 8.5
Release: QuickTime 6.0.2
Copyright: (c) 1985-2001 by Apple Computer, Inc., all rights reserved
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
ifndef __APPLETALK__
define __APPLETALK__
ifndef __MACTYPES__
include <MacTypes.h>
endif
ifndef __OSUTILS__
include <OSUtils.h>
endif
if PRAGMA_ONCE
#pragma once
endif
ifdef __cplusplus
extern "C" {
endif
if PRAGMA_IMPORT
#pragma import on
endif
if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
endif
enum {
/* Driver unit numbers (ADSP is dynamic) */
mppUnitNum = 9, /* MPP unit number */
atpUnitNum = 10, /* ATP unit number */
xppUnitNum = 40 /* XPP unit number */
};
enum {
/* Driver refNums (ADSP is dynamic) */
mppRefNum = -10, /* MPP reference number */
atpRefNum = -11, /* ATP reference number */
xppRefNum = -41 /* XPP reference number */
};
enum {
/* .MPP csCodes */
lookupReply = 242, /* This command queued to ourself */
writeLAP = 243, /* Write out LAP packet */
detachPH = 244, /* Detach LAP protocol handler */
attachPH = 245, /* Attach LAP protocol handler */
writeDDP = 246, /* Write out DDP packet */
closeSkt = 247, /* Close DDP socket */
openSkt = 248, /* Open DDP socket */
loadNBP = 249, /* Load NBP command-executing code */
lastResident = 249, /* Last resident command */
confirmName = 250, /* Confirm name */
lookupName = 251, /* Look up name on internet */
removeName = 252, /* Remove name from Names Table */
registerName = 253, /* Register name in Names Table */
killNBP = 254, /* Kill outstanding NBP request */
unloadNBP = 255, /* Unload NBP command code */
setSelfSend = 256, /* MPP: Set to allow writes to self */
SetMyZone = 257, /* Set my zone name */
GetATalkInfo = 258, /* get AppleTalk information */
ATalkClosePrep = 259 /* AppleTalk close query */
};
enum {
/* .ATP csCodes */
nSendRequest = 248, /* NSendRequest code */
relRspCB = 249, /* Release RspCB */
closeATPSkt = 250, /* Close ATP socket */
addResponse = 251, /* Add response code | Require open skt */
sendResponse = 252, /* Send response code */
getRequest = 253, /* Get request code */
openATPSkt = 254, /* Open ATP socket */
sendRequest = 255, /* Send request code */
relTCB = 256, /* Release TCB */
killGetReq = 257, /* Kill GetRequest */
killSendReq = 258, /* Kill SendRequest */
killAllGetReq = 259 /* Kill all getRequests for a skt */
};
enum {
/* .XPP csCodes */
openSess = 255, /* Open session */
closeSess = 254, /* Close session */
userCommand = 253, /* User command */
userWrite = 252, /* User write */
getStatus = 251, /* Get status */
afpCall = 250, /* AFP command (buffer has command code) */
getParms = 249, /* Get parameters */
abortOS = 248, /* Abort open session request */
closeAll = 247, /* Close all open sessions */
xCall = 246 /* .XPP extended calls */
};
enum {
/* Transition Queue transition types */
ATTransOpen = 0, /*AppleTalk has opened*/
ATTransClose = 2, /*AppleTalk is about to close*/
ATTransClosePrep = 3, /*Is it OK to close AppleTalk ?*/
ATTransCancelClose = 4 /*Cancel the ClosePrep transition*/
};
enum {
afpByteRangeLock = 1, /*AFPCall command codes*/
afpVolClose = 2, /*AFPCall command codes*/
afpDirClose = 3, /*AFPCall command codes*/
afpForkClose = 4, /*AFPCall command codes*/
afpCopyFile = 5, /*AFPCall command codes*/
afpDirCreate = 6, /*AFPCall command codes*/
afpFileCreate = 7, /*AFPCall command codes*/
afpDelete = 8, /*AFPCall command codes*/
afpEnumerate = 9, /*AFPCall command codes*/
afpFlush = 10, /*AFPCall command codes*/
afpForkFlush = 11, /*AFPCall command codes*/
afpGetDirParms = 12, /*AFPCall command codes*/
afpGetFileParms = 13, /*AFPCall command codes*/
afpGetForkParms = 14, /*AFPCall command codes*/
afpGetSInfo = 15, /*AFPCall command codes*/
afpGetSParms = 16, /*AFPCall command codes*/
afpGetVolParms = 17, /*AFPCall command codes*/
afpLogin = 18, /*AFPCall command codes*/
afpContLogin = 19, /*AFPCall command codes*/
afpLogout = 20, /*AFPCall command codes*/
afpMapID = 21, /*AFPCall command codes*/
afpMapName = 22, /*AFPCall command codes*/
afpMove = 23, /*AFPCall command codes*/
afpOpenVol = 24, /*AFPCall command codes*/
afpOpenDir = 25, /*AFPCall command codes*/
afpOpenFork = 26, /*AFPCall command codes*/
afpRead = 27, /*AFPCall command codes*/
afpRename = 28, /*AFPCall command codes*/
afpSetDirParms = 29, /*AFPCall command codes*/
afpSetFileParms = 30, /*AFPCall command codes*/
afpSetForkParms = 31, /*AFPCall command codes*/
afpSetVolParms = 32, /*AFPCall command codes*/
afpWrite = 33, /*AFPCall command codes*/
afpGetFlDrParms = 34, /*AFPCall command codes*/
afpSetFlDrParms = 35, /*AFPCall command codes*/
afpDTOpen = 48, /*AFPCall command codes*/
afpDTClose = 49, /*AFPCall command codes*/
afpGetIcon = 51, /*AFPCall command codes*/
afpGtIcnInfo = 52, /*AFPCall command codes*/
afpAddAPPL = 53, /*AFPCall command codes*/
afpRmvAPPL = 54, /*AFPCall command codes*/
afpGetAPPL = 55, /*AFPCall command codes*/
afpAddCmt = 56, /*AFPCall command codes*/
afpRmvCmt = 57, /*AFPCall command codes*/
afpGetCmt = 58, /*AFPCall command codes*/
afpAddIcon = 192 /*Special code for ASP Write commands*/
};
enum {
xppLoadedBit = 5, /* XPP bit in PortBUse */
scbMemSize = 192, /* Size of memory for SCB */
xppFlagClr = 0 /* Cs for AFPCommandBlock */
};
enum {
xppFlagSet = 128 /* StartEndFlag & NewLineFlag fields. */
};
enum {
lapSize = 20,
ddpSize = 26,
nbpSize = 26,
atpSize = 56
};
enum {
atpXOvalue = 32, /*ATP exactly-once bit */
atpEOMvalue = 16, /*ATP End-Of-Message bit */
atpSTSvalue = 8, /*ATP Send-Transmission-Status bit */
atpTIDValidvalue = 2, /*ATP trans. ID valid bit */
atpSendChkvalue = 1 /*ATP send checksum bit */
};
enum {
zipGetLocalZones = 5,
zipGetZoneList = 6,
zipGetMyZone = 7
};
enum {
LAPMgrPtr = 0x0B18 /*Entry point for LAP Manager*/
};
enum {
LAPMgrCall = 2, /*Offset to LAP routines*/
LAddAEQ = 23, /*LAPAddATQ routine selector*/
LRmvAEQ = 24 /*LAPRmvATQ routine selector*/
};
define MPPioCompletion MPP.ioCompletion
define MPPioResult MPP.ioResult
define MPPioRefNum MPP.ioRefNum
define MPPcsCode MPP.csCode
define LAPprotType LAP.protType
define LAPwdsPointer LAP.u.wdsPointer
define LAPhandler LAP.u.handler
define DDPsocket DDP.socket
define DDPchecksumFlag DDP.checksumFlag
define DDPwdsPointer DDP.u.wdsPointer
define DDPlistener DDP.u.listener
define NBPinterval NBP.interval
define NBPcount NBP.count
define NBPntQElPtr NBP.nbpPtrs.ntQElPtr
define NBPentityPtr NBP.nbpPtrs.entityPtr
define NBPverifyFlag NBP.parm.verifyFlag
define NBPretBuffPtr NBP.parm.Lookup.retBuffPtr
define NBPretBuffSize NBP.parm.Lookup.retBuffSize
define NBPmaxToGet NBP.parm.Lookup.maxToGet
define NBPnumGotten NBP.parm.Lookup.numGotten
define NBPconfirmAddr NBP.parm.Confirm.confirmAddr
define NBPnKillQEl NBPKILL.nKillQEl
define NBPnewSocket NBP.parm.Confirm.newSocket
define ATPioCompletion ATP.ioCompletion
define ATPioResult ATP.ioResult
define ATPuserData ATP.userData
define ATPreqTID ATP.reqTID
define ATPioRefNum ATP.ioRefNum
define ATPcsCode ATP.csCode
define ATPatpSocket ATP.atpSocket
define ATPatpFlags ATP.atpFlags
define ATPaddrBlock ATP.addrBlock
define ATPreqLength ATP.reqLength
define ATPreqPointer ATP.reqPointer
define ATPbdsPointer ATP.bdsPointer
define ATPtimeOutVal SREQ.timeOutVal
define ATPnumOfResps SREQ.numOfResps
define ATPretryCount SREQ.retryCount
define ATPnumOfBuffs OTH1.u.numOfBuffs
define ATPbitMap OTH1.u.bitMap
define ATPrspNum OTH1.u.rspNum
define ATPbdsSize OTH2.bdsSize
define ATPtransID OTH2.transID
define ATPaKillQEl KILL.aKillQEl
enum {
tLAPRead = 0,
tLAPWrite = 1,
tDDPRead = 2,
tDDPWrite = 3,
tNBPLookup = 4,
tNBPConfirm = 5,
tNBPRegister = 6,
tATPSndRequest = 7,
tATPGetRequest = 8,
tATPSdRsp = 9,
tATPAddRsp = 10,
tATPRequest = 11,
tATPResponse = 12
};
typedef SInt8 ABCallType;
enum {
lapProto = 0,
ddpProto = 1,
nbpProto = 2,
atpProto = 3
};
typedef UInt8 ABProtoType;
typedef Byte ABByte;
struct LAPAdrBlock {
UInt8 dstNodeID;
UInt8 srcNodeID;
ABByte lapProtType;
UInt8 filler; /* Filler for proper byte alignment*/
};
typedef struct LAPAdrBlock LAPAdrBlock;
typedef struct ATQEntry ATQEntry;
typedef ATQEntry * ATQEntryPtr;
typedef CALLBACK_API_C( long , ATalkTransitionEventProcPtr )(long eventCode, ATQEntryPtr qElem, void *eventParameter);
typedef STACK_UPP_TYPE(ATalkTransitionEventProcPtr) ATalkTransitionEventUPP;
typedef ATalkTransitionEventUPP ATalkTransitionEvent;
struct ATQEntry {
struct ATQEntry * qLink; /*next queue entry*/
short qType; /*queue type*/
ATalkTransitionEventUPP CallAddr; /*your routine descriptor*/
};
/*
Real definition of EntityName is 3 PACKED strings of any length (32 is just an example). No
offests for Asm since each String address must be calculated by adding length byte to last string ptr.
In Pascal, String(32) will be 34 bytes long since fields never start on an odd byte unless they are
only a byte long. So this will generate correct looking interfaces for Pascal and C, but they will not
be the same, which is OK since they are not used.
*/
struct EntityName {
Str32Field objStr;
Str32Field typeStr;
Str32Field zoneStr;
};
typedef struct EntityName EntityName;
typedef EntityName * EntityPtr;
struct AddrBlock {
UInt16 aNet;
UInt8 aNode;
UInt8 aSocket;
};
typedef struct AddrBlock AddrBlock;
struct RetransType {
UInt8 retransInterval;
UInt8 retransCount;
};
typedef struct RetransType RetransType;
struct BDSElement {
short buffSize;
void * buffPtr;
short dataSize;
long userBytes;
};
typedef struct BDSElement BDSElement;
typedef BDSElement BDSType[8];
typedef BDSElement * BDSPtr;
typedef char BitMapType;
struct ATLAPRec {
ABCallType abOpcode;
SInt8 filler; /* Filler for proper byte alignment*/
short abResult;
long abUserReference;
LAPAdrBlock lapAddress;
short lapReqCount;
short lapActCount;
void * lapDataPtr;
};
typedef struct ATLAPRec ATLAPRec;
typedef ATLAPRec * ATLAPRecPtr;
typedef ATLAPRecPtr * ATLAPRecHandle;
struct ATDDPRec {
ABCallType abOpcode;
SInt8 filler; /* Filler for proper byte alignment*/
short abResult;
long abUserReference;
short ddpType;
short ddpSocket;
AddrBlock ddpAddress;
short ddpReqCount;
short ddpActCount;
void * ddpDataPtr;
short ddpNodeID;
};
typedef struct ATDDPRec ATDDPRec;
typedef ATDDPRec * ATDDPRecPtr;
typedef ATDDPRecPtr * ATDDPRecHandle;
struct ATNBPRec {
ABCallType abOpcode;
SInt8 filler; /* Filler for proper byte alignment*/
short abResult;
long abUserReference;
EntityPtr nbpEntityPtr;
void * nbpBufPtr;
short nbpBufSize;
short nbpDataField;
AddrBlock nbpAddress;
RetransType nbpRetransmitInfo;
};
typedef struct ATNBPRec ATNBPRec;
typedef ATNBPRec * ATNBPRecPtr;
typedef ATNBPRecPtr * ATNBPRecHandle;
struct ATATPRec {
ABCallType abOpcode;
SInt8 filler1; /* Filler for proper byte alignment*/
short abResult;
long abUserReference;
short atpSocket;
AddrBlock atpAddress;
short atpReqCount;
void * atpDataPtr;
BDSPtr atpRspBDSPtr;
BitMapType atpBitMap;
SInt8 filler2; /* Filler for proper byte alignment*/
short atpTransID;
short atpActCount;
long atpUserData;
Boolean atpXO;
Boolean atpEOM;
short atpTimeOut;
short atpRetries;
short atpNumBufs;
short atpNumRsp;
short atpBDSSize;
long atpRspUData;
void * atpRspBuf;
short atpRspSize;
};
typedef struct ATATPRec ATATPRec;
typedef ATATPRec * ATATPRecPtr;
typedef ATATPRecPtr * ATATPRecHandle;
struct AFPCommandBlock {
UInt8 cmdByte;
UInt8 startEndFlag;
short forkRefNum;
long rwOffset;
long reqCount;
UInt8 newLineFlag;
char newLineChar;
};
typedef struct AFPCommandBlock AFPCommandBlock;
typedef union MPPParamBlock MPPParamBlock;
typedef union ATPParamBlock ATPParamBlock;
typedef union XPPParamBlock XPPParamBlock;
typedef MPPParamBlock * MPPPBPtr;
typedef ATPParamBlock * ATPPBPtr;
typedef XPPParamBlock * XPPParmBlkPtr;
typedef CALLBACK_API( void , MPPCompletionProcPtr )(MPPPBPtr thePBptr);
/*
WARNING: MPPCompletionProcPtr uses register based parameters under classic 68k
and cannot be written in a high-level language without
the help of mixed mode or assembly glue.
*/
typedef CALLBACK_API( void , ATPCompletionProcPtr )(ATPPBPtr thePBptr);
/*
WARNING: ATPCompletionProcPtr uses register based parameters under classic 68k
and cannot be written in a high-level language without
the help of mixed mode or assembly glue.
*/
typedef CALLBACK_API( void , XPPCompletionProcPtr )(XPPParmBlkPtr thePBptr);
/*
WARNING: XPPCompletionProcPtr uses register based parameters under classic 68k
and cannot be written in a high-level language without
the help of mixed mode or assembly glue.
*/
typedef CALLBACK_API( void , AttnRoutineProcPtr )(short sessRefnum, short attnBytes);
/*
WARNING: AttnRoutineProcPtr uses register based parameters under classic 68k
and cannot be written in a high-level language without
the help of mixed mode or assembly glue.
*/
typedef REGISTER_UPP_TYPE(MPPCompletionProcPtr) MPPCompletionUPP;
typedef REGISTER_UPP_TYPE(ATPCompletionProcPtr) ATPCompletionUPP;
typedef REGISTER_UPP_TYPE(XPPCompletionProcPtr) XPPCompletionUPP;
typedef REGISTER_UPP_TYPE(AttnRoutineProcPtr) AttnRoutineUPP;
struct WDSElement {
short entryLength;
Ptr entryPtr;
};
typedef struct WDSElement WDSElement;
struct NTElement {
AddrBlock nteAddress; /*network address of entity*/
SInt8 filler;
SInt8 entityData[99]; /*Object, Type & Zone*/
};
typedef struct NTElement NTElement;
struct NamesTableEntry {
Ptr qNext; /*ptr to next NTE*/
NTElement nt;
};
typedef struct NamesTableEntry NamesTableEntry;
typedef CALLBACK_API( Boolean , MPPProtocolHandlerProcPtr )(Ptr SCCAddr1, Ptr SCCAddr2, Ptr MPPLocalVars, Ptr nextFreeByteInRHA, Ptr ReadPacketAndReadRestPtr, short numBytesLeftToReadInPacket);
typedef CALLBACK_API( Boolean , DDPSocketListenerProcPtr )(Ptr SCCAddr1, Ptr SCCAddr2, Ptr MPPLocalVars, Ptr nextFreeByteInRHA, Ptr ReadPacketAndReadRestPtr, UInt8 packetDestinationNumber, short numBytesLeftToReadInPacket);
typedef STACK_UPP_TYPE(MPPProtocolHandlerProcPtr) MPPProtocolHandlerUPP;
typedef STACK_UPP_TYPE(DDPSocketListenerProcPtr) DDPSocketListenerUPP;
/*
MPPProtocolHandlerProcs and DDPSocketListenerProcs cannot be written
in or called from a high-level language without the help of mixed mode
or assembly glue because they use the following parameter-passing conventions:
typedef Boolean (*MPPProtocolHandlerProcPtr)(Ptr SCCAddr1, Ptr SCCAddr2,
Ptr MPPLocalVars, Ptr nextFreeByteInRHA, Ptr ReadPacketAndReadRestPtr,
short numBytesLeftToReadInPacket);
In:
=> SCCAddr1 A0.L
=> SCCAddr2 A1.L
=> MPPLocalVars A2.L
=> nextFreeByteInRHA A3.L
=> ReadPacketAndReadRestPtr A4.L
=> numBytesLeftToReadInPacket D1.W
Out:
<= Boolean Z bit of CCR
typedef Boolean (*DDPSocketListenerProcPtr)(Ptr SCCAddr1, Ptr SCCAddr2,
Ptr MPPLocalVars, Ptr nextFreeByteInRHA, Ptr ReadPacketAndReadRestPtr,
UInt8 packetDestinationNumber, short numBytesLeftToReadInPacket);
In:
=> SCCAddr1 A0.L
=> SCCAddr2 A1.L
=> MPPLocalVars A2.L
=> nextFreeByteInRHA A3.L
=> ReadPacketAndReadRestPtr A4.L
=> packetDestinationNumber D0.B
=> numBytesLeftToReadInPacket D1.W
Out:
<= Boolean Z bit of CCR
*/
struct MPPparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
};
typedef struct MPPparms MPPparms;
struct LAPparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 protType; /*ALAP protocol Type */
UInt8 filler;
union {
void * wdsPointer; /*-> write data structure*/
MPPProtocolHandlerUPP handler; /*-> protocol handler routine*/
} u;
};
typedef struct LAPparms LAPparms;
struct DDPparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 socket; /*socket number */
UInt8 checksumFlag; /*check sum flag */
union {
void * wdsPointer; /*-> write data structure*/
DDPSocketListenerUPP listener; /*->write data structure or -> Listener*/
} u;
};
typedef struct DDPparms DDPparms;
union NBPPtrs {
Ptr ntQElPtr;
Ptr entityPtr;
};
typedef union NBPPtrs NBPPtrs;
union LookupConfirmParams {
UInt8 verifyFlag;
struct {
void * retBuffPtr;
short retBuffSize;
short maxToGet;
short numGotten;
} Lookup;
struct {
AddrBlock confirmAddr;
UInt8 newSocket;
SInt8 filler; /* Filler for proper byte alignment*/
} Confirm;
};
typedef union LookupConfirmParams LookupConfirmParams;
struct NBPparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 interval; /*retry interval */
UInt8 count; /*retry count */
NBPPtrs nbpPtrs;
LookupConfirmParams parm;
};
typedef struct NBPparms NBPparms;
struct SetSelfparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 newSelfFlag; /*self-send toggle flag */
UInt8 oldSelfFlag; /*previous self-send state */
};
typedef struct SetSelfparms SetSelfparms;
struct NBPKillparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
void * nKillQEl; /*ptr to i/o queue element to cancel */
};
typedef struct NBPKillparms NBPKillparms;
struct GetAppleTalkInfoParm {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
/*max. concurrent NBP requests*/
short version; /*requested info version*/
void * varsPtr; /*pointer to well known MPP vars*/
void * DCEPtr; /*pointer to MPP DCE*/
short portID; /*port number [0..7]*/
long configuration; /*32-bit configuration word*/
short selfSend; /*non zero if SelfSend enabled*/
short netLo; /*low value of network range*/
short netHi; /*high value of network range*/
long ourAdd; /*our 24-bit AppleTalk address*/
long routerAddr; /*24-bit address of (last) router*/
short numOfPHs; /*max. number of protocol handlers*/
short numOfSkts; /*max. number of static sockets*/
short numNBPEs; /*max. concurrent NBP requests*/
void * nTQueue; /*pointer to registered name queue*/
short LAlength; /*length in bytes of data link addr*/
void * linkAddr; /*data link address returned*/
Ptr zoneName; /*zone name returned*/
};
typedef struct GetAppleTalkInfoParm GetAppleTalkInfoParm;
struct ATalkClosePrepParm {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
Ptr appName; /*pointer to application name in buffer*/
};
typedef struct ATalkClosePrepParm ATalkClosePrepParm;
union MPPParamBlock {
MPPparms MPP; /*General MPP parms*/
LAPparms LAP; /*ALAP calls*/
DDPparms DDP; /*DDP calls*/
NBPparms NBP; /*NBP calls*/
SetSelfparms SETSELF;
NBPKillparms NBPKILL;
GetAppleTalkInfoParm GAIINFO;
ATalkClosePrepParm ATALKCLOSE;
};
struct XPPPrmBlk {
QElem * qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
XPPCompletionUPP ioCompletion;
OSErr ioResult;
long cmdResult;
short ioVRefNum;
short ioRefNum;
short csCode;
short sessRefnum; /*Offset to session refnum */
UInt8 aspTimeout; /*Timeout for ATP */
UInt8 aspRetry; /*Retry count for ATP */
short cbSize; /*Command block size */
Ptr cbPtr; /*Command block pointer */
short rbSize; /*Reply buffer size */
Ptr rbPtr; /*Reply buffer pointer */
short wdSize; /*Write Data size*/
Ptr wdPtr; /*Write Data pointer*/
UInt8 ccbStart[296]; /*CCB memory allocated for driver afpWrite max size(CCB)=296 all other calls=150*/
};
typedef struct XPPPrmBlk XPPPrmBlk;
struct ASPGetparmsBlk {
QElem * qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
XPPCompletionUPP ioCompletion;
OSErr ioResult;
long cmdResult;
short ioVRefNum;
short ioRefNum;
short csCode;
short aspMaxCmdSize; /*For SPGetParms*/
short aspQuantumSize;
short numSesss;
};
typedef struct ASPGetparmsBlk ASPGetparmsBlk;
struct ASPAbortPrm {
QElem * qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
XPPCompletionUPP ioCompletion;
OSErr ioResult;
long cmdResult;
short ioVRefNum;
short ioRefNum;
short csCode;
Ptr abortSCBPtr; /*SCB pointer for AbortOS */
};
typedef struct ASPAbortPrm ASPAbortPrm;
struct ASPOpenPrm {
QElem * qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
XPPCompletionUPP ioCompletion;
OSErr ioResult;
long cmdResult;
short ioVRefNum;
short ioRefNum;
short csCode;
short sessRefnum; /*Offset to session refnum */
UInt8 aspTimeout; /*Timeout for ATP */
UInt8 aspRetry; /*Retry count for ATP */
AddrBlock serverAddr; /*Server address block */
Ptr scbPointer; /*SCB pointer */
AttnRoutineUPP attnRoutine; /*Attention routine pointer*/
};
typedef struct ASPOpenPrm ASPOpenPrm;
typedef ASPOpenPrm * ASPOpenPrmPtr;
struct AFPLoginPrm {
QElem * qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
XPPCompletionUPP ioCompletion;
OSErr ioResult;
long cmdResult;
short ioVRefNum;
short ioRefNum;
short csCode;
short sessRefnum; /*Offset to session refnum */
UInt8 aspTimeout; /*Timeout for ATP */
UInt8 aspRetry; /*Retry count for ATP */
short cbSize; /*Command block size */
void * cbPtr; /*Command block pointer */
short rbSize; /*Reply buffer size */
void * rbPtr; /*Reply buffer pointer */
AddrBlock afpAddrBlock; /*block in AFP login */
void * afpSCBPtr; /*SCB pointer in AFP login */
AttnRoutineUPP afpAttnRoutine; /*routine pointer in AFP login */
UInt8 ccbFill[144]; /*CCB memory allocated for driver Login needs only 150 bytes BUT CCB really starts in the middle of AFPSCBPtr and also clobbers AFPAttnRoutine. */
};
typedef struct AFPLoginPrm AFPLoginPrm;
struct XCallParam {
QElem * qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
XPPCompletionUPP ioCompletion;
OSErr ioResult;
long cmdResult;
short ioVRefNum;
short ioRefNum;
short csCode;
short xppSubCode;
UInt8 xppTimeout; /*retry interval (seconds)*/
UInt8 xppRetry; /*retry count*/
short filler1;
void * zipBuffPtr; /*pointer to buffer (must be 578 bytes)*/
short zipNumZones; /*no. of zone names in this response*/
UInt8 zipLastFlag; /*non-zero if no more zones*/
UInt8 filler2; /*filler*/
UInt8 zipInfoField[70]; /*on initial call, set first word to zero*/
};
typedef struct XCallParam XCallParam;
union XPPParamBlock {
XPPPrmBlk XPP;
ASPGetparmsBlk GETPARM;
ASPAbortPrm ABORT;
ASPOpenPrm OPEN;
AFPLoginPrm LOGIN;
XCallParam XCALL;
};
struct ATPparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 atpSocket; /*currbitmap for requests or ATP socket number*/
UInt8 atpFlags; /*control information*/
AddrBlock addrBlock; /*source/dest. socket address*/
short reqLength; /*request/response length*/
void * reqPointer; /*->request/response Data*/
void * bdsPointer; /*->response BDS */
};
typedef struct ATPparms ATPparms;
struct SendReqparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 atpSocket; /*currbitmap for requests or ATP socket number*/
UInt8 atpFlags; /*control information*/
AddrBlock addrBlock; /*source/dest. socket address*/
short reqLength; /*request/response length*/
void * reqPointer; /*->request/response Data*/
void * bdsPointer; /*->response BDS */
UInt8 numOfBuffs; /*numOfBuffs */
UInt8 timeOutVal; /*timeout interval */
UInt8 numOfResps; /*number of responses actually received */
UInt8 retryCount; /*number of retries */
short intBuff; /*used internally for NSendRequest */
UInt8 TRelTime; /*TRelease time for extended send request */
SInt8 filler0;
};
typedef struct SendReqparms SendReqparms;
struct ATPmisc1 {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 atpSocket; /*currbitmap for requests or ATP socket number*/
UInt8 atpFlags; /*control information*/
AddrBlock addrBlock; /*source/dest. socket address*/
short reqLength; /*request/response length*/
void * reqPointer; /*->request/response Data*/
void * bdsPointer; /*->response BDS */
union {
UInt8 bitMap; /*bitmap received */
UInt8 numOfBuffs; /*number of responses being sent*/
UInt8 rspNum; /*sequence number*/
} u;
};
typedef struct ATPmisc1 ATPmisc1;
struct ATPmisc2 {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 atpSocket; /*currbitmap for requests or ATP socket number*/
UInt8 atpFlags; /*control information*/
AddrBlock addrBlock; /*source/dest. socket address*/
short reqLength; /*request/response length*/
void * reqPointer; /*->request/response Data*/
void * bdsPointer; /*->response BDS */
UInt8 filler;
UInt8 bdsSize; /*number of BDS elements */
short transID; /*transaction ID recd. */
};
typedef struct ATPmisc2 ATPmisc2;
struct Killparms {
QElem * qLink; /*next queue entry*/
short qType; /*queue type*/
short ioTrap; /*routine trap*/
Ptr ioCmdAddr; /*routine address*/
ATPCompletionUPP ioCompletion; /*ATPCompletionUPP or MPPCompletionUPP*/
OSErr ioResult; /*result code*/
long userData; /*Command result (ATP user bytes)*/
short reqTID; /*request transaction ID*/
short ioRefNum; /*driver reference number*/
short csCode; /*Call command code*/
UInt8 atpSocket; /*currbitmap for requests or ATP socket number*/
UInt8 atpFlags; /*control information*/
AddrBlock addrBlock; /*source/dest. socket address*/
short reqLength; /*request/response length*/
void * reqPointer; /*->request/response Data*/
void * bdsPointer; /*->response BDS */
void * aKillQEl; /*ptr to i/o queue element to cancel*/
};
typedef struct Killparms Killparms;
union ATPParamBlock {
ATPparms ATP; /*General ATP parms*/
SendReqparms SREQ; /*sendrequest parms*/
ATPmisc1 OTH1; /*and a few others*/
ATPmisc2 OTH2; /*and a few others*/
Killparms KILL; /*and a few others*/
};
if OPAQUE_UPP_TYPES
if CALL_NOT_IN_CARBON
EXTERN_API(ATalkTransitionEventUPP)
NewATalkTransitionEventUPP (ATalkTransitionEventProcPtr userRoutine);
EXTERN_API(MPPCompletionUPP)
NewMPPCompletionUPP (MPPCompletionProcPtr userRoutine);
EXTERN_API(ATPCompletionUPP)
NewATPCompletionUPP (ATPCompletionProcPtr userRoutine);
EXTERN_API(XPPCompletionUPP)
NewXPPCompletionUPP (XPPCompletionProcPtr userRoutine);
EXTERN_API(AttnRoutineUPP)
NewAttnRoutineUPP (AttnRoutineProcPtr userRoutine);
EXTERN_API(MPPProtocolHandlerUPP)
NewMPPProtocolHandlerUPP (MPPProtocolHandlerProcPtr userRoutine);
EXTERN_API(DDPSocketListenerUPP)
NewDDPSocketListenerUPP (DDPSocketListenerProcPtr userRoutine);
EXTERN_API(void)
DisposeATalkTransitionEventUPP (ATalkTransitionEventUPP userUPP);
EXTERN_API(void)
DisposeMPPCompletionUPP (MPPCompletionUPP userUPP);
EXTERN_API(void)
DisposeATPCompletionUPP (ATPCompletionUPP userUPP);
EXTERN_API(void)
DisposeXPPCompletionUPP (XPPCompletionUPP userUPP);
EXTERN_API(void)
DisposeAttnRoutineUPP (AttnRoutineUPP userUPP);
EXTERN_API(void)
DisposeMPPProtocolHandlerUPP (MPPProtocolHandlerUPP userUPP);
EXTERN_API(void)
DisposeDDPSocketListenerUPP (DDPSocketListenerUPP userUPP);
EXTERN_API(long)
InvokeATalkTransitionEventUPP (long eventCode,
ATQEntryPtr qElem,
void * eventParameter,
ATalkTransitionEventUPP userUPP);
EXTERN_API(void)
InvokeMPPCompletionUPP (MPPPBPtr thePBptr,
MPPCompletionUPP userUPP);
EXTERN_API(void)
InvokeATPCompletionUPP (ATPPBPtr thePBptr,
ATPCompletionUPP userUPP);
EXTERN_API(void)
InvokeXPPCompletionUPP (XPPParmBlkPtr thePBptr,
XPPCompletionUPP userUPP);
EXTERN_API(void)
InvokeAttnRoutineUPP (short sessRefnum,
short attnBytes,
AttnRoutineUPP userUPP);
EXTERN_API(Boolean)
InvokeMPPProtocolHandlerUPP (Ptr SCCAddr1,
Ptr SCCAddr2,
Ptr MPPLocalVars,
Ptr nextFreeByteInRHA,
Ptr ReadPacketAndReadRestPtr,
short numBytesLeftToReadInPacket,
MPPProtocolHandlerUPP userUPP);
EXTERN_API(Boolean)
InvokeDDPSocketListenerUPP (Ptr SCCAddr1,
Ptr SCCAddr2,
Ptr MPPLocalVars,
Ptr nextFreeByteInRHA,
Ptr ReadPacketAndReadRestPtr,
UInt8 packetDestinationNumber,
short numBytesLeftToReadInPacket,
DDPSocketListenerUPP userUPP);
endif /* CALL_NOT_IN_CARBON */
else
enum { uppATalkTransitionEventProcInfo = 0x00000FF1 }; /* 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */
enum { uppMPPCompletionProcInfo = 0x00009802 }; /* register no_return_value Func(4_bytes:A0) */
enum { uppATPCompletionProcInfo = 0x00009802 }; /* register no_return_value Func(4_bytes:A0) */
enum { uppXPPCompletionProcInfo = 0x00009802 }; /* register no_return_value Func(4_bytes:A0) */
enum { uppAttnRoutineProcInfo = 0x00061002 }; /* register no_return_value Func(2_bytes:D0, 2_bytes:D1) */
enum { uppMPPProtocolHandlerProcInfo = 0x0000007F }; /* SPECIAL_CASE_PROCINFO(7) */
enum { uppDDPSocketListenerProcInfo = 0x0000008F }; /* SPECIAL_CASE_PROCINFO(8) */
#define NewATalkTransitionEventUPP(userRoutine) (ATalkTransitionEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppATalkTransitionEventProcInfo, GetCurrentArchitecture())
#define NewMPPCompletionUPP(userRoutine) (MPPCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMPPCompletionProcInfo, GetCurrentArchitecture())
#define NewATPCompletionUPP(userRoutine) (ATPCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppATPCompletionProcInfo, GetCurrentArchitecture())
#define NewXPPCompletionUPP(userRoutine) (XPPCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppXPPCompletionProcInfo, GetCurrentArchitecture())
#define NewAttnRoutineUPP(userRoutine) (AttnRoutineUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAttnRoutineProcInfo, GetCurrentArchitecture())
#define NewMPPProtocolHandlerUPP(userRoutine) (MPPProtocolHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMPPProtocolHandlerProcInfo, GetCurrentArchitecture())
#define NewDDPSocketListenerUPP(userRoutine) (DDPSocketListenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDDPSocketListenerProcInfo, GetCurrentArchitecture())
#define DisposeATalkTransitionEventUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeMPPCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeATPCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeXPPCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeAttnRoutineUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeMPPProtocolHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeDDPSocketListenerUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define InvokeATalkTransitionEventUPP(eventCode, qElem, eventParameter, userUPP) (long)CALL_THREE_PARAMETER_UPP((userUPP), uppATalkTransitionEventProcInfo, (eventCode), (qElem), (eventParameter))
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter InvokeMPPCompletionUPP(__A0, __A1)
void InvokeMPPCompletionUPP(MPPPBPtr thePBptr, MPPCompletionUPP userUPP) = 0x4E91;
#else
#define InvokeMPPCompletionUPP(thePBptr, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppMPPCompletionProcInfo, (thePBptr))
#endif
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter InvokeATPCompletionUPP(__A0, __A1)
void InvokeATPCompletionUPP(ATPPBPtr thePBptr, ATPCompletionUPP userUPP) = 0x4E91;
#else
#define InvokeATPCompletionUPP(thePBptr, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppATPCompletionProcInfo, (thePBptr))
#endif
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter InvokeXPPCompletionUPP(__A0, __A1)
void InvokeXPPCompletionUPP(XPPParmBlkPtr thePBptr, XPPCompletionUPP userUPP) = 0x4E91;
#else
#define InvokeXPPCompletionUPP(thePBptr, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppXPPCompletionProcInfo, (thePBptr))
#endif
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter InvokeAttnRoutineUPP(__D0, __D1, __A0)
void InvokeAttnRoutineUPP(short sessRefnum, short attnBytes, AttnRoutineUPP userUPP) = 0x4E90;
#else
#define InvokeAttnRoutineUPP(sessRefnum, attnBytes, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppAttnRoutineProcInfo, (sessRefnum), (attnBytes))
#endif
#define InvokeMPPProtocolHandlerUPP(SCCAddr1, SCCAddr2, MPPLocalVars, nextFreeByteInRHA, ReadPacketAndReadRestPtr, numBytesLeftToReadInPacket, userUPP) (Boolean)CALL_SIX_PARAMETER_UPP((userUPP), uppMPPProtocolHandlerProcInfo, (SCCAddr1), (SCCAddr2), (MPPLocalVars), (nextFreeByteInRHA), (ReadPacketAndReadRestPtr), (numBytesLeftToReadInPacket))
#define InvokeDDPSocketListenerUPP(SCCAddr1, SCCAddr2, MPPLocalVars, nextFreeByteInRHA, ReadPacketAndReadRestPtr, packetDestinationNumber, numBytesLeftToReadInPacket, userUPP) (Boolean)CALL_SEVEN_PARAMETER_UPP((userUPP), uppDDPSocketListenerProcInfo, (SCCAddr1), (SCCAddr2), (MPPLocalVars), (nextFreeByteInRHA), (ReadPacketAndReadRestPtr), (packetDestinationNumber), (numBytesLeftToReadInPacket))
endif
/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
define NewATalkTransitionEventProc(userRoutine) NewATalkTransitionEventUPP(userRoutine)
define NewMPPCompletionProc(userRoutine) NewMPPCompletionUPP(userRoutine)
define NewATPCompletionProc(userRoutine) NewATPCompletionUPP(userRoutine)
define NewXPPCompletionProc(userRoutine) NewXPPCompletionUPP(userRoutine)
define NewAttnRoutineProc(userRoutine) NewAttnRoutineUPP(userRoutine)
define NewMPPProtocolHandlerProc(userRoutine) NewMPPProtocolHandlerUPP(userRoutine)
define NewDDPSocketListenerProc(userRoutine) NewDDPSocketListenerUPP(userRoutine)
define CallATalkTransitionEventProc(userRoutine, eventCode, qElem, eventParameter) InvokeATalkTransitionEventUPP(eventCode, qElem, eventParameter, userRoutine)
define CallMPPCompletionProc(userRoutine, thePBptr) InvokeMPPCompletionUPP(thePBptr, userRoutine)
define CallATPCompletionProc(userRoutine, thePBptr) InvokeATPCompletionUPP(thePBptr, userRoutine)
define CallXPPCompletionProc(userRoutine, thePBptr) InvokeXPPCompletionUPP(thePBptr, userRoutine)
define CallAttnRoutineProc(userRoutine, sessRefnum, attnBytes) InvokeAttnRoutineUPP(sessRefnum, attnBytes, userRoutine)
define CallMPPProtocolHandlerProc(userRoutine, SCCAddr1, SCCAddr2, MPPLocalVars, nextFreeByteInRHA, ReadPacketAndReadRestPtr, numBytesLeftToReadInPacket) InvokeMPPProtocolHandlerUPP(SCCAddr1, SCCAddr2, MPPLocalVars, nextFreeByteInRHA, ReadPacketAndReadRestPtr, numBytesLeftToReadInPacket, userRoutine)
define CallDDPSocketListenerProc(userRoutine, SCCAddr1, SCCAddr2, MPPLocalVars, nextFreeByteInRHA, ReadPacketAndReadRestPtr, packetDestinationNumber, numBytesLeftToReadInPacket) InvokeDDPSocketListenerUPP(SCCAddr1, SCCAddr2, MPPLocalVars, nextFreeByteInRHA, ReadPacketAndReadRestPtr, packetDestinationNumber, numBytesLeftToReadInPacket, userRoutine)
if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
OpenXPP (short * xppRefnum);
EXTERN_API( OSErr )
ASPOpenSession (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
ASPCloseSession (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
ASPAbortOS (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
ASPGetParms (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
ASPCloseAll (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
ASPUserWrite (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
ASPUserCommand (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
ASPGetStatus (XPPParmBlkPtr thePBptr,
Boolean async);
define ASPGetStatusSync(paramBlock) ASPGetStatus((paramBlock), false)
EXTERN_API( OSErr )
AFPCommand (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
GetLocalZones (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
GetZoneList (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
GetMyZone (XPPParmBlkPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PAttachPH (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PDetachPH (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PWriteLAP (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
POpenSkt (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PCloseSkt (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PWriteDDP (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PRegisterName (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PLookupName (MPPPBPtr thePBptr,
Boolean async);
define PLookupNameSync(paramBlock) PLookupName((paramBlock), false)
EXTERN_API( OSErr )
PConfirmName (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PRemoveName (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PSetSelfSend (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PKillNBP (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PGetAppleTalkInfo (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PATalkClosePrep (MPPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
POpenATPSkt (ATPPBPtr thePBptr,
Boolean async);
EXTERN_API( OSErr )
PCloseATPSkt (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PSendRequest (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PGetRequest (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PSendResponse (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PAddResponse (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PRelTCB (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PRelRspCB (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PNSendRequest (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PKillSendReq (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
PKillGetReq (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( OSErr )
ATPKillAllGetReq (ATPPBPtr thePBPtr,
Boolean async);
EXTERN_API( void )
BuildLAPwds (Ptr wdsPtr,
Ptr dataPtr,
short destHost,
short prototype,
short frameLen);
EXTERN_API( void )
BuildDDPwds (Ptr wdsPtr,
Ptr headerPtr,
Ptr dataPtr,
AddrBlock netAddr,
short ddpType,
short dataLen);
EXTERN_API( void )
NBPSetEntity (Ptr buffer,
ConstStr32Param nbpObject,
ConstStr32Param nbpType,
ConstStr32Param nbpZone);
EXTERN_API( void )
NBPSetNTE (Ptr ntePtr,
ConstStr32Param nbpObject,
ConstStr32Param nbpType,
ConstStr32Param nbpZone,
short socket);
EXTERN_API( short )
GetBridgeAddress (void);
EXTERN_API( short )
BuildBDS (Ptr buffPtr,
Ptr bdsPtr,
short buffSize);
EXTERN_API( OSErr )
MPPOpen (void);
EXTERN_API( OSErr )
LAPAddATQ (ATQEntryPtr theATQEntry);
EXTERN_API( OSErr )
LAPRmvATQ (ATQEntryPtr theATQEntry);
EXTERN_API( OSErr )
ATPLoad (void);
EXTERN_API( OSErr )
ATPUnload (void);
EXTERN_API( OSErr )
NBPExtract (Ptr theBuffer,
short numInBuf,
short whichOne,
EntityName * abEntity,
AddrBlock * address);
EXTERN_API( OSErr )
GetNodeAddress (short * myNode,
short * myNet);
EXTERN_API( Boolean )
IsMPPOpen (void);
EXTERN_API( Boolean )
IsATPOpen (void);
EXTERN_API( void )
ATEvent (long event,
Ptr infoPtr);
EXTERN_API( OSErr )
ATPreFlightEvent (long event,
long cancel,
Ptr infoPtr);
/*
The following routines are obsolete and will not be supported on
PowerPC. Equivalent functionality is provided by the routines
above.
*/
endif /* CALL_NOT_IN_CARBON */
if TARGET_CPU_68K
if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
MPPClose (void);
EXTERN_API( OSErr )
LAPOpenProtocol (ABByte theLAPType,
Ptr protoPtr);
EXTERN_API( OSErr )
LAPCloseProtocol (ABByte theLAPType);
EXTERN_API( OSErr )
LAPWrite (ATLAPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
LAPRead (ATLAPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
LAPRdCancel (ATLAPRecHandle abRecord);
EXTERN_API( OSErr )
DDPOpenSocket (short * theSocket,
Ptr sktListener);
EXTERN_API( OSErr )
DDPCloseSocket (short theSocket);
EXTERN_API( OSErr )
DDPRead (ATDDPRecHandle abRecord,
Boolean retCksumErrs,
Boolean async);
EXTERN_API( OSErr )
DDPWrite (ATDDPRecHandle abRecord,
Boolean doChecksum,
Boolean async);
EXTERN_API( OSErr )
DDPRdCancel (ATDDPRecHandle abRecord);
EXTERN_API( OSErr )
ATPOpenSocket (AddrBlock addrRcvd,
short * atpSocket);
EXTERN_API( OSErr )
ATPCloseSocket (short atpSocket);
EXTERN_API( OSErr )
ATPSndRequest (ATATPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
ATPRequest (ATATPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
ATPReqCancel (ATATPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
ATPGetRequest (ATATPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
ATPSndRsp (ATATPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
ATPAddRsp (ATATPRecHandle abRecord);
EXTERN_API( OSErr )
ATPResponse (ATATPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
ATPRspCancel (ATATPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
NBPRegister (ATNBPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
NBPLookup (ATNBPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
NBPConfirm (ATNBPRecHandle abRecord,
Boolean async);
EXTERN_API( OSErr )
NBPRemove (EntityPtr abEntity);
EXTERN_API( OSErr )
NBPLoad (void);
EXTERN_API( OSErr )
NBPUnload (void);
endif /* CALL_NOT_IN_CARBON */
endif /* TARGET_CPU_68K */
if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
endif
ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
endif
ifdef __cplusplus
}
endif
endif /* __APPLETALK__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.