view dstep/coreservices/osservices/OpenTransportProviders.d @ 16:19885b43130e

Huge update, the bridge actually works now
author Jacob Carlborg <doob@me.com>
date Sun, 03 Jan 2010 22:06:11 +0100
parents 07194b026fa4
children
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Jul 22, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.coreservices.osservices.OpenTransportProviders;

//import dstep.AvailabilityMacros;
import dstep.objc.bridge.TypeEncoding;
import dstep.coreservices.osservices.OpenTransport;

alias ushort InetPort;
alias uint InetHost;
alias void* InetSvcRef;
alias void* ATSvcRef;
alias uint OTPacketType;
alias uint EAddrType;
alias uint ParityOptionValues;

// This is needed otherwise the enums will fail compiling with gdc
version (GNU)
{
	private
	{
		const __ATK_DDP = getOSType!("DDP ");
		const __ATK_AARP = getOSType!("AARP");
		const __ATK_ATP = getOSType!("ATP ");
		const __ATK_ADSP = getOSType!("ADSP");
		const __ATK_ASP = getOSType!("ASP ");
		const __ATK_PAP = getOSType!("PAP ");
		const __ATK_NBP = getOSType!("NBP ");
		const __ATK_ZIP = getOSType!("ZIP ");
		const __LNK_ENET = getOSType!("ENET");
		const __LNK_TOKN = getOSType!("TOKN");
		const __LNK_FDDI = getOSType!("FDDI");
		const __LNK_TPI = getOSType!("LTPI");
		const __COM_SERIAL = getOSType!("SERL");
		const __COM_ISDN = getOSType!("ISDN");
		const __COM_PPP = getOSType!("PPPC");
	}
}

enum
{
	AF_DNS = 42
}

enum
{
	kOTAnyInetAddress = 0
}

enum
{
	INET_IP = 0x00,
	INET_TCP = 0x06,
	INET_UDP = 0x11
}

enum
{
	TCP_NODELAY = 0x01,
	TCP_MAXSEG = 0x02,
	TCP_NOTIFY_THRESHOLD = 0x10,
	TCP_ABORT_THRESHOLD = 0x11,
	TCP_CONN_NOTIFY_THRESHOLD = 0x12,
	TCP_CONN_ABORT_THRESHOLD = 0x13,
	TCP_OOBINLINE = 0x14,
	TCP_URGENT_PTR_TYPE = 0x15,
	TCP_KEEPALIVE = 0x0008
}

enum
{
	T_GARBAGE = 2
}

enum
{
	UDP_CHECKSUM = 0x0600,
	UDP_RX_ICMP = 0x02
}

enum
{
	kIP_OPTIONS = 0x01,
	kIP_TOS = 0x02,
	kIP_TTL = 0x03,
	kIP_REUSEADDR = 0x04,
	kIP_DONTROUTE = 0x10,
	kIP_BROADCAST = 0x20,
	kIP_REUSEPORT = 0x0200,
	kIP_HDRINCL = 0x1002,
	kIP_RCVOPTS = 0x1005,
	kIP_RCVDSTADDR = 0x1007,
	kIP_MULTICAST_IF = 0x1010,
	kIP_MULTICAST_TTL = 0x1011,
	kIP_MULTICAST_LOOP = 0x1012,
	kIP_ADD_MEMBERSHIP = 0x1013,
	kIP_DROP_MEMBERSHIP = 0x1014,
	kIP_BROADCAST_IFNAME = 0x1015,
	kIP_RCVIFADDR = 0x1016
}

enum
{
	DVMRP_INIT = 100,
	DVMRP_DONE = 101,
	DVMRP_ADD_VIF = 102,
	DVMRP_DEL_VIF = 103,
	DVMRP_ADD_LGRP = 104,
	DVMRP_DEL_LGRP = 105,
	DVMRP_ADD_MRT = 106,
	DVMRP_DEL_MRT = 107
}

enum
{
	T_ROUTINE = 0,
	T_PRIORITY = 1,
	T_IMMEDIATE = 2,
	T_FLASH = 3,
	T_OVERRIDEFLASH = 4,
	T_CRITIC_ECP = 5,
	T_INETCONTROL = 6,
	T_NETCONTROL = 7
}

