Mercurial > projects > dstep
view dstep/coreservices/osservices/OpenTransport.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
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.OpenTransport; //import dstep.AvailabilityMacros; import dstep.coreservices.carboncore.MacErrors; import dstep.coreservices.carboncore.MacTypes; import dstep.coreservices.carboncore.MixedMode; import dstep.internal.Version; import dstep.objc.bridge.TypeEncoding; //import dstep.stddef; struct OTConfiguration; struct OpaqueOTClientContextPtr; struct TOptionHeader { uint len; uint level; uint name; uint status; } alias ubyte OTUInt8Param; alias ushort OTUInt16Param; alias short OTSInt16Param; alias byte OTSInt8Param; alias ubyte OTBooleanParam; alias ubyte uchar_p; alias ushort ushort_p; alias short short_p; alias byte char_p; alias ubyte boolean_p; alias uint OTByteCount; alias uint OTItemCount; alias int OTInt32; alias uint OTUInt32; alias int int_t; alias uint uint_t; alias uint OTTimeout; alias int OTSequence; alias int OTNameID; alias int OTReason; alias uint OTQLen; alias char* OTClientName; alias int OTCommand; alias void* OTClient; alias uint OTOpenFlags; alias ushort OTUnixErr; alias ushort OTXTIErr; alias int OTResult; alias ushort OTAddressType; alias uint OTStructType; alias uint OTFieldsType; alias uint OTFlags; alias uint OTBand; alias void* ProviderRef; alias void* EndpointRef; alias void* MapperRef; alias uint OTEventCode; alias OTNotifyProcPtr OTNotifyUPP; alias uint OTXTILevel; alias uint OTXTIName; alias uint OTXTIStates; alias OTConfiguration* OTConfigurationRef; alias uint OTServiceType; alias int OTDataSize; alias uint OTPortRef; alias OTPortRef* OTPortRefPtr; alias ubyte OTBusType; alias ushort OTDeviceType; alias ushort OTSlotNumber; alias OpaqueOTClientContextPtr* OTClientContextPtr; alias uint OTInitializationFlags; alias OTProcessProcPtr OTProcessUPP; alias int OTDeferredTaskRef; alias int OTSystemTaskRef; alias UnsignedWide OTTimeStamp; alias OTListSearchProcPtr OTListSearchUPP; alias ubyte OTLock; extern (C) { alias ubyte function (void*, OTLink*) OTListSearchProcPtr; alias void function (void*) OTProcessProcPtr; alias void function (void*, uint, int, void*) OTNotifyProcPtr; } // This is needed otherwise the enums will fail compiling with gdc version (GNU) { private { const __kOTCFMClass = getOSType!("otan"); } } enum { kOTCFMClass = getOSType!("otan") } enum { kO_ASYNC = 0x01, kO_NDELAY = 0x04, kO_NONBLOCK = 0x04 } enum { TSUCCESS = 0, TBADADDR = 1, TBADOPT = 2, TACCES = 3, TBADF = 4, TNOADDR = 5, TOUTSTATE = 6, TBADSEQ = 7, TSYSERR = 8, TLOOK = 9, TBADDATA = 10, TBUFOVFLW = 11, TFLOW = 12, TNODATA = 13, TNODIS = 14, TNOUDERR = 15, TBADFLAG = 16, TNOREL = 17, TNOTSUPPORT = 18, TSTATECHNG = 19, TNOSTRUCTYPE = 20, TBADNAME = 21, TBADQLEN = 22, TADDRBUSY = 23, TINDOUT = 24, TPROVMISMATCH = 25, TRESQLEN = 26, TRESADDR = 27, TQFULL = 28, TPROTO = 29, TBADSYNC = 30, TCANCELED = 31, TLASTXTIERROR = 31 } enum { kOTGenericName = 0 } enum { T_BIND = 1, T_OPTMGMT = 2, T_CALL = 3, T_DIS = 4, T_UNITDATA = 5, T_UDERROR = 6, T_INFO = 7, T_REPLYDATA = 8, T_REQUESTDATA = 9, T_UNITREQUEST = 10, T_UNITREPLY = 11 } enum { T_ADDR = 0x01, T_OPT = 0x02, T_UDATA = 0x04, T_ALL = 0xFFFF } enum { T_MORE = 0x0001, T_EXPEDITED = 0x0002, T_ACKNOWLEDGED = 0x0004, T_PARTIALDATA = 0x0008, T_NORECEIPT = 0x0010, T_TIMEDOUT = 0x0020 } enum { T_NEGOTIATE = 0x0004, T_CHECK = 0x0008, T_DEFAULT = 0x0010, T_CURRENT = 0x0080 } enum { T_SUCCESS = 0x0020, T_FAILURE = 0x0040, T_PARTSUCCESS = 0x0100, T_READONLY = 0x0200, T_NOTSUPPORT = 0x0400 } enum { T_LISTEN = 0x0001, T_CONNECT = 0x0002, T_DATA = 0x0004, T_EXDATA = 0x0008, T_DISCONNECT = 0x0010, T_ERROR = 0x0020, T_UDERR = 0x0040, T_ORDREL = 0x0080, T_GODATA = 0x0100, T_GOEXDATA = 0x0200, T_REQUEST = 0x0400, T_REPLY = 0x0800, T_PASSCON = 0x1000, T_RESET = 0x2000, kPRIVATEEVENT = 0x10000000, kCOMPLETEEVENT = 0x20000000, T_BINDCOMPLETE = 0x20000001, T_UNBINDCOMPLETE = 0x20000002, T_ACCEPTCOMPLETE = 0x20000003, T_REPLYCOMPLETE = 0x20000004, T_DISCONNECTCOMPLETE = 0x20000005, T_OPTMGMTCOMPLETE = 0x20000006, T_OPENCOMPLETE = 0x20000007, T_GETPROTADDRCOMPLETE = 0x20000008, T_RESOLVEADDRCOMPLETE = 0x20000009, T_GETINFOCOMPLETE = 0x2000000A, T_SYNCCOMPLETE = 0x2000000B, T_MEMORYRELEASED = 0x2000000C, T_REGNAMECOMPLETE = 0x2000000D, T_DELNAMECOMPLETE = 0x2000000E, T_LKUPNAMECOMPLETE = 0x2000000F, T_LKUPNAMERESULT = 0x20000010, kOTSyncIdleEvent = 0x20000011, kSTREAMEVENT = 0x21000000, kOTReservedEvent1 = 0x21000001, kGetmsgEvent = 0x21000002, kStreamReadEvent = 0x21000003, kStreamWriteEvent = 0x21000004, kStreamIoctlEvent = 0x21000005, kOTReservedEvent2 = 0x21000006, kStreamOpenEvent = 0x21000007, kPollEvent = 0x21000008, kOTReservedEvent3 = 0x21000009, kOTReservedEvent4 = 0x2100000A, kOTReservedEvent5 = 0x2100000B, kOTReservedEvent6 = 0x2100000C, kOTReservedEvent7 = 0x2100000D, kOTReservedEvent8 = 0x2100000E, kSIGNALEVENT = 0x22000000, kPROTOCOLEVENT = 0x23000000, kOTProviderIsDisconnected = 0x23000001, kOTProviderIsReconnected = 0x23000002, kOTProviderWillClose = 0x24000001, kOTProviderIsClosed = 0x24000002, kOTPortDisabled = 0x25000001, kOTPortEnabled = 0x25000002, kOTPortOffline = 0x25000003, kOTPortOnline = 0x25000004, kOTClosePortRequest = 0x25000005, kOTYieldPortRequest = 0x25000005, kOTNewPortRegistered = 0x25000006, kOTPortNetworkChange = 0x25000007, kOTConfigurationChanged = 0x26000001, kOTSystemSleep = 0x26000002, kOTSystemShutdown = 0x26000003, kOTSystemAwaken = 0x26000004, kOTSystemIdle = 0x26000005, kOTSystemSleepPrep = 0x26000006, kOTSystemShutdownPrep = 0x26000007, kOTSystemAwakenPrep = 0x26000008, kOTStackIsLoading = 0x27000001, kOTStackWasLoaded = 0x27000002, kOTStackIsUnloading = 0x27000003 } enum { kOTDisablePortEvent = 0x21000001, kStreamCloseEvent = 0x21000006, kBackgroundStreamEvent = 0x21000009, kIoctlRecvFdEvent = 0x2100000A, kOTTryShutdownEvent = 0x2100000B, kOTScheduleTerminationEvent = 0x2100000C, kOTEnablePortEvent = 0x2100000D, kOTNewPortRegisteredEvent = 0x2100000E, kOTPortOfflineEvent = 0x2100000F, kOTPortOnlineEvent = 0x21000010, kOTPortNetworkChangeEvent = 0x21000011 } enum { kSIGHUP = 1, kSIGURG = 16, kSIGPOLL = 30 } enum { XTI_GENERIC = 0xFFFF } enum { XTI_DEBUG = 0x0001, XTI_LINGER = 0x0080, XTI_RCVBUF = 0x1002, XTI_RCVLOWAT = 0x1004, XTI_SNDBUF = 0x1001, XTI_SNDLOWAT = 0x1003, XTI_PROTOTYPE = 0x1005, OPT_CHECKSUM = 0x0600, OPT_RETRYCNT = 0x0601, OPT_INTERVAL = 0x0602, OPT_ENABLEEOM = 0x0603, OPT_SELFSEND = 0x0604, OPT_SERVERSTATUS = 0x0605, OPT_ALERTENABLE = 0x0606, OPT_KEEPALIVE = 0x0008 } enum { MIOC_STREAMIO = 'A', MIOC_TMOD = 'a', MIOC_STRLOG = 'b', MIOC_ND = 'c', MIOC_ECHO = 'd', MIOC_TLI = 'e', MIOC_RESERVEDf = 'f', MIOC_SAD = 'g', MIOC_ARP = 'h', MIOC_HAVOC = 'H', MIOC_RESERVEDi = 'i', MIOC_SIOC = 'j', MIOC_TCP = 'k', MIOC_DLPI = 'l', MIOC_SOCKETS = 'm', MIOC_IPX = 'o', MIOC_OT = 'O', MIOC_ATALK = 'T', MIOC_SRL = 'U', MIOC_RESERVEDp = 'p', MIOC_RESERVEDr = 'r', MIOC_RESERVEDs = 's', MIOC_CFIG = 'z' } enum { I_OTGetMiscellaneousEvents = ((MIOC_OT << 8) | 1), I_OTSetFramingType = ((MIOC_OT << 8) | 2), kOTGetFramingValue = cast(uint)0xFFFFFFFF, I_OTSetRawMode = ((MIOC_OT << 8) | 3), kOTSetRecvMode = 0x01, kOTSendErrorPacket = 0x02, I_OTConnect = ((MIOC_OT << 8) | 4), I_OTDisconnect = ((MIOC_OT << 8) | 5), I_OTScript = ((MIOC_OT << 8) | 6) } enum { T_UNINIT = 0, T_UNBND = 1, T_IDLE = 2, T_OUTCON = 3, T_INCON = 4, T_DATAXFER = 5, T_OUTREL = 6, T_INREL = 7 } static if (D_LP64) { enum : ulong { T_YES = 1, T_NO = 0, T_UNUSED = -1, kT_NULL = 0, T_ABSREQ = 0x8000 } } else { enum : uint { T_YES = 1, T_NO = 0, T_UNUSED = -1, kT_NULL = 0, T_ABSREQ = 0x8000 } } enum { kT_UNSPEC = cast(uint)0xFFFFFFFD, T_ALLOPT = 0 } enum { kOTOptionHeaderSize = TOptionHeader.sizeof, kOTBooleanOptionDataSize = uint.sizeof, kOTBooleanOptionSize = kOTOptionHeaderSize + kOTBooleanOptionDataSize, kOTOneByteOptionSize = kOTOptionHeaderSize + 1, kOTTwoByteOptionSize = kOTOptionHeaderSize + 2, kOTFourByteOptionSize = kOTOptionHeaderSize + uint.sizeof } enum { T_COTS = 1, T_COTS_ORD = 2, T_CLTS = 3, T_TRANS = 5, T_TRANS_ORD = 6, T_TRANS_CLTS = 7 } enum { T_SENDZERO = 0x0001, T_XPG4_1 = 0x0002, T_CAN_SUPPORT_MDATA = 0x10000000, T_CAN_RESOLVE_ADDR = 0x40000000, T_CAN_SUPPLY_MIB = 0x20000000 } enum { T_INFINITE = -1, T_INVALID = -2 } enum { kOTInvalidPortRef = 0 } enum { kOTUnknownBusPort = 0, kOTMotherboardBus = 1, kOTNuBus = 2, kOTPCIBus = 3, kOTGeoPort = 4, kOTPCCardBus = 5, kOTFireWireBus = 6, kOTLastBusIndex = 15 } enum { kOTNoDeviceType = 0, kOTADEVDevice = 1, kOTMDEVDevice = 2, kOTLocalTalkDevice = 3, kOTIRTalkDevice = 4, kOTTokenRingDevice = 5, kOTISDNDevice = 6, kOTATMDevice = 7, kOTSMDSDevice = 8, kOTSerialDevice = 9, kOTEthernetDevice = 10, kOTSLIPDevice = 11, kOTPPPDevice = 12, kOTModemDevice = 13, kOTFastEthernetDevice = 14, kOTFDDIDevice = 15, kOTIrDADevice = 16, kOTATMSNAPDevice = 17, kOTFibreChannelDevice = 18, kOTFireWireDevice = 19, kOTPseudoDevice = 1023, kOTLastDeviceIndex = 1022 } enum { kOTLastSlotNumber = 255, kOTLastOtherNumber = 255 } enum { kMaxModuleNameLength = 31, kMaxModuleNameSize = kMaxModuleNameLength + 1, kMaxProviderNameLength = kMaxModuleNameLength + 4, kMaxProviderNameSize = kMaxProviderNameLength + 1, kMaxSlotIDLength = 7, kMaxSlotIDSize = kMaxSlotIDLength + 1, kMaxResourceInfoLength = 31, kMaxResourceInfoSize = 32, kMaxPortNameLength = kMaxModuleNameLength + 4, kMaxPortNameSize = kMaxPortNameLength + 1 } enum { kOTPortIsActive = 0x00000001, kOTPortIsDisabled = 0x00000002, kOTPortIsUnavailable = 0x00000004, kOTPortIsOffline = 0x00000008 } enum { kOTPortIsDLPI = 0x00000001, kOTPortIsTPI = 0x00000002, kOTPortCanYield = 0x00000004, kOTPortCanArbitrate = 0x00000008, kOTPortIsTransitory = 0x00000010, kOTPortAutoConnects = 0x00000020, kOTPortIsSystemRegistered = 0x00004000, kOTPortIsPrivate = 0x00008000, kOTPortIsAlias = cast(uint)0x80000000 } enum : uint { kNetbufDataIsOTData = 0xFFFFFFFE } enum : uint { kOTNetbufDataIsOTBufferStar = 0xFFFFFFFD } enum : uint { kOTNetbufIsRawMode = 0xFFFFFFFF } enum { kInitOTForApplicationMask = 1, kInitOTForExtensionMask = 2 } struct OTAddress { ushort fAddressType; char* fAddress; } struct OTScriptInfo { uint fScriptType; void* fTheScript; uint fScriptLength; } struct TOption { uint len; uint level; uint name; uint status; UInt32* value; } struct t_kpalive { int kp_onoff; int kp_timeout; } struct t_linger { int l_onoff; int l_linger; } struct TEndpointInfo { int addr; int options; int tsdu; int etsdu; int connect; int discon; uint servtype; uint flags; } struct OTPortRecord { uint fRef; uint fPortFlags; uint fInfoFlags; uint fCapabilities; uint fNumChildPorts; OTPortRef* fChildPorts; char* fPortName; char* fModuleName; char* fSlotID; char* fResourceInfo; char* fReserved; } struct TNetbuf { uint maxlen; uint len; char* buf; } struct strbuf { int maxlen; int len; char* buf; } struct OTData { void* fNext; void* fData; uint fLen; } struct OTBuffer { void* fLink; void* fLink2; OTBuffer* fNext; char* fData; uint fLen; void* fSave; ubyte fBand; ubyte fType; ubyte fPad1; ubyte fFlags; } struct OTBufferInfo { OTBuffer* fBuffer; uint fOffset; ubyte fPad; } struct TBind { TNetbuf addr; uint qlen; } struct TDiscon { TNetbuf udata; int reason; int sequence; } struct TCall { TNetbuf addr; TNetbuf opt; TNetbuf udata; int sequence; } struct TUnitData { TNetbuf addr; TNetbuf opt; TNetbuf udata; } struct TUDErr { TNetbuf addr; TNetbuf opt; int error; } struct TOptMgmt { TNetbuf opt; uint flags; } struct TRequest { TNetbuf data; TNetbuf opt; int sequence; } struct TReply { TNetbuf data; TNetbuf opt; int sequence; } struct TUnitRequest { TNetbuf addr; TNetbuf opt; TNetbuf udata; int sequence; } struct TUnitReply { TNetbuf opt; TNetbuf udata; int sequence; } struct TRegisterRequest { TNetbuf name; TNetbuf addr; uint flags; } struct TRegisterReply { TNetbuf addr; int nameid; } struct TLookupRequest { TNetbuf name; TNetbuf addr; uint maxcnt; uint timeout; uint flags; } struct TLookupReply { TNetbuf names; uint rspcount; } struct TLookupBuffer { ushort fAddressLength; ushort fNameLength; char* fAddressBuffer; } struct OTLink { OTLink* fNext; } struct OTLIFO { OTLink* fHead; } struct OTList { OTLink* fHead; } extern (C) { OTNotifyUPP NewOTNotifyUPP (OTNotifyProcPtr userRoutine); void DisposeOTNotifyUPP (OTNotifyUPP userUPP); void InvokeOTNotifyUPP (void* contextPtr, uint code, int result, void* cookie, OTNotifyUPP userUPP); OTProcessUPP NewOTProcessUPP (OTProcessProcPtr userRoutine); void DisposeOTProcessUPP (OTProcessUPP userUPP); void InvokeOTProcessUPP (void* arg, OTProcessUPP userUPP); OTListSearchUPP NewOTListSearchUPP (OTListSearchProcPtr userRoutine); void DisposeOTListSearchUPP (OTListSearchUPP userUPP); ubyte InvokeOTListSearchUPP (void* ref_, OTLink* linkToCheck, OTListSearchUPP userUPP); }