Mercurial > projects > dstep
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; }