enum
{
	T_NOTOS = 0x00,
	T_LDELAY = (1 << 4),
	T_HITHRPT = (1 << 3),
	T_HIREL = (1 << 2)
}

enum
{
	T_DNRSTRINGTOADDRCOMPLETE = kPRIVATEEVENT + 1,
	T_DNRADDRTONAMECOMPLETE = kPRIVATEEVENT + 2,
	T_DNRSYSINFOCOMPLETE = kPRIVATEEVENT + 3,
	T_DNRMAILEXCHANGECOMPLETE = kPRIVATEEVENT + 4,
	T_DNRQUERYCOMPLETE = kPRIVATEEVENT + 5
}

enum
{
	kMaxHostAddrs = 10,
	kMaxSysStringLen = 32,
	kMaxHostNameLen = 255
}

enum
{
	kDefaultInetInterface = -1
}

enum
{
	kInetInterfaceInfoVersion = 3
}

enum
{
	kAllDHCPOptions = -1,
	kDHCPLongOption = 126,
	kDHCPLongOptionReq = 127
}

enum
{
	ATK_DDP = getOSType!("DDP "),
	ATK_AARP = getOSType!("AARP"),
	ATK_ATP = getOSType!("ATP "),
	ATK_ADSP = getOSType!("ADSP"),
	ATK_ASP = getOSType!("ASP "),
	ATK_PAP = getOSType!("PAP "),
	ATK_NBP = getOSType!("NBP "),
	ATK_ZIP = getOSType!("ZIP ")
}

enum
{
	DDP_OPT_HOPCOUNT = 0x2100
}

enum
{
	DDP_OPT_CHECKSUM = 0x0600,
	DDP_OPT_SRCADDR = 0x2101,
	ATP_OPT_REPLYCNT = 0x2110,
	ATP_OPT_DATALEN = 0x2111,
	ATP_OPT_RELTIMER = 0x2112,
	ATP_OPT_TRANID = 0x2113,
	PAP_OPT_OPENRETRY = 0x2120
}

enum
{
	kAppleTalkEvent = kPROTOCOLEVENT | 0x00010000,
	T_GETMYZONECOMPLETE = kAppleTalkEvent + 1,
	T_GETLOCALZONESCOMPLETE = kAppleTalkEvent + 2,
	T_GETZONELISTCOMPLETE = kAppleTalkEvent + 3,
	T_GETATALKINFOCOMPLETE = kAppleTalkEvent + 4,
	T_ATALKROUTERDOWNEVENT = kAppleTalkEvent + 51,
	T_ATALKROUTERUPEVENT = kAppleTalkEvent + 52,
	T_ATALKZONENAMECHANGEDEVENT = kAppleTalkEvent + 53,
	T_ATALKCONNECTIVITYCHANGEDEVENT = kAppleTalkEvent + 54,
	T_ATALKINTERNETAVAILABLEEVENT = kAppleTalkEvent + 55,
	T_ATALKCABLERANGECHANGEDEVENT = kAppleTalkEvent + 56
}

enum
{
	T_ATALKBADROUTEREVENT = kAppleTalkEvent + 70,
	T_ALLNODESTAKENEVENT = kAppleTalkEvent + 71,
	T_FIXEDNODETAKENEVENT = kAppleTalkEvent + 72,
	T_MPPCOMPATCFIGEVENT = kAppleTalkEvent + 73,
	T_FIXEDNODEBADEVENT = kAppleTalkEvent + 74
}

enum
{
	kAllATalkRoutersDown = 0,
	kLocalATalkRoutersDown = -1L,
	kARARouterDisconnected = -2L
}

enum
{
	kARARouterOnline = -1L,
	kATalkRouterOnline = 0,
	kLocalATalkRouterOnline = -2L
}

enum
{
	ATALK_IOC_FULLSELFSEND = ((MIOC_ATALK << 8) | 47),
	ADSP_IOC_FORWARDRESET = ((MIOC_ATALK << 8) | 60)
}

enum
{
	kECHO_TSDU = 585
}

