コード例 #1
0
/**
 * Callback function for Trace Activation
 * 
 * @param aComponentId
 * @param aGroupId         
 */   
void DTraceCompilerTesterAdvanced::TraceActivated( TUint32 aComponentId, TUint16 aGroupId  )
    {
    
    Kern::Printf( "DTraceCompilerTesterAdvanced::TraceActivated - ComponentId = 0x%x, GroupId = 0x%x", aComponentId, aGroupId ); 
    
    if (aGroupId == POINTER_PARAMETER_TEST)
        {
        // Print out pointer values of two NTimers by using %p tag 
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Pointer Parameter Test START----------------" ); 
        NTimer* myNTimer1 = new NTimer();
        NTimer* myNTimer2 = new NTimer();
        const NTimer* myNTimer3 = new NTimer();
        OstTraceExt2( POINTER_PARAMETER_TEST, POINTER_PARAMETER_TRACE1, "Print out pointer values of two NTimers;myNTimer1=%p;myNTimer2=%p", myNTimer1, myNTimer2 );
        OstTraceExt1( POINTER_PARAMETER_TEST, POINTER_PARAMETER_TRACE2, "Print out pointer values of one const NTimers;myNTimer3=%p", myNTimer3 );
        delete myNTimer1;
        delete myNTimer2;
        delete myNTimer3;
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Pointer Parameter Test END----------------" ); 
        }
    else if (aGroupId == LONG_TRACE_TEST)
        {
        // Print out n times traces those lengths are 60, 300, 512 and 600 characters.
		// Print out also some traces those parameter total length is more than 512
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test START----------------" ); 
        
        TInt i=0;
	    TUint numberOfTraces = 1;
	    TInt32 freq = NKern::FastCounterFrequency();
        TUint32 startTime;
	    TUint32 endTime;
	    TUint32 time;
	    
	    TUint timeTestNumber1 = 0;
        TUint timeTestNumber2 = 0;
        TUint timeTestNumber3 = 0;
        TUint timeTestNumber4 = 0;
        TUint timeTestNumber5 = 0;
        TUint timeTestNumber6 = 0;
        TUint timeTestNumber7 = 0;
        // ---------------------------- Ascii60 ----------------------------	    
	    startTime = NKern::FastCounter();
	    Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii60----------------" ); 	    
	    for (i=0; i < numberOfTraces; i++)
	        {
            OstTraceExt1( LONG_TRACE_TEST, ASCII60, "Ascii60: %s", buf60);
            }
        endTime = NKern::FastCounter();
        time = (endTime - startTime) * 1000 / freq;

        timeTestNumber1 = time;
        // ---------------------------- Ascii60 ----------------------------
        
	    // ---------------------------- Ascii300 ----------------------------	    
	    startTime = NKern::FastCounter();
	    Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii300----------------" ); 
	    for (i=0; i < numberOfTraces; i++)
	        {
            OstTraceExt1( LONG_TRACE_TEST, ASCII300, "Ascii300: %s", buf300);
            }
        endTime = NKern::FastCounter();
        time = (endTime - startTime) * 1000 / freq;

        timeTestNumber2 = time;
        // ---------------------------- Ascii300 ----------------------------
        
        // ---------------------------- Ascii512 ----------------------------	    
	    startTime = NKern::FastCounter();
	    Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii512----------------" ); 
	    for (i=0; i < numberOfTraces; i++)
	        {
            OstTraceExt1( LONG_TRACE_TEST, ASCII512, "Ascii512: %s", buf512);
            }
        endTime = NKern::FastCounter();
        time = (endTime - startTime) * 1000 / freq;

        timeTestNumber3 = time;
        // ---------------------------- Ascii512 ----------------------------            

	    // ---------------------------- Ascii600 ----------------------------	    
	    startTime = NKern::FastCounter();
	    Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii600----------------" ); 
	    for (i=0; i < numberOfTraces; i++)
	        {
            OstTraceExt1( LONG_TRACE_TEST, ASCII600, "Ascii600: %s", buf600);
            }
        endTime = NKern::FastCounter();
        time = (endTime - startTime) * 1000 / freq;

        timeTestNumber4 = time;
        // ---------------------------- Ascii600 ----------------------------    

        // ---------------------------- Ascii300 + Ascii512 ----------------------------       
        startTime = NKern::FastCounter();
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii300 + Ascii512----------------" ); 
        for (i=0; i < numberOfTraces; i++)
            {
            OstTraceExt2( LONG_TRACE_TEST, ASCII300_ASCII512, "Ascii300: %s Ascii512: %s", buf300, buf512);
            }
        endTime = NKern::FastCounter();
        time = (endTime - startTime) * 1000 / freq;

        timeTestNumber5 = time;
        // ---------------------------- Ascii300 + Ascii512 ----------------------------            
 
        // ---------------------------- Ascii600 + Ascii300 ----------------------------       
        startTime = NKern::FastCounter();
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii600 + Ascii300----------------" ); 
        for (i=0; i < numberOfTraces; i++)
            {
            OstTraceExt2( LONG_TRACE_TEST, ASCII600_ASCII300, "Ascii600: %s Ascii300: %s", buf600, buf300);
            }
        endTime = NKern::FastCounter();
        time = (endTime - startTime) * 1000 / freq;

        timeTestNumber6 = time;
        // ---------------------------- Ascii600 + Ascii300 ----------------------------
        
        // ---------------------------- Ascii333 + Ascii333 ----------------------------       
        startTime = NKern::FastCounter();
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii333 + Ascii333----------------" ); 
        for (i=0; i < numberOfTraces; i++)
            {
            OstTraceExt2( LONG_TRACE_TEST, ASCII333_ASCII333, "Ascii333: %s Ascii333: %s", buf333, buf333);
            }
        endTime = NKern::FastCounter();
        time = (endTime - startTime) * 1000 / freq;

        timeTestNumber7 = time;
        // ---------------------------- Ascii333 + Ascii333 ----------------------------       
        
		Kern::Printf( "--------------TraceCompilerTesterAdvanced----------------" ); 
        Kern::Printf( "Ascii60: %d", timeTestNumber1 );
        Kern::Printf( "Ascii300: %d", timeTestNumber2 ); 
        Kern::Printf( "Ascii512: %d", timeTestNumber3 ); 
        Kern::Printf( "Ascii600: %d", timeTestNumber4 );
        Kern::Printf( "Ascii300 + Ascii512: %d", timeTestNumber5 );
        Kern::Printf( "Ascii600 + Ascii300: %d", timeTestNumber6 );
        Kern::Printf( "Ascii333 + Ascii333: %d", timeTestNumber7 );
		Kern::Printf( "--------------TraceCompilerTesterAdvanced----------------" );         
      
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test END----------------" ); 
        }
    else if (aGroupId == SHORT_TRACE_TEST)
        {
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test START----------------" ); 
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii1----------------" ); 
        OstTraceExt1( SHORT_TRACE_TEST, ASCII1, "Ascii1: %s", buf1);
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii2----------------" ); 
        OstTraceExt1( SHORT_TRACE_TEST, ASCII2, "Ascii2: %s", buf2);
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii3----------------" ); 
        OstTraceExt1( SHORT_TRACE_TEST, ASCII3, "Ascii3: %s", buf3);
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii4----------------" ); 
        OstTraceExt1( SHORT_TRACE_TEST, ASCII4, "Ascii4: %s", buf4);
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii1 + Acii2----------------" ); 
        OstTraceExt2( SHORT_TRACE_TEST, ASCII5, "Ascii1: %s Ascii2: %s", buf1, buf2);

        Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test END----------------" ); 
        }
    else if (aGroupId == INCLUDED_NON_SOURCE_FILE_TEST)
        {
        // Print out traces from included non-source file that is defined in trace.properties file
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Included Non-Source File Test START----------------" );
        
        this->HelloWorld();
        this->HelloMoon();
        
        TUint32 value3 = GetBigValue1000();
        TUint32 value4 = GetBigValue2000();
        
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Included Non-Source File Test END----------------" );
                          
        }
    else if (aGroupId == TRACE_FLOW)
        {
        OstTrace0(TRACE_FLOW, TEST_TRACE_2, "Test OLD TraceCompiler");
        // This test can also use to test function parameters
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Common Source File Test START----------------");
        DTraceCompilerTesterCommon1* common1 = new DTraceCompilerTesterCommon1();
        TInt32 sum = common1->SumValues(-1, -2, 100, 200);
        delete common1;        
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Common Source File Test END----------------");
        }
    else if (aGroupId == KEKKONEN)
        {
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Kekkonen START----------------");
        DTraceCompilerTesterCommon2* common2 = new DTraceCompilerTesterCommon2();
        common2->Kekkonen();
        delete common2;
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Kekkonen END----------------");
        }
    else if (aGroupId == TRACE_STATE)
        {
        Kern::Printf( "--------------TraceCompilerTesterAdvanced State Trace Test START----------------");
        OstTraceState0(STATE_TRACE_0, "Kone1", "Running");
        OstTraceState1(STATE_TRACE_1, "Kone2", "Stopped", this);
        Kern::Printf( "--------------TraceCompilerTesterAdvanced  State Trace Test  END----------------");
        }
    else if (aGroupId == TRACE_DATA)
        {
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Data Trace Test START----------------");
        
        TBuf8<601> data(buf600);
        OstTraceData( TRACE_DATA, TRACE_DATA_TRACE,
                    "DTraceCoreXtiIf::DebugPrintMsg - Msg via XTI IF 0x%{hex8[]}", data.Ptr(), data.Size() );
        Kern::Printf( "--------------TraceCompilerTesterAdvanced Data Trace Test  END----------------");
        }
    else if (aGroupId == POST_CODE_TEST)
        {
        Kern::Printf( "--------------TraceCompilerTesterAdvanced POST Code Trace Test START----------------");
        OstTrace0(POST_CODE_TEST, POST1, "Print some POST code traces");
        Kern::Printf("[POST][X-Loader][Started][OK]");
        Kern::Printf("[POST][BootUp][Reset reason][PowerOn]");
        Kern::NanoWait(50000000);
        Kern::Printf("[POST][X-Loader][Authenticate][OK]");
        Kern::NanoWait(100000000);
        Kern::Printf("[POST][X-Loader][load][OK]");
        Kern::NanoWait(100000000);
        Kern::Printf("[POST][X-Loader][Authenticate][OK]");
        Kern::NanoWait(700000000);
        Kern::Printf("[POST][X-Loader][load][OK]");
        Kern::NanoWait(50000000);
        Kern::Printf("[POST][X-Loader][load][OK]");
        Kern::NanoWait(50000000);
        Kern::Printf("[POST][X-Loader][load][OK]");
        Kern::NanoWait(50000000);
        Kern::Printf("[POST][X-Loader][Authenticate][OK]");
        Kern::NanoWait(200000000);
        Kern::Printf("[POST][Boot strap][Started][OK]");
        Kern::NanoWait(10000000);
        Kern::Printf("[POST][Estart][started][OK]");
        Kern::NanoWait(10000000);
        Kern::Printf("[POST][Estart][CompositeFileSys.][OK]");
        Kern::NanoWait(500000000);
        Kern::Printf("[POST][Mount][Drive][OK]");
        Kern::NanoWait(200000000);
        Kern::Printf("[POST][Mount][Drive][OK]");
        Kern::NanoWait(200000000);
        Kern::Printf("[POST][Estart][ISC API start][OK]");
        Kern::NanoWait(300000000);
        Kern::Printf("[POST][Estart][userdisk format][No]");
        Kern::NanoWait(10000000);
        Kern::Printf("[POST][Estart][secenv start][OK]");
        Kern::NanoWait(20000000);
        Kern::Printf("[POST][Estart][startup mode][Local]");
        Kern::NanoWait(10000000);
        Kern::Printf("[POST][Estart][Language selection][OK]");
        Kern::NanoWait(200000000);
        Kern::Printf("[POST][SelfTest][Started][FAIL][KErrOutOfMemory]");
        Kern::NanoWait(200000000);
        Kern::Printf("[POST][BT][Started][OK]");
        Kern::NanoWait(800000000);
        Kern::Printf("[POST][WLAN][Started][OK]");
        Kern::NanoWait(800000000);
        Kern::Printf("[POST][Display][Started][OK]");
        Kern::NanoWait(800000000);
        Kern::Printf("[POST][Camera][Started][OK]");
        Kern::NanoWait(80000000);
        Kern::Printf("[POST][mc_kernelagent][ExtensionInit0][OK]");
        Kern::NanoWait(100000000);
        Kern::Printf("[POST][mc_sender][Pre-init][OK]");
        Kern::NanoWait(100000000);
        Kern::Printf("[POST][mc_useragent][MobileCrashWriter init][OK]");        
        Kern::Printf( "--------------TraceCompilerTesterAdvanced POST Code Trace Test END----------------");
        }
    }
