view dstep/coreservices/carboncore/Debugging.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 21, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.coreservices.carboncore.Debugging;

//import dstep.AssertMacros;
//import dstep.AvailabilityMacros;
import dstep.coreservices.carboncore.MacErrors;
import dstep.coreservices.carboncore.MacTypes;
import dstep.coreservices.carboncore.MixedMode;

alias DebugComponentCallbackProcPtr DebugComponentCallbackUPP;
alias DebugAssertOutputHandlerProcPtr DebugAssertOutputHandlerUPP;

extern (C)
{
	alias void function (uint, uint, char*, char*, char*, char*, int, void*, char*) DebugAssertOutputHandlerProcPtr;
	alias void function (int, uint, char*) DebugComponentCallbackProcPtr;
}

enum
{
	kBlessedBusErrorBait = 0x68F168F1
}

enum
{
	k68kInterruptLevelMask = 0x00000007,
	kInVBLTaskMask = 0x00000010,
	kInDeferredTaskMask = 0x00000020,
	kInSecondaryIntHandlerMask = 0x00000040,
	kInNestedInterruptMask = 0x00000080
}

enum
{
	kComponentDebugOption = 0
}

enum
{
	kGetDebugOption = 1,
	kSetDebugOption = 2
}

extern (C)
{
	void DebugAssert (uint componentSignature, uint options, char* assertionString, char* exceptionLabelString, char* errorString, char* fileName, int lineNumber, void* value);
	uint TaskLevel ();
	int NewDebugComponent (uint componentSignature, char* componentName, DebugComponentCallbackUPP componentCallback);
	int NewDebugOption (uint componentSignature, int optionSelectorNum, char* optionName);
	int DisposeDebugComponent (uint componentSignature);
	int GetDebugComponentInfo (uint itemIndex, OSType* componentSignature, ubyte[256] componentName);
	int GetDebugOptionInfo (uint itemIndex, uint componentSignature, SInt32* optionSelectorNum, ubyte[256] optionName, char* optionSetting);
	int SetDebugOptionValue (uint componentSignature, int optionSelectorNum, ubyte newOptionSetting);
	void InstallDebugAssertOutputHandler (DebugAssertOutputHandlerUPP handler);
	char* GetMacOSStatusErrorString (int err);
	char* GetMacOSStatusCommentString (int err);
	DebugComponentCallbackUPP NewDebugComponentCallbackUPP (DebugComponentCallbackProcPtr userRoutine);
	DebugAssertOutputHandlerUPP NewDebugAssertOutputHandlerUPP (DebugAssertOutputHandlerProcPtr userRoutine);
	void DisposeDebugComponentCallbackUPP (DebugComponentCallbackUPP userUPP);
	void DisposeDebugAssertOutputHandlerUPP (DebugAssertOutputHandlerUPP userUPP);
	void InvokeDebugComponentCallbackUPP (int optionSelectorNum, uint command, char* optionSetting, DebugComponentCallbackUPP userUPP);
	void InvokeDebugAssertOutputHandlerUPP (uint componentSignature, uint options, char* assertionString, char* exceptionLabelString, char* errorString, char* fileName, int lineNumber, void* value, char* outputMsg, DebugAssertOutputHandlerUPP userUPP);
}