enum
{
	kNBPMaxNameLength = 32,
	kNBPMaxTypeLength = 32,
	kNBPMaxZoneLength = 32,
	kNBPSlushLength = 9,
	kNBPMaxEntityLength = (kNBPMaxNameLength + kNBPMaxTypeLength + kNBPMaxZoneLength + 3),
	kNBPEntityBufferSize = (kNBPMaxNameLength + kNBPMaxTypeLength + kNBPMaxZoneLength + kNBPSlushLength),
	kNBPWildCard = 0x3D,
	kNBPImbeddedWildCard = 0xC5,
	kNBPDefaultZone = 0x2A
}

enum
{
	kZIPMaxZoneLength = kNBPMaxZoneLength
}

enum
{
	kDDPAddressLength = 8,
	kNBPAddressLength = kNBPEntityBufferSize,
	kAppleTalkAddressLength = kDDPAddressLength + kNBPEntityBufferSize
}

enum
{
	AF_ATALK_FAMILY = 0x0100,
	AF_ATALK_DDP = 0x0100,
	AF_ATALK_DDPNBP = AF_ATALK_FAMILY + 1,
	AF_ATALK_NBP = AF_ATALK_FAMILY + 2,
	AF_ATALK_MNODE = AF_ATALK_FAMILY + 3
}

enum
{
	kATalkInfoIsExtended = 0x0001,
	kATalkInfoHasRouter = 0x0002,
	kATalkInfoOneZone = 0x0004
}

enum
{
	kOTFramingEthernet = 0x01,
	kOTFramingEthernetIPX = 0x02,
	kOTFraming8023 = 0x04,
	kOTFraming8022 = 0x08
}

enum
{
	kOTRawRcvOn = 0,
	kOTRawRcvOff = 1,
	kOTRawRcvOnWithTimeStamp = 2
}

enum
{
	DL_PROMISC_OFF = 0
}

enum
{
	kT8022ModuleID = 7100,
	kEnetModuleID = 7101,
	kTokenRingModuleID = 7102,
	kFDDIModuleID = 7103
}

enum
{
	AF_8022 = 8200
}

enum
{
	LNK_ENET = getOSType!("ENET"),
	LNK_TOKN = getOSType!("TOKN"),
	LNK_FDDI = getOSType!("FDDI"),
	LNK_TPI = getOSType!("LTPI")
}

enum
{
	OPT_ADDMCAST = 0x1000,
	OPT_DELMCAST = 0x1001,
	OPT_RCVPACKETTYPE = 0x1002,
	OPT_RCVDESTADDR = 0x1003,
	OPT_SETRAWMODE = 0x1004,
	OPT_SETPROMISCUOUS = 0x1005
}

enum
{
	kETypeStandard = 0,
	kETypeMulticast = 1,
	kETypeBroadcast = 2,
	kETRawPacketBit = cast(uint)0x80000000,
	kETTimeStampBit = 0x40000000
}

enum
{
	kMulticastLength = 6,
	k48BitAddrLength = 6,
	k8022DLSAPLength = 2,
	k8022SNAPLength = 5,
	kEnetAddressLength = k48BitAddrLength + k8022DLSAPLength,
	kSNAPSAP = 0x00AA,
	kIPXSAP = 0x00FF,
	kMax8022SAP = 0x00FE,
	k8022GlobalSAP = 0x00FF,
	kMinDIXSAP = 1501,
	kMaxDIXSAP = 0xFFFF
}

enum
{
	k8022BasicAddressLength = OTAddressType.sizeof + k48BitAddrLength + short.sizeof,
	k8022SNAPAddressLength = OTAddressType.sizeof + k48BitAddrLength + short.sizeof + k8022SNAPLength
}

enum
{
	kEnetPacketHeaderLength = (2 * k48BitAddrLength) + k8022DLSAPLength,
	kEnetTSDU = 1514,
	kTokenRingTSDU = 4458,
	kFDDITSDU = 4458,
	k8022SAPLength = 1,
	k8022BasicHeaderLength = 3,
	k8022SNAPHeaderLength = k8022SNAPLength + k8022BasicHeaderLength
}

enum
{
	keaStandardAddress = 0,
	keaMulticast = 1,
	keaBroadcast = 2,
	keaBadAddress = 3,
	keaRawPacketBit = cast(uint)0x80000000,
	keaTimeStampBit = 0x40000000
}

enum
{
	kT8022HeaderLength = 3,
	kT8022SNAPHeaderLength = 3 + k8022SNAPLength,
	kT8022FullPacketHeaderLength = kEnetPacketHeaderLength + kT8022SNAPHeaderLength
}