コード例 #2
0
TInt TUptTraceCalls::DoSendTraceL(const TApiRunConfig& aApiRunConfig, TApiRunResults& aApiRunResults)
	{
	TInt error = KErrGeneral;
	TBool logged = EFalse;
	TUint32 stackbase=0;
	TUint32 before=0;
	aApiRunResults.iApiStackUsage = 0;
	
    switch(aApiRunConfig.iApiId)
	{		
		
	case EUptPrintTDesC8_big:
	case EUptKernelPrintfDesc8_big:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstPrint(attributes, KStringDesc8 );//TPtrC8((const TUint8*)KBigData8, KBigSize8)
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;

	case EUptPrintTDesC8_huge:
	case EUptKernelPrintfDesc8_huge:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstPrint(attributes, KStringDescHuge8);//TPtrC8((const TUint8*)KHugeData8, KHugeSize8)
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
		
	case EUptPrintTDesC16_big:
#ifndef __KERNEL_MODE__
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId,  aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstPrint(attributes, KStringDesc16);//TPtrC16((const TUint16*)KBigData16, KBigSize16)
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
#endif	
	break;
		
	case EUptPrintTDesC16_huge:
#ifndef __KERNEL_MODE__
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId,  aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstPrint(attributes, KStringDescHuge16);//TPtrC16((const TUint16*)KHugeData16, KHugeSize16)
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
#endif	
	break;
	
	
	case EUptTraceTDesC8_big:
	case EUptKernelTraceDesc8_big:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KStringDesc8);//TPtrC8((const TUint8*)KBigData8, KBigSize8));
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;

	case EUptTraceTDesC8_huge:
	case EUptKernelTraceDesc8_huge:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KStringDescHuge8);//TPtrC8((const TUint8*)KHugeData8, KHugeSize8));
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	

	
	case EUptTraceTDesC16_big:
#ifndef __KERNEL_MODE__
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId,  aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KStringDesc16);//TPtrC16((const TUint16*)KBigData16, KBigSize16));
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
#endif	
	break;

	case EUptTraceTDesC16_huge:
#ifndef __KERNEL_MODE__
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId,  aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KStringDescHuge16);//TPtrC16((const TUint16*)KHugeData16, KHugeSize16));
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
#endif	
	break;
	
	
	case EUptPrintfchar:
	case EUptKernelPrintfchar:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstPrintf(attributes, KPrintfCStyleString);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;

	case EUptPrintfTRefByValueTDesC8:
	case EUptKernelPrintfTRefByValueTDesC8:
	    {
	    __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
	    TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
	    logged = OstPrintf(attributes, KDesC8Formatted,2);
	    __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
	    }

	break;
	case EUptPrintfTRefByValueTDesC16:
#ifndef __KERNEL_MODE__
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstPrintf(attributes, KDesCFormatted16,2);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
#endif
	break;
		
	case EUptTrace:
	case EUptKernelTrace:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
		
	case EUptTraceTUint32:
	case EUptKernelTraceTUint32:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KData1);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
		
	case EUptTraceTUint32TUint32:
	case EUptKernelTraceTUint32TUint32:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KData1, KData2);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);				
		}
	break;
		
	case EUptTraceTAnySmallStruct:
	case EUptKernelTraceTAnySmallStruct:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KSmallData, KSmallSize);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	case EUptTraceTAnyBigStruct:
	case EUptKernelTraceTAnyBigStruct:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KBigData8, KBigSize8);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;

	case EUptTraceTAnyHugeStruct:
	case EUptKernelTraceTAnyHugeStruct:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KHugeData8, KHugeSize8);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
		
	
	case EUptTraceTemplatedSmallStruct:
	case EUptKernelTraceTemplatedSmallStruct:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KStructForTemplated);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	
	case EUptTraceTemplatedBigStruct:
	case EUptKernelTraceTemplatedBigStruct:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KBigData8);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	
	case EUptTraceTemplatedHugeStruct:
	case EUptKernelTraceTemplatedHugeStruct:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = OstTrace(attributes, KTraceId, KHugeData8);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
		
	case EUptIsTraceActive:
	case EUptKernelIsTraceActive:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter);
		logged = IsTraceActive(attributes);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
		

	case UPTTraceTest:
	case UPTKernelTraceTest:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		SanityFoo();
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	
	case UPTKernelNegativeFunctionalityTest:
		{
		logged = OstTrace(TTraceContext(KComponentId+1, KGroupId+1, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		logged = OstTrace(TTraceContext(KComponentId+2, KGroupId+2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		}
	break;
	
	case UPTKernelMultipleFunctionalityTest:
		{
		logged = OstTrace(TTraceContext(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		logged = OstTrace(TTraceContext(KComponentId + 1, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		logged = OstTrace(TTraceContext(KComponentId + 2, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		logged = OstTrace(TTraceContext(KComponentId, KGroupId + 2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		logged = OstTrace(TTraceContext(KComponentId + 2, KGroupId + 2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		logged = OstTrace(TTraceContext(KComponentId + 1, KGroupId + 2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		logged = OstTrace(TTraceContext(KComponentId, KGroupId + 1, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId);
		}
		break;
		
	case BTraceFiltered4:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTraceFiltered4(KGroupId,0 ,KComponentId);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	case BTraceFiltered8:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTraceFiltered8(KGroupId,0 ,KComponentId,KData1);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	case BTraceFiltered12:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTraceFiltered12(KGroupId,0 ,KComponentId,KData1,KData2);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	
	break;
	case BTraceFilteredBig:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTraceFilteredBig(KGroupId,0 ,KComponentId,KHugeData8,sizeof(KHugeData8));
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	case BTrace0:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTrace0(KGroupId,0 );
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	case BTrace4:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTrace4(KGroupId,0 ,KData1);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);						
		}
	break;
	case BTrace8:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTrace8(KGroupId,0 ,KData1, KData2);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);		
		}
	break;
	case BTrace12:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		logged = BTrace12(KGroupId,0 ,KData1, KData2, KData3);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);		
		}
	break;		
	case UPTKernelBaseline:
	case UPTBaseline:
		{
		__MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
		__RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);
		}
	break;
	
    case EOstTraceDef0:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceDef0( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDef0, "EOstTraceDef0" ) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
    
    case EOstTraceDef1:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceDef1( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDef1, "EOstTraceDef1 - %u" , KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);  
            
        }
    break;
    
    case EOstTraceDefData:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        //const TAny* y = &KData1;
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceDefData( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefData, "EOstTraceDefData", &KData1, sizeof(KData1) ) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceDefExt1:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceDefExt1( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt1, "OstTraceDefExt1 - %s", KDefault8 ) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceDefExt2:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        
        OstTraceDefExt2( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt2, "OstTraceDefExt2 - %u - %u", KData1 , KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceDefExt3:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        
        OstTraceDefExt3( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt3, "OstTraceDefExt3 - %u - %u - %u", KData1 , KData1, KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceDefExt4:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        
        OstTraceDefExt4( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt4, "OstTraceDefExt4 - %u - %u - %u - %u", KData1 , KData1, KData1, KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceDefExt5:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        
        OstTraceDefExt5( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt5, "OstTraceDefExt5 - %u - %u - %u - %u - %u", KData1, KData1, KData1, KData1, KData1 ) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTrace0:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTrace0( TRACE_FATAL, TEST_OSTTRACE0, "EOstTrace0" );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
    
    case EOstTrace1:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTrace1( TRACE_FATAL, TEST_OSTTRACE1, "EOstTrace1  - %u" , KData1);
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage);

        }
    break;
    
    case EOstTraceData:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        //const TAny* y = &KData1;
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceData( TRACE_FATAL, TEST_OSTTRACEDATA, "EOSTTraceData", &KData1, sizeof(KData1) );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceExt1:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceExt1( TRACE_FATAL, TEST_OSTTRACEEXT1, "OSTTraceExt1 - %hhd", KData8 ) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceExt2:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceExt2( TRACE_FATAL, TEST_OSTTRACEEXT2, "OSTTraceExt2 - %u - %u", KData1 ,KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceExt3:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF          
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceExt3( TRACE_FATAL, TEST_OSTTRACEEXT3, "OSTTraceExt3 - %u - %u - %u", KData1 ,KData1, KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceExt4:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceExt4( TRACE_FATAL, TEST_OSTTRACEEXT4, "OSTTraceExt4 - %u - %u - %u - %u", KData1 ,KData1, KData1, KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceExt5:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceExt5( TRACE_FATAL, TEST_OSTTRACEEXT5, "OSTTraceExt5 - %u - %u - %u - %u - %u", KData1 ,KData1, KData1, KData1, KData1) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceFunctionEntry0:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceFunctionEntry0( TEST_OSTTraceFunctionalityEntry0 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
    
    case EOstTraceFunctionEntry1:
        {
        //const TAny* y = &KData1;
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceFunctionEntry1( TEST_OSTTraceFunctionalityEntry1, KData1 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceFunctionEntryExt:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceFunctionEntryExt( TEST_OSTTraceFunctionalityExt, (const TAny*)&KData1 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
    
    case EOstTraceFunctionEntryExtCtorInitList:
        {        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        TTestCtor       testCtorA( 1, 2 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceFunctionEntryExtCtorNoInitList:
        {        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        TTestCtor       testCtorB( 3 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceFunctionExit0:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceFunctionExit0( TEST_OstTraceFunctionExit0 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
    
    case EOstTraceFunctionExit1:
        {
        //const TAny* y = &KData1;
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceFunctionExit1( TEST_OSTTRACEFUNCTIONEXIT1, KData1 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceFunctionExitExt:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceFunctionExitExt( TEST_OSTTRACEFUNCTIONEXITEXT, (const TAny*)&KData1, TInt(0) );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceEventStart0:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceEventStart0( TEST_OSTTRACEEVENTSTART0, "EOstTraceEventStart0" );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
    
    case EOstTraceEventStart1:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceEventStart1( TEST_OSTTRACEEVENTSTART1, "EOstTraceEventStart1 - %u", KData1 ) ;
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceEventStop:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceEventStop( TEST_OSTTRACEEVENTSTOP, "EOstTraceEventStop", TEST_OSTTRACEEVENTSTART0 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
    
  case EOstTraceState0:
        {
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceState0( TEST_OSTTRACESTATE0, "Test State Name", "Test State Value" );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 
        }
    break;
	
    case EOstTraceState1:
        {
        //const TAny* y = &KData1;
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceState1( TEST_OSTTRACESTATE1,  "Test State Name", "Test State Value", KData1 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceData96:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceData( TRACE_FATAL, TEST_OSTTRACEDATA96, "EOSTTraceData96", KBigData8, KBigSize8 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
    
    case EOstTraceData1000:
        {
        /**
        Preprocessor level for all traces on. 
        This should not be used from traces
        */
        #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF
        
        __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before);
        OstTraceData( TRACE_FATAL, TEST_OSTTRACEDATA1000, "EOSTTraceData1000", KHugeData8, KHugeSize8 );
        logged = EFalse;
        __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before,  aApiRunResults.iApiStackUsage); 

        }
    break;
  
	default:
		error = KErrNotSupported;
		break;
	}
 	
	//if the "trace" is in fact not an actual trace and trace not sent - this is a true result 
	TBool realTrace = ETrue;
	switch(aApiRunConfig.iApiId)
	{
	case UPTTraceTest:
	case UPTKernelTraceTest:
	case UPTKernelNegativeFunctionalityTest:
	case UPTKernelMultipleFunctionalityTest:
	case UPTBaseline:
	case UPTKernelBaseline:
	case UPTFooUserTime:
	case UPTFooKernelTime:
		realTrace = EFalse;
	break;
	default:
	break;		
	}		
	
	//ensure correct error values for the current test configurations are returned to the test framework
	if(!logged)
		{
		if(error!=KErrNotSupported)
			error = KErrGeneral;
		}
	else
		error = KErrNone;

	//if trace has been disabled and trace not sent - this is a true result 
	#ifdef TE_UPT_TRACE_DISABLED
	if(error == KErrGeneral)
			error = KErrNone;
	#endif

	if(error == KErrGeneral && realTrace == EFalse)
		error = KErrNone;


	//returns KErrNone if logged, KErrNotLogged if not logged, KErrGeneral if any other problem...
	return error;
	}