Fix for bug 2283 (RVCT 4.0 support is missing from PDK 3.0.h)
Have multiple extension sections in the bld.inf, one for each version
of the compiler. The RVCT version building the tools will build the
runtime libraries for its version, but make sure we extract all the other
versions from zip archives. Also add the archive for RVCT4.
// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the License "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
// e32\include\nkern\nk_trace.h
//
// WARNING: This file contains some APIs which are internal and are subject
// to change without notice. Such APIs should therefore not be used
// outside the Kernel and Hardware Services package.
//
#ifndef NK_TRACE_H
#define NK_TRACE_H
/**
@internalComponent
*/
#define DEBUGPRINT KPrintf
/**
@publishedPartner
@released
*/
#define DEBUGMASK (KDebugMask())
#define DEBUGNUM(x) (KDebugNum(x))
GLREF_C void KPrintf(const char*,...);
/**
@publishedPartner
@released
*/
IMPORT_C TInt KDebugMask();
IMPORT_C TBool KDebugNum(TInt aBitNum);
#if defined(_DEBUG)
//#if (1)
/**
@publishedPartner
@released
*/
// __KTRACE_MASK only supports the first 32 debug trace bits
#define __KTRACE_MASK(a,p) {if((DEBUGMASK&(a)))p;}
#define __KTRACE_OPT(a,p) {if((DEBUGNUM(a)))p;}
#define __KTRACE_OPT2(a,b,p) {if( (DEBUGNUM(a)) || (DEBUGNUM(b)) )p;}
/**
@publishedPartner
@released
*/
// __KTRACE_ALL only supports the first 32 debug trace bits
#define __KTRACE_ALL(a,p) {if((DEBUGMASK&(a))==(a))p;}
/**
@publishedPartner
@released
*/
#define KHARDWARE 0 //0x00000001
/**
@publishedPartner
@released
*/
#define KBOOT 1 //0x00000002
/**
@publishedPartner
@released
*/
#define KSERVER 2 //0x00000004
/**
@publishedPartner
@released
*/
#define KMMU 3 //0x00000008
/**
@publishedPartner
@released
*/
#define KSEMAPHORE 4 //0x00000010
/**
@publishedPartner
@released
*/
#define KSCHED 5 //0x00000020
/**
@publishedPartner
@released
*/
#define KPROC 6 //0x00000040
/**
@publishedPartner
@released
*/
#define KEXEC 7 //0x00000080
/**
@publishedPartner
@released
*/
#define KDEBUGGER 8 //0x00000100 // for kernel-side debug agents
/**
@publishedPartner
@released
*/
#define KTHREAD 9 //0x00000200
/**
@publishedPartner
@released
*/
#define KDLL 10 //0x00000400
/**
@publishedPartner
@released
*/
#define KIPC 11 //0x00000800
/**
@publishedPartner
@released
*/
#define KPBUS1 12 //0x00001000
/**
@publishedPartner
@released
*/
#define KPBUS2 13 //0x00002000
/**
@publishedPartner
@released
*/
#define KPBUSDRV 14 //0x00004000
/**
@publishedPartner
@released
*/
#define KPOWER 15 //0x00008000
/**
@publishedPartner
@released
*/
#define KTIMING 16 //0x00010000
/**
@publishedPartner
@released
*/
#define KEVENT 17 //0x00020000
/**
@publishedPartner
@released
*/
#define KOBJECT 18 //0x00040000
/**
@publishedPartner
@released
*/
#define KDFC 19 //0x00080000
/**
@publishedPartner
@released
*/
#define KEXTENSION 20 //0x00100000
/**
@publishedPartner
@released
*/
#define KSCHED2 21 //0x00200000
/**
@publishedPartner
@released
*/
#define KLOCDRV 22 //0x00400000
/**
@publishedPartner
@released
*/
#define KFAIL 23 //0x00800000
/**
@publishedPartner
@released
*/
#define KTHREAD2 24 //0x01000000
/**
@publishedPartner
@released
*/
#define KDEVICE 25 //0x02000000
/**
@publishedPartner
@released
*/
#define KMEMTRACE 26 //0x04000000
/**
@publishedPartner
@released
*/
#define KDMA 27 //0x08000000
/**
@publishedPartner
@released
*/
#define KMMU2 28 //0x10000000
/**
@publishedPartner
@released
*/
#define KNKERN 29 //0x20000000
/**
@publishedPartner
@released
*/
#define KSCRATCH 30 //0x40000000 // reserved for temporary debugging
/**
@publishedPartner
@released
*/
#define KPANIC 31 //0x80000000
/**
@publishedPartner
@released
*/
#define KUSB 32 //0x00000001, index 1
/**
@publishedPartner
@released
*/
#define KUSBPSL 33 //0x00000002, index 1
/**
@internalComponent
@released
*/
#define KNETWORK1 34 //0x00000004, index 1
/**
@internalComponent
@released
*/
#define KNETWORK2 35 //0x00000008, index 1
/**
@publishedPartner
@released
*/
#define KSOUND1 36 //0x00000010, index 1
/**
@publishedPartner
@released
*/
#define KUSBHOST 37 //0x00000020, index 1
/**
@publishedPartner
@released
*/
#define KUSBOTG 38 //0x00000040, index 1
/**
@publishedPartner
@released
*/
#define KUSBJOURNAL 39 //0x00000080, index 1
/**
@publishedPartner
@released
*/
#define KUSBHO 40 //0x00000100, index 1
/**
@publishedPartner
@released
*/
#define KRESMANAGER 41 //0x00000200, index 1
/**
@publishedPartner
@prototype
*/
#define KIIC 42 //0x00000400, index 1
/**
@publishedPartner
@prototype
*/
#define KHCR 43 //0x00000800, index 1
/**
@internalComponent
@released
*/
#define KREALTIME 63 //0x80000000, index 1
/**
@internalComponent
@released
*/
#define KPAGING 62 //0x40000000, index 1
/**
@internalComponent
@released
*/
#define KLOCDPAGING 61 //0x20000000, index 1
/**
@internalComponent
@released
*/
#define KDATAPAGEWARN 60 //0x10000000, index 1
/**
@internalComponent
@prototype
*/
#define KPCI 59 //0x08000000, index 1
/**
@internalComponent
@prototype
*/
#define KPIPE 58 //0x04000000, index 1
// RESERVED: Trace bits 192 - 255 are reserved for licensee partners
/**
@publishedPartner
@released
*/
#define KALWAYS -1 //0xffffffff
#define KMAXTRACE (KNumTraceMaskWords*32-1) // the maximum debug trace bit
#else
#define __KTRACE_OPT(a,p)
#define __KTRACE_ALL(a,p)
#define __KTRACE_OPT2(a,b,p)
#define KALWAYS -1
#define KMAXTRACE (KNumTraceMaskWords*32-1)
#endif
/**
@publishedPartner
@released
*/
#define DEBUGMASKWORD2 2
/*
words 0 & 1 of debug mask should be used for kernel debugging
word 2 of debug mask should be used to configure the ways the kernel behaves
word 3 of debug mask should be used to configure the ways the user library behaves
words 4 & 5 of debug mask should be used for file system debugging
words 6 & 7 of debug mask are reserved for licensees
*/
/**
@publishedPartner
@released
*/
#define KALLTHREADSSYSTEM 64 //0x00000001, index 2
/**
Suppresses console output (in EWSRV) for faster automated tests.
@publishedPartner
@released
*/
#define KTESTFAST 65 //0x00000002, index 2
/**
Suppresses anything which might disturb latency testing,
for example platsec diagnostics emitted with the system lock held.
@publishedPartner
@released
*/
#define KTESTLATENCY 66 //0x00000004, index 2
/**
When a crash occurs this flag determines whether the debugger executes.
If set the crash debugger will NOT operate (even if it's in rom).
If clear the crash debugger will run.
@publishedPartner
@released
*/
#define KDEBUGMONITORDISABLE 67 //0x00000008, index 2
/**
When a crash occurs this flag determines whether the logger executes.
If set the crash logger will NOT operate (even if it's in rom).
If clear the crash logger will run.
@publishedPartner
@released
*/
#define KCRASHLOGGERDISABLE 68 //0x00000010, index 2
/**
Delay scheduling of newly unblocked threads until the next timer tick
occurs, to check for thread priority dependencies. Part of the crazy
scheduler functionality.
@publishedPartner
@released
*/
#define KCRAZYSCHEDDELAY 69 //0x00000020, index 2
/* Word 3 of debug mask : configures user library behaviour */
/**
@publishedPartner
@released
*/
#define KUSERHEAPTRACE 96 //0x00000001, index 3
#ifdef KFAIL
/**
@publishedPartner
@released
*/
#define __KTRACE_FAIL(r,p) {if ((r)!=KErrNone && (DEBUGNUM(KFAIL))) p;}
#else
#define __KTRACE_FAIL(r,p)
#endif
#include <e32btrace.h>
#ifdef __KERNEL_MODE__
class DBTraceFilter2;
/**
@internalComponent
*/
struct SBTraceData
{
TUint8 iFilter[256];
BTrace::THandler iHandler;
BTrace::TControlFunction iControl;
DBTraceFilter2*volatile iFilter2;
TBool CheckFilter2(TUint32 aUid);
};
/**
@internalComponent
*/
extern SBTraceData BTraceData;
#if defined(_DEBUG) || defined(BTRACE_KERNEL_ALL)
#undef BTRACE_THREAD_IDENTIFICATION
#undef BTRACE_CPU_USAGE
#undef BTRACE_CHUNKS
#undef BTRACE_CODESEGS
#undef BTRACE_PAGING
#undef BTRACE_PAGING_MEDIA
#undef BTRACE_KERNEL_MEMORY
#undef BTRACE_RAM_ALLOCATOR
#undef BTRACE_FAST_MUTEX
#undef BTRACE_RESOURCE_MANAGER
#undef BTRACE_RESMANUS
#undef BTRACE_TRAWEVENT
#undef BTRACE_SYMBIAN_KERNEL_SYNC
#undef BTRACE_FLEXIBLE_MEM_MODEL
#undef BTRACE_CLIENT_SERVER
#undef BTRACE_REQUESTS
/**
If defined, code for BTrace category BTrace::EThreadIdentification
is compiled into the kernel.
@publishedPartner
@released
*/
#define BTRACE_THREAD_IDENTIFICATION
/**
If defined, code for BTrace category BTrace::ECpuUsage
is compiled into the kernel.
@publishedPartner
@released
*/
#define BTRACE_CPU_USAGE
/**
If defined, code for BTrace category BTrace::EChunks is compiled into the
kernel.
@publishedPartner
@released
*/
#define BTRACE_CHUNKS
/**
If defined, code for BTrace category BTrace::ECodeSegs is compiled into the
kernel.
@publishedPartner
@released
*/
#define BTRACE_CODESEGS
/**
If defined, code for BTrace category BTrace::EPaging is compiled into the
kernel.
@publishedPartner
@released 9.3
*/
#define BTRACE_PAGING
/**
If defined, code for BTrace category BTrace::EPagingMedia is compiled into the
Local Media Subsystem and relevant paging media drivers.
@publishedPartner
@released 9.3
*/
#define BTRACE_PAGING_MEDIA
/**
If defined, code for BTrace category BTrace::EKernelMemory is compiled into the
kernel.
@publishedPartner
@released 9.4
*/
#define BTRACE_KERNEL_MEMORY
/**
If defined, code for BTrace category BTrace::ERamAllocator is compiled into the
kernel.
This BTrace category is only supported on the multiple and moving memory models.
@publishedPartner
@released 9.4
*/
#if defined(__MEMMODEL_MOVING__) || defined (__MEMMODEL_MULTIPLE__)
#define BTRACE_RAM_ALLOCATOR
#endif
/**
If defined, code for BTrace category BTrace::EFastMutex is compiled into the
kernel.
*/
#define BTRACE_FAST_MUTEX
/**
If defined, code for BTrace category BTrace::EResourceManager is compiled into the
Resource Manager Subsystem.
@publishedPartner
@released 9.5
*/
#define BTRACE_RESOURCE_MANAGER
/**
If defined, code for BTrace category BTrace::EResourceManagerUs is compiled into the
Resource Manager Subsystem's User-Side API.
@publishedPartner
@released 9.5
*/
#define BTRACE_RESMANUS
/**
If defined, code for BTrace category BTrace::ERawEvent is compiled into the
kernel.
@publishedPartner
@released 9.5
*/
#define BTRACE_TRAWEVENT
/**
If defined, code for BTrace category BTrace::ESymbianKernelSync is compiled into
the kernel.
*/
#define BTRACE_SYMBIAN_KERNEL_SYNC
/**
If defined, code for BTrace category BTrace::EFlexibleMemModel is compiled into
the kernel.
This BTrace category is only supported on the flexible memory model.
*/
#define BTRACE_FLEXIBLE_MEM_MODEL
/**
If defined, code for BTrace category BTrace::EIic is compiled into the
IIC Subsystem.
*/
#define BTRACE_IIC
/**
If defined, code for BTrace category BTrace::EClientServer is compiled into the
kernel.
*/
#define BTRACE_CLIENT_SERVER
/**
If defined, code for BTrace category BTrace::ERequest is compiled into the
kernel.
*/
#define BTRACE_REQUESTS
#endif // _DEBUG
#endif // __KERNEL_MODE__
#if defined(BTRACE_KERNEL_PROTOTYPE)
// Prototype trace categories...
#undef BTRACE_THREAD_PRIORITY
#define BTRACE_THREAD_PRIORITY
#endif
#if defined(BTRACE_KERNEL_VERBOSE)
// Verbose trace options
#ifdef BTRACE_PAGING
/**
If defined, verbose code for BTrace category BTrace::EPaging is compiled into the
kernel.
@publishedPartner
@released 9.3
*/
#define BTRACE_PAGING_VERBOSE
#endif
#endif //BTRACE_KERNEL_VERBOSE
#if defined(_DEBUG) && !defined(__SMP__)
/**
@internalComponent
*/
TInt KCrazySchedulerEnabled();
#endif
#endif // NK_TRACE_H