enum
{
	COM_SERIAL = getOSType!("SERL")
}

enum
{
	kSerialABModuleID = 7200
}

enum
{
	kOTSerialFramingAsync = 0x01,
	kOTSerialFramingHDLC = 0x02,
	kOTSerialFramingSDLC = 0x04,
	kOTSerialFramingAsyncPackets = 0x08,
	kOTSerialFramingPPP = 0x10
}

enum
{
	I_SetSerialDTR = ((MIOC_SRL << 8) | 0),
	kOTSerialSetDTROff = 0,
	kOTSerialSetDTROn = 1,
	I_SetSerialBreak = ((MIOC_SRL << 8) | 1),
	kOTSerialSetBreakOn = cast(uint)0xFFFFFFFF,
	kOTSerialSetBreakOff = 0,
	I_SetSerialXOffState = ((MIOC_SRL << 8) | 2),
	kOTSerialForceXOffTrue = 1,
	kOTSerialForceXOffFalse = 0,
	I_SetSerialXOn = ((MIOC_SRL << 8) | 3),
	kOTSerialSendXOnAlways = 1,
	kOTSerialSendXOnIfXOffTrue = 0,
	I_SetSerialXOff = ((MIOC_SRL << 8) | 4),
	kOTSerialSendXOffAlways = 1,
	kOTSerialSendXOffIfXOnTrue = 0
}

enum
{
	SERIAL_OPT_BAUDRATE = 0x0100,
	SERIAL_OPT_DATABITS = 0x0101,
	SERIAL_OPT_STOPBITS = 0x0102,
	SERIAL_OPT_PARITY = 0x0103,
	SERIAL_OPT_STATUS = 0x0104,
	SERIAL_OPT_HANDSHAKE = 0x0105,
	SERIAL_OPT_RCVTIMEOUT = 0x0106,
	SERIAL_OPT_ERRORCHARACTER = 0x0107,
	SERIAL_OPT_EXTCLOCK = 0x0108,
	SERIAL_OPT_BURSTMODE = 0x0109,
	SERIAL_OPT_DUMMY = 0x010A
}

enum
{
	kOTSerialNoParity = 0,
	kOTSerialOddParity = 1,
	kOTSerialEvenParity = 2
}

enum
{
	kOTSerialSwOverRunErr = 0x01,
	kOTSerialBreakOn = 0x08,
	kOTSerialParityErr = 0x10,
	kOTSerialOverrunErr = 0x20,
	kOTSerialFramingErr = 0x40,
	kOTSerialXOffSent = 0x00010000,
	kOTSerialDTRNegated = 0x00020000,
	kOTSerialCTLHold = 0x00040000,
	kOTSerialXOffHold = 0x00080000,
	kOTSerialOutputBreakOn = 0x01000000
}

enum
{
	kOTSerialXOnOffInputHandshake = 1,
	kOTSerialXOnOffOutputHandshake = 2,
	kOTSerialCTSInputHandshake = 4,
	kOTSerialDTROutputHandshake = 8
}

enum
{
	kOTSerialDefaultBaudRate = 19200,
	kOTSerialDefaultDataBits = 8,
	kOTSerialDefaultStopBits = 10,
	kOTSerialDefaultParity = kOTSerialNoParity,
	kOTSerialDefaultHandshake = 0,
	kOTSerialDefaultOnChar = ('Q' & 0xFFFFFFBF),
	kOTSerialDefaultOffChar = ('S' & 0xFFFFFFBF),
	kOTSerialDefaultSndBufSize = 1024,
	kOTSerialDefaultRcvBufSize = 1024,
	kOTSerialDefaultSndLoWat = 96,
	kOTSerialDefaultRcvLoWat = 1,
	kOTSerialDefaultRcvTimeout = 10
}

enum
{
	COM_ISDN = getOSType!("ISDN")
}

enum
{
	kISDNModuleID = 7300
}

enum
{
	kOTISDNFramingTransparentSupported = 0x0010,
	kOTISDNFramingHDLCSupported = 0x0020,
	kOTISDNFramingV110Supported = 0x0040,
	kOTISDNFramingV14ESupported = 0x0080
}

