Package Name: ppctoolbox
with Interfaces.C; use Interfaces.C;
with AppleTalk; use AppleTalk;
with Types; use Types;
with Memory; use Memory;
package PPCToolbox is
--
-- File: PPCToolbox.h
--
-- Contains: Program-Program Communications Toolbox Interfaces.
--
-- Version: Technology: System 7.5
-- Package: Universal Interfaces 2.0 in ÒMPW LatestÓ on ETO #17
--
-- Copyright: © 1984-1995 by Apple Computer, Inc.
-- All rights reserved.
--
subtype PPCServiceType is unsigned_char;
ppcServiceRealTime : Constant Integer:= 1;
subtype PPCLocationKind is Short_Integer;
ppcNoLocation : Constant Integer:= 0; -- There is no PPCLocName
ppcNBPLocation : Constant Integer:= 1; -- Use AppleTalk NBP
ppcNBPTypeLocation : Constant Integer:= 2; -- Used for specifying a location
-- name type during PPCOpen only
subtype PPCPortKinds is Short_Integer;
ppcByCreatorAndType : Constant Integer:= 1; -- Port type is specified as colloquial Mac creator and type }
ppcByString : Constant Integer:= 2; -- Port type is in pascal string format
-- Values returned for request field in PPCInform call
subtype PPCSessionOrigin is unsigned_char;
-- Values returned for requestType field in PPCInform call }
ppcLocalOrigin : Integer:= 1; -- session originated from this machine
ppcRemoteOrigin : Integer:= 2; -- session originated from remote machine
subtype PPCPortRefNum is Short_Integer;
subtype PPCSessRefNum is Long_Integer;
type Union_1 is array (0 .. 35) of char;
subtype Union_1_portTypeStr is Str32; -- pascal type string
type anon_struct_1 is
record
portCreator : OSType;
portType : OSType;
end record;
subtype Union_1_port is anon_struct_1;
type PPCPortRec is
record
nameScript : ScriptCode; -- script of name
name : Str32; -- name of port as seen in browser
portKindSelector : PPCPortKinds; -- which variant
u : Union_1;
end record;
type PPCPortPtr is Access PPCPortRec;
type Union_2 is array (0 .. 101) of char;
subtype Union_2_nbpEntity is EntityName; -- NBP name entity
subtype Union_2_nbpType is Str32; -- just the NBP type string, for PPCOpen
type LocationNameRec is
record
locationKindSelector : PPCLocationKind; -- which variant
u : Union_2;
end record;
type LocationNamePtr is Access LocationNameRec;
type PortInfoRec is
record
filler1 : unsigned_char;
authRequired : Boolean;
name : PPCPortRec;
end record;
type PortInfoArrayPtr is Access PortInfoRec;
type PortInfoPtr is Access PortInfoRec;
type PPCParamBlockRec is array (0 .. 75) of char;
type PPCParamBlockPtr is Access PPCParamBlockRec;
subtype PPCCompUPP is UniversalProcPtr;
type unsigned_long_Vec_5 is array (0 .. 4) of unsigned_long;
type PPCOpenPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
portRefNum : PPCPortRefNum; -- 38 <-- Port Reference
filler1 : Long_Integer;
serviceType : PPCServiceType; -- 44 --> Bit field describing the requested port service
resFlag : UInt8; -- Must be set to 0
portName : PPCPortPtr; -- 46 --> PortName for PPC
locationName : LocationNamePtr; -- 50 --> If NBP Registration is required
networkVisible : Boolean; -- 54 --> make this network visible on network
nbpRegistered : Boolean; -- 55 <-- The given location name was registered on the network
end record;
type PPCOpenPBPtr is Access PPCOpenPBRec;
subtype PPCParamBlockRec_openParam is PPCOpenPBRec;
type PPCInformPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
portRefNum : PPCPortRefNum; -- 38 --> Port Identifier
sessRefNum : PPCSessRefNum; -- 40 <-- Session Reference
serviceType : PPCServiceType; -- 44 <-- Status Flags for type of session, local, remote
autoAccept : Boolean; -- 45 --> if true session will be accepted automatically
portName : PPCPortPtr; -- 46 --> Buffer for Source PPCPortRec
locationName : LocationNamePtr; -- 50 --> Buffer for Source LocationNameRec
userName : StringPtr; -- 54 --> Buffer for Soure user's name trying to link.
userData : unsigned_long; -- 58 <-- value included in PPCStart's userData
requestType : PPCSessionOrigin; -- 62 <-- Local or Network
filler : SInt8;
end record;
type PPCInformPBPtr is Access PPCInformPBRec;
subtype PPCParamBlockRec_informParam is PPCInformPBRec;
type PPCStartPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
portRefNum : PPCPortRefNum; -- 38 --> Port Identifier
sessRefNum : PPCSessRefNum; -- 40 <-- Session Reference
serviceType : PPCServiceType; -- 44 <-- Actual service method (realTime)
resFlag : UInt8; -- 45 --> Must be set to 0
portName : PPCPortPtr; -- 46 --> Destination portName
locationName : LocationNamePtr; -- 50 --> NBP or NAS style service location name
rejectInfo : unsigned_long; -- 54 <-- reason for rejecting the session request
userData : unsigned_long; -- 58 --> Copied to destination PPCInform parameter block
userRefNum : unsigned_long; -- 62 --> userRefNum (obtained during login process)
end record;
type PPCStartPBPtr is Access PPCStartPBRec;
subtype PPCParamBlockRec_startParam is PPCStartPBRec;
type PPCAcceptPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
filler1 : Short_Integer;
sessRefNum : PPCSessRefNum; -- 40 --> Session Reference
end record;
type PPCAcceptPBPtr is Access PPCAcceptPBRec;
subtype PPCParamBlockRec_acceptParam is PPCAcceptPBRec;
type PPCRejectPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
filler1 : Short_Integer;
sessRefNum : PPCSessRefNum; -- 40 --> Session Reference
filler2 : Short_Integer;
filler3 : Long_Integer;
filler4 : Long_Integer;
rejectInfo : unsigned_long; -- 54 --> reason for rejecting the session request
end record;
type PPCRejectPBPtr is Access PPCRejectPBRec;
subtype PPCParamBlockRec_rejectParam is PPCRejectPBRec;
type PPCWritePBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
filler1 : Short_Integer;
sessRefNum : PPCSessRefNum; -- 40 --> Session Reference
bufferLength : Size; -- 44 --> Length of the message buffer
actualLength : Size; -- 48 <-- Actual Length Written
bufferPtr : Ptr; -- 52 --> Pointer to message buffer
more : Boolean; -- 56 --> if more data in this block will be written
filler2 : unsigned_char;
userData : unsigned_long; -- 58 --> Message block userData Uninterpreted by PPC
blockCreator : OSType; -- 62 --> Message block creator Uninterpreted by PPC
blockType : OSType; -- 66 --> Message block type Uninterpreted by PPC
end record;
type PPCWritePBPtr is Access PPCWritePBRec;
subtype PPCParamBlockRec_writeParam is PPCWritePBRec;
type PPCReadPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
filler1 : Short_Integer;
sessRefNum : PPCSessRefNum; -- 40 --> Session Reference
bufferLength : Size; -- 44 --> Length of the message buffer
actualLength : Size; -- 48 <-- Actual length read
bufferPtr : Ptr; -- 52 --> Pointer to message buffer
more : Boolean; -- 56 <-- if true more data in this block to be read
filler2 : unsigned_char;
userData : unsigned_long; -- 58 <-- Message block userData Uninterpreted by PPC
blockCreator : OSType; -- 62 <-- Message block creator Uninterpreted by PPC
blockType : OSType; -- 66 <-- Message block type Uninterpreted by PPC
end record;
type PPCReadPBPtr is Access PPCReadPBRec;
subtype PPCParamBlockRec_readParam is PPCReadPBRec;
type PPCEndPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
filler1 : Short_Integer;
sessRefNum : PPCSessRefNum; -- 40 --> Session Reference
end record;
type PPCEndPBPtr is Access PPCEndPBRec;
subtype PPCParamBlockRec_endParam is PPCEndPBRec;
type PPCClosePBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
portRefNum : PPCPortRefNum; -- 38 --> Port Identifier
end record;
type PPCClosePBPtr is Access PPCClosePBRec;
subtype PPCParamBlockRec_closeParam is PPCClosePBRec;
type IPCListPortsPBRec is
record
qLink : Ptr;
csCode : unsigned_short;
intUse : unsigned_short;
intUsePtr : Ptr;
ioCompletion : PPCCompUPP;
ioResult : OSErr;
Reserved : unsigned_long_Vec_5;
filler1 : Short_Integer;
startIndex : unsigned_short; -- 40 --> Start Index
requestCount : unsigned_short; -- 42 --> Number of entries to be returned
actualCount : unsigned_short; -- 44 <-- Actual Number of entries to be returned
portName : PPCPortPtr; -- 46 --> PortName Match
locationName : LocationNamePtr; -- 50 --> NBP or NAS type name to locate the Port Location
bufferPtr : PortInfoArrayPtr; -- 54 --> Pointer to a buffer requestCount*sizeof(PortInfo) bytes big
end record;
type IPCListPortsPBPtr is Access IPCListPortsPBRec;
subtype PPCParamBlockRec_listPortsParam is IPCListPortsPBRec;
type PPCCompProcPtr is Access procedure
(pb : in PPCParamBlockPtr);
function PPCInit
return OSErr;
pragma Import (C, PPCInit, "PPCInit", "PPCInit");
function PPCOpenSync
(pb : in PPCOpenPBPtr)
return OSErr;
pragma Import (C, PPCOpenSync, "PPCOpenSync", "PPCOpenSync");
function PPCOpenAsync
(pb : in PPCOpenPBPtr)
return OSErr;
pragma Import (C, PPCOpenAsync, "PPCOpenAsync", "PPCOpenAsync");
function PPCInformSync
(pb : in PPCInformPBPtr)
return OSErr;
pragma Import (C, PPCInformSync, "PPCInformSync", "PPCInformSync");
function PPCInformAsync
(pb : in PPCInformPBPtr)
return OSErr;
pragma Import (C, PPCInformAsync, "PPCInformAsync", "PPCInformAsync");
function PPCStartSync
(pb : in PPCStartPBPtr)
return OSErr;
pragma Import (C, PPCStartSync, "PPCStartSync", "PPCStartSync");
function PPCStartAsync
(pb : in PPCStartPBPtr)
return OSErr;
pragma Import (C, PPCStartAsync, "PPCStartAsync", "PPCStartAsync");
function PPCAcceptSync
(pb : in PPCAcceptPBPtr)
return OSErr;
pragma Import (C, PPCAcceptSync, "PPCAcceptSync", "PPCAcceptSync");
function PPCAcceptAsync
(pb : in PPCAcceptPBPtr)
return OSErr;
pragma Import (C, PPCAcceptAsync, "PPCAcceptAsync", "PPCAcceptAsync");
function PPCRejectSync
(pb : in PPCRejectPBPtr)
return OSErr;
pragma Import (C, PPCRejectSync, "PPCRejectSync", "PPCRejectSync");
function PPCRejectAsync
(pb : in PPCRejectPBPtr)
return OSErr;
pragma Import (C, PPCRejectAsync, "PPCRejectAsync", "PPCRejectAsync");
function PPCWriteSync
(pb : in PPCWritePBPtr)
return OSErr;
pragma Import (C, PPCWriteSync, "PPCWriteSync", "PPCWriteSync");
function PPCWriteAsync
(pb : in PPCWritePBPtr)
return OSErr;
pragma Import (C, PPCWriteAsync, "PPCWriteAsync", "PPCWriteAsync");
function PPCReadSync
(pb : in PPCReadPBPtr)
return OSErr;
pragma Import (C, PPCReadSync, "PPCReadSync", "PPCReadSync");
function PPCReadAsync
(pb : in PPCReadPBPtr)
return OSErr;
pragma Import (C, PPCReadAsync, "PPCReadAsync", "PPCReadAsync");
function PPCEndSync
(pb : in PPCEndPBPtr)
return OSErr;
pragma Import (C, PPCEndSync, "PPCEndSync", "PPCEndSync");
function PPCEndAsync
(pb : in PPCEndPBPtr)
return OSErr;
pragma Import (C, PPCEndAsync, "PPCEndAsync", "PPCEndAsync");
function PPCCloseSync
(pb : in PPCClosePBPtr)
return OSErr;
pragma Import (C, PPCCloseSync, "PPCCloseSync", "PPCCloseSync");
function PPCCloseAsync
(pb : in PPCClosePBPtr)
return OSErr;
pragma Import (C, PPCCloseAsync, "PPCCloseAsync", "PPCCloseAsync");
function IPCListPortsSync
(pb : in IPCListPortsPBPtr)
return OSErr;
pragma Import (C, IPCListPortsSync, "IPCListPortsSync", "IPCListPortsSync");
function IPCListPortsAsync
(pb : in IPCListPortsPBPtr)
return OSErr;
pragma Import (C, IPCListPortsAsync, "IPCListPortsAsync",
"IPCListPortsAsync");
function DeleteUserIdentity
(userRef : in unsigned_long)
return OSErr;
pragma Import (C, DeleteUserIdentity, "DeleteUserIdentity",
"DeleteUserIdentity");
function GetDefaultUser
(userRef : access unsigned_long;
userName : in Str32)
return OSErr;
pragma Import (C, GetDefaultUser, "GetDefaultUser", "GetDefaultUser");
function StartSecureSession
(pb : in PPCStartPBPtr;
userName : in Str32;
useDefault : in Boolean;
allowGuest : in Boolean;
guestSelected : access Boolean;
prompt : access Str255)
return OSErr;
pragma Import (C, StartSecureSession, "StartSecureSession",
"StartSecureSession");
type PPCFilterProcPtr is access function
(name : in LocationNamePtr;
port : in PortInfoPtr) return Boolean;
subtype PPCFilterUPP is UniversalProcPtr;
function PPCBrowser
(prompt : access Str255;
applListLabel : access Str255;
defaultSpecified : in Boolean;
theLocation : access LocationNameRec;
thePortInfo : access PortInfoRec;
portFilter : in PPCFilterUPP;
theLocNBPType : access Str32)
return OSErr;
pragma Import (C, PPCBrowser, "PPCBrowser", "PPCBrowser");
end PPCToolbox;