Mercurial > projects > dstep
diff dstep/coreservices/carboncore/OSUtils.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/coreservices/carboncore/OSUtils.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,125 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 21, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.coreservices.carboncore.OSUtils; + +//import dstep.AvailabilityMacros; +import dstep.coreservices.carboncore.DateTimeUtils; +import dstep.coreservices.carboncore.MacMemory; +import dstep.coreservices.carboncore.MacTypes; +import dstep.coreservices.carboncore.MixedMode; +import dstep.corefoundation.CFBase; +import dstep.internal.Types; + +alias byte QTypes; +alias QElem* QElemPtr; +alias QHdr* QHdrPtr; +alias void* SysPPtr; +alias DeferredTaskProcPtr DeferredTaskUPP; +alias DeferredTask* DeferredTaskPtr; + +extern (C) +{ + alias void function (int) DeferredTaskProcPtr; +} + +enum +{ + sortsBefore = -1, + sortsEqual = 0, + sortsAfter = 1 +} + +enum +{ + dummyType = 0, + vType = 1, + ioQType = 2, + drvQType = 3, + evType = 4, + fsQType = 5, + sIQType = 6, + dtQType = 7, + nmType = 8 +} + +enum +{ + useFree = 0, + useATalk = 1, + useAsync = 2, + useExtClk = 3, + useMIDI = 4 +} + +enum +{ + false32b = 0, + true32b = 1 +} + +struct QElem +{ + QElem* qLink; + short qType; + short* qData; +} + + +struct QHdr +{ + short qFlags; + QElemPtr qHead; + QElemPtr qTail; +} + + +struct MachineLocation +{ + Fract latitude; + Fract longitude; + + union + { + version (BigEndian) + byte dlsDelta; + + c_long gmtDelta; + + struct + { + version (LittleEndian) + byte[3] pad; + + byte Delta; + } + } +} + +struct DeferredTask +{ + short qLink; + short qType; + short dtFlags; + int dtAddr; + int dtParam; + c_long dtReserved; +} + +extern (C) +{ + ubyte IsMetric (); + void Delay (c_ulong numTicks, c_ulong* finalTicks); + void Enqueue (QElemPtr qElement, QHdrPtr qHeader); + short Dequeue (QElemPtr qElement, QHdrPtr qHeader); + void ReadLocation (MachineLocation* loc); + uint TickCount (); + CFStringRef CSCopyUserName (ubyte useShortName); + CFStringRef CSCopyMachineName (); + DeferredTaskUPP NewDeferredTaskUPP (DeferredTaskProcPtr userRoutine); + void DisposeDeferredTaskUPP (DeferredTaskUPP userUPP); + void InvokeDeferredTaskUPP (int dtParam, DeferredTaskUPP userUPP); +} \ No newline at end of file