enum
{
	kOTISDNUnallocatedNumber = 1,
	kOTISDNNoRouteToSpecifiedTransitNetwork = 2,
	kOTISDNNoRouteToDestination = 3,
	kOTISDNChannelUnacceptable = 6,
	kOTISDNNormal = 16,
	kOTISDNUserBusy = 17,
	kOTISDNNoUserResponding = 18,
	kOTISDNNoAnswerFromUser = 19,
	kOTISDNCallRejected = 21,
	kOTISDNNumberChanged = 22,
	kOTISDNNonSelectedUserClearing = 26,
	kOTISDNDestinationOutOfOrder = 27,
	kOTISDNInvalidNumberFormat = 28,
	kOTISDNFacilityRejected = 29,
	kOTISDNNormalUnspecified = 31,
	kOTISDNNoCircuitChannelAvailable = 34,
	kOTISDNNetworkOutOfOrder = 41,
	kOTISDNSwitchingEquipmentCongestion = 42,
	kOTISDNAccessInformationDiscarded = 43,
	kOTISDNRequestedCircuitChannelNotAvailable = 44,
	kOTISDNResourceUnavailableUnspecified = 45,
	kOTISDNQualityOfServiceUnvailable = 49,
	kOTISDNRequestedFacilityNotSubscribed = 50,
	kOTISDNBearerCapabilityNotAuthorized = 57,
	kOTISDNBearerCapabilityNotPresentlyAvailable = 58,
	kOTISDNCallRestricted = 59,
	kOTISDNServiceOrOptionNotAvilableUnspecified = 63,
	kOTISDNBearerCapabilityNotImplemented = 65,
	kOTISDNRequestedFacilityNotImplemented = 69,
	kOTISDNOnlyRestrictedDigitalBearer = 70,
	kOTISDNServiceOrOptionNotImplementedUnspecified = 79,
	kOTISDNCallIdentityNotUsed = 83,
	kOTISDNCallIdentityInUse = 84,
	kOTISDNNoCallSuspended = 85,
	kOTISDNCallIdentityCleared = 86,
	kOTISDNIncompatibleDestination = 88,
	kOTISDNInvalidTransitNetworkSelection = 91,
	kOTISDNInvalidMessageUnspecified = 95,
	kOTISDNMandatoryInformationElementIsMissing = 96,
	kOTISDNMessageTypeNonExistentOrNotImplemented = 97,
	kOTISDNInterworkingUnspecified = 127
}

enum
{
	kAF_ISDN = 0x2000
}

enum
{
	kOTISDNMaxPhoneSize = 32,
	kOTISDNMaxSubSize = 4
}

enum
{
	MIOC_ISDN = 'U'
}

enum
{
	I_OTISDNAlerting = ((MIOC_ISDN << 8) | 100),
	I_OTISDNSuspend = ((MIOC_ISDN << 8) | 101),
	I_OTISDNSuspendAcknowledge = ((MIOC_ISDN << 8) | 102),
	I_OTISDNSuspendReject = ((MIOC_ISDN << 8) | 103),
	I_OTISDNResume = ((MIOC_ISDN << 8) | 104),
	I_OTISDNResumeAcknowledge = ((MIOC_ISDN << 8) | 105),
	I_OTISDNResumeReject = ((MIOC_ISDN << 8) | 106),
	I_OTISDNFaciltity = ((MIOC_ISDN << 8) | 107)
}

enum
{
	kOTISDNMaxUserDataSize = 32
}

enum
{
	ISDN_OPT_COMMTYPE = 0x0200,
	ISDN_OPT_FRAMINGTYPE = 0x0201,
	ISDN_OPT_56KADAPTATION = 0x0202
}

enum
{
	kOTISDNTelephoneALaw = 1,
	kOTISDNTelephoneMuLaw = 26,
	kOTISDNDigital64k = 13,
	kOTISDNDigital56k = 37,
	kOTISDNVideo64k = 41,
	kOTISDNVideo56k = 42
}

enum
{
	kOTISDNFramingTransparent = 0x0010,
	kOTISDNFramingHDLC = 0x0020,
	kOTISDNFramingV110 = 0x0040,
	kOTISDNFramingV14E = 0x0080
}

enum
{
	kOTISDNNot56KAdaptation = 0,
	kOTISDN56KAdaptation = 1
}

enum
{
	kOTISDNDefaultCommType = kOTISDNDigital64k,
	kOTISDNDefaultFramingType = kOTISDNFramingHDLC,
	kOTISDNDefault56KAdaptation = kOTISDNNot56KAdaptation
}

enum
{
	COM_PPP = getOSType!("PPPC")
}

enum
{
	kPPPMaxIDLength = 255,
	kPPPMaxPasswordLength = 255,
	kPPPMaxDTEAddressLength = 127,
	kPPPMaxCallInfoLength = 255
}

enum
{
	kPPPStateInitial = 1,
	kPPPStateClosed = 2,
	kPPPStateClosing = 3,
	kPPPStateOpening = 4,
	kPPPStateOpened = 5
}

enum
{
	kPPPConnectionStatusIdle = 1,
	kPPPConnectionStatusConnecting = 2,
	kPPPConnectionStatusConnected = 3,
	kPPPConnectionStatusDisconnecting = 4
}

enum
{
	kPPPMinMRU = 0,
	kPPPMaxMRU = 4500
}

enum
{
	kIPCPTCPHdrCompressionDisabled = 0,
	kIPCPTCPHdrCompressionEnabled = 1
}

enum
{
	kPPPCompressionDisabled = 0x00000000,
	kPPPProtoCompression = 0x00000001,
	kPPPAddrCompression = 0x00000002
}

enum
{
	kPPPNoOutAuthentication = 0,
	kPPPCHAPOrPAPOutAuthentication = 1
}

enum
{
	kCCReminderTimerDisabled = 0,
	kCCIPIdleTimerDisabled = 0
}

enum
{
	kPPPScriptTypeModem = 1,
	kPPPScriptTypeConnect = 2,
	kPPPMaxScriptSize = 32000
}

enum
{
	kE164Address = 1,
	kPhoneAddress = 1,
	kCompoundPhoneAddress = 2,
	kX121Address = 3
}

enum
{
	kPPPConnectionStatusDialogsFlag = 0x00000001,
	kPPPConnectionRemindersFlag = 0x00000002,
	kPPPConnectionFlashingIconFlag = 0x00000004,
	kPPPOutPasswordDialogsFlag = 0x00000008,
	kPPPAllAlertsDisabledFlag = 0x00000000,
	kPPPAllAlertsEnabledFlag = 0x0000000F
}

enum
{
	kPPPAsyncMapCharsNone = 0x00000000,
	kPPPAsyncMapCharsXOnXOff = 0x000A0000,
	kPPPAsyncMapCharsAll = cast(uint)0xFFFFFFFF
}

enum
{
	IPCP_OPT_GETREMOTEPROTOADDR = 0x00007000,
	IPCP_OPT_GETLOCALPROTOADDR = 0x00007001,
	IPCP_OPT_TCPHDRCOMPRESSION = 0x00007002,
	LCP_OPT_PPPCOMPRESSION = 0x00007003,
	LCP_OPT_MRU = 0x00007004,
	LCP_OPT_RCACCMAP = 0x00007005,
	LCP_OPT_TXACCMAP = 0x00007006,
	SEC_OPT_OUTAUTHENTICATION = 0x00007007,
	SEC_OPT_ID = 0x00007008,
	SEC_OPT_PASSWORD = 0x00007009,
	CC_OPT_REMINDERTIMER = 0x00007010,
	CC_OPT_IPIDLETIMER = 0x00007011,
	CC_OPT_DTEADDRESSTYPE = 0x00007012,
	CC_OPT_DTEADDRESS = 0x00007013,
	CC_OPT_CALLINFO = 0x00007014,
	CC_OPT_GETMISCINFO = 0x00007015,
	PPP_OPT_GETCURRENTSTATE = 0x00007016,
	LCP_OPT_ECHO = 0x00007017,
	CC_OPT_SERIALPORTNAME = 0x00007200
}

enum
{
	kPPPEvent = kPROTOCOLEVENT | 0x000F0000,
	kPPPConnectCompleteEvent = kPPPEvent + 1,
	kPPPSetScriptCompleteEvent = kPPPEvent + 2,
	kPPPDisconnectCompleteEvent = kPPPEvent + 3,
	kPPPDisconnectEvent = kPPPEvent + 4,
	kPPPIPCPUpEvent = kPPPEvent + 5,
	kPPPIPCPDownEvent = kPPPEvent + 6,
	kPPPLCPUpEvent = kPPPEvent + 7,
	kPPPLCPDownEvent = kPPPEvent + 8,
	kPPPLowerLayerUpEvent = kPPPEvent + 9,
	kPPPLowerLayerDownEvent = kPPPEvent + 10,
	kPPPAuthenticationStartedEvent = kPPPEvent + 11,
	kPPPAuthenticationFinishedEvent = kPPPEvent + 12,
	kPPPDCEInitStartedEvent = kPPPEvent + 13,
	kPPPDCEInitFinishedEvent = kPPPEvent + 14,
	kPPPDCECallStartedEvent = kPPPEvent + 15,
	kPPPDCECallFinishedEvent = kPPPEvent + 16
}

enum
{
	kRAProductClientOnly = 2,
	kRAProductOnePortServer = 3,
	kRAProductManyPortServer = 4
}

struct TIPAddMulticast
{
	uint multicastGroupAddress;
	uint interfaceAddress;
}


struct InetAddress
{
	ushort fAddressType;
	ushort fPort;
	uint fHost;
	char* fUnused;
}


struct InetHostInfo
{
	byte[256] name;
	InetHost* addrs;
}


struct InetSysInfo
{
	char* cpuType;
	char* osType;
}


struct InetMailExchange
{
	ushort preference;
	byte[256] exchange;
}


struct DNSQueryInfo
{
	ushort qType;
	ushort qClass;
	uint ttl;
	byte[256] name;
	ushort responseType;
	ushort resourceLen;
	char* resourceData;
}


struct DNSAddress
{
	ushort fAddressType;
	byte[256] fName;
}


struct InetInterfaceInfo
{
	uint fAddress;
	uint fNetmask;
	uint fBroadcastAddr;
	uint fDefaultGatewayAddr;
	uint fDNSAddr;
	ushort fVersion;
	ushort fHWAddrLen;
	char* fHWAddr;
	uint fIfMTU;
	ubyte[2]* fReservedPtrs;
	byte[256] fDomainName;
	uint fIPSecondaryCount;
	ubyte[252] fReserved;
}


struct InetDHCPOption
{
	ubyte fOptionTag;
	ubyte fOptionLen;
	ubyte fOptionValue;
}


struct NBPEntity
{
	char* fEntity;
}


struct DDPAddress
{
	ushort fAddressType;
	ushort fNetwork;
	ubyte fNodeID;
	ubyte fSocket;
	ubyte fDDPType;
	ubyte fPad;
}


struct NBPAddress
{
	ushort fAddressType;
	char* fNBPNameBuffer;
}


struct DDPNBPAddress
{
	ushort fAddressType;
	ushort fNetwork;
	ubyte fNodeID;
	ubyte fSocket;
	ubyte fDDPType;
	ubyte fPad;
	char* fNBPNameBuffer;
}


struct AppleTalkInfo
{
	DDPAddress fOurAddress;
	DDPAddress fRouterAddress;
	ushort[2] fCableRange;
	ushort fFlags;
}


struct T8022Address
{
	ushort fAddrFamily;
	char* fHWAddr;
	ushort fSAP;
	char* fSNAP;
}


struct EnetPacketHeader
{
	char* fDestAddr;
	char* fSourceAddr;
	ushort fProto;
}


struct T8022Header
{
	ubyte fDSAP;
	ubyte fSSAP;
	ubyte fCtrl;
}


struct T8022SNAPHeader
{
	ubyte fDSAP;
	ubyte fSSAP;
	ubyte fCtrl;
	char* fSNAP;
}


struct T8022FullPacketHeader
{
	EnetPacketHeader fEnetPart;
	T8022SNAPHeader f8022Part;
}


struct OTISDNAddress
{
	ushort fAddressType;
	ushort fPhoneLength;
	char* fPhoneNumber;
}


struct PPPMRULimits
{
	uint mruSize;
	uint upperMRULimit;
	uint lowerMRULimit;
}


struct CCMiscInfo
{
	uint connectionStatus;
	uint connectionTimeElapsed;
	uint connectionTimeRemaining;
	uint bytesTransmitted;
	uint bytesReceived;
	uint reserved;
}


struct LCPEcho
{
	uint retryCount;
	uint retryPeriod;
}