kernel/eka/include/e32btrace.h
changeset 90 947f0dc9f7a8
parent 31 56f325a607ea
child 109 b3a1d9898418
equal deleted inserted replaced
52:2d65c2f76d7b 90:947f0dc9f7a8
    57 -#	Timestamp.		A timestamp value indicating when the trace was generated.
    57 -#	Timestamp.		A timestamp value indicating when the trace was generated.
    58 					The format and resolution of this value are platform-dependent, but
    58 					The format and resolution of this value are platform-dependent, but
    59 					typically will contain the same values as would be returned by
    59 					typically will contain the same values as would be returned by
    60 					User::FastCounter() or NKern::FastCounter().
    60 					User::FastCounter() or NKern::FastCounter().
    61 					This value is only present if the ETimestampPresent flag is set.
    61 					This value is only present if the ETimestampPresent flag is set.
    62 -#	Timestamp2.		Additional timestamp information. E.g. the most significant
    62 -#	Timestamp2. 	Additional timestamp information. E.g. the most significant
    63 					half of a 64bit timestamp value. Note, it is valid for a Timestamp2 value
    63 					half of a 64bit timestamp value. Note, it is valid for a Timestamp2 value
    64 					to be present even if the previous Timestamp is absent.
    64 					to be present even if the previous Timestamp is absent.
    65 					This value is only present if the ETimestamp2Present flag is set.
    65 					This value is only present if the ETimestamp2Present flag is set.
    66 -#	Context ID.		This value indicates the context in which the trace was generated.
    66 -#	Context ID. 	This value indicates the context in which the trace was generated.
    67 					The meaning of the id is dependent on the contents of the two
    67 					The meaning of the id is dependent on the contents of the two
    68 					least significant bits:
    68 					least significant bits:
    69 					-	00	indicates the value is the address of the NThread object for
    69 					-	00	indicates the value is the address of the NThread object for
    70 							the currently executing thread.
    70 							the currently executing thread.
    71 					-	01	indicates Fast Interrupt (FIQ) context.
    71 					-	01	indicates Fast Interrupt (FIQ) context.
   205 	enum TFlags
   205 	enum TFlags
   206 		{
   206 		{
   207 		/**
   207 		/**
   208 		Header2 is present in the trace record.
   208 		Header2 is present in the trace record.
   209 		*/
   209 		*/
   210 		EHeader2Present		= 1<<0,
   210 		EHeader2Present 	= 1<<0,
   211 
   211 
   212 		/**
   212 		/**
   213 		A timestamp value is present in the trace record.
   213 		A timestamp value is present in the trace record.
   214 		*/
   214 		*/
   215 		ETimestampPresent	= 1<<1,
   215 		ETimestampPresent	= 1<<1,
   306 	enum TMultiPart
   306 	enum TMultiPart
   307 		{
   307 		{
   308 		/**
   308 		/**
   309 		Indicates that this trace is the first part of a multipart trace.
   309 		Indicates that this trace is the first part of a multipart trace.
   310 		*/
   310 		*/
   311 		EMultipartFirst			= 1,
   311 		EMultipartFirst 		= 1,
   312 
   312 
   313 		/**
   313 		/**
   314 		Indicates that this trace is a middle part of a multipart trace.
   314 		Indicates that this trace is a middle part of a multipart trace.
   315 		I.e. it is not the first or last part.
   315 		I.e. it is not the first or last part.
   316 		*/
   316 		*/
   377 
   377 
   378 		@see enum TCpuUsage
   378 		@see enum TCpuUsage
   379 		*/
   379 		*/
   380 		ECpuUsage = 4,
   380 		ECpuUsage = 4,
   381 
   381 
   382         /**
   382 		/**
   383         Category used for profiling device drivers, kernel extensions etc.
   383 		Category used for profiling device drivers, kernel extensions etc.
   384         Used by PERF_LOG macro.
   384 		Used by PERF_LOG macro.
   385         @prototype 9.3
   385 		@prototype 9.3
   386         */
   386 		*/
   387         EKernPerfLog = 5,
   387 		EKernPerfLog = 5,
   388 
   388 
   389         /**
   389 		/**
   390 		Trace generated when client-server activity takes place such as server creation,
   390 		Trace generated when client-server activity takes place such as server creation,
   391 		session management, message handling, etc.
   391 		session management, message handling, etc.
   392 
       
   393 		If #Prime is called with this category, traces will be generated for all
   392 		If #Prime is called with this category, traces will be generated for all
   394 		servers currently running and their sessions.
   393 		servers currently running and their sessions.
   395         */
   394 		*/
   396         EClientServer = 6,
   395 		EClientServer = 6,
   397 
   396 
   398         /**
   397 		/**
   399 		Trace generated on thread request completion.
   398 		Trace generated on thread request completion.
   400         */
   399 		*/
   401         ERequests = 7,
   400 		ERequests = 7,
   402 
   401 
   403         /**
   402 		/**
   404 		Trace generated when chunks are created and destroyed, and when memory
   403 		Trace generated when chunks are created and destroyed, and when memory
   405 		is committed and decommitted to and from chunks.
   404 		is committed and decommitted to and from chunks.
   406 
   405 
   407 		If #Prime is called with this category, traces will be generated for all
   406 		If #Prime is called with this category, traces will be generated for all
   408 		chunks currently extant.
   407 		chunks currently extant.
   409 
   408 
   410 		@see TChunks
   409 		@see TChunks
   411         */
   410 		*/
   412         EChunks = 8,
   411 		EChunks = 8,
   413 
   412 
   414         /**
   413 		/**
   415 		Trace generated when code segments are created and destroyed, mapped
   414 		Trace generated when code segments are created and destroyed, mapped
   416 		into out of processes, and when memory is committed and decommitted to
   415 		into out of processes, and when memory is committed and decommitted to
   417 		and from them.
   416 		and from them.
   418 
   417 
   419 		If #Prime is called with this category, traces will be generated for all
   418 		If #Prime is called with this category, traces will be generated for all
   420 		code segments currently extant.
   419 		code segments currently extant.
   421 
   420 
   422 		@see TCodeSegs
   421 		@see TCodeSegs
   423         */
   422 		*/
   424         ECodeSegs = 9,
   423 		ECodeSegs = 9,
   425 
   424 
   426 		/**
   425 		/**
   427 		Trace generated by Demand Paging.
   426 		Trace generated by Demand Paging.
   428 		@prototype 9.3
   427 		@prototype 9.3
   429 		*/
   428 		*/
   440 		If #Prime is called with this category, traces will be generated for all
   439 		If #Prime is called with this category, traces will be generated for all
   441 		threads currently extant.
   440 		threads currently extant.
   442 
   441 
   443 		@see enum TThreadPriority
   442 		@see enum TThreadPriority
   444 		@internalTechnology
   443 		@internalTechnology
   445         @prototype 9.3
   444 		@prototype 9.3
   446 		*/
   445 		*/
   447 		EThreadPriority = 11,
   446 		EThreadPriority = 11,
   448 
   447 
   449 		/**
   448 		/**
   450 		Trace generated by processing Paging requests in the Media subsystem and Media drivers.
   449 		Trace generated by processing Paging requests in the Media subsystem and Media drivers.
   510 		@see enum TProfiling
   509 		@see enum TProfiling
   511 		*/
   510 		*/
   512 		EProfiling = 18,
   511 		EProfiling = 18,
   513 
   512 
   514 		/**
   513 		/**
   515         Trace generated by Power Resource Manager.
   514 		Trace generated by Power Resource Manager.
   516         @prototype 9.5
   515 		@prototype 9.5
   517         */
   516 		*/
   518         EResourceManager = 19,
   517 		EResourceManager = 19,
   519 
   518 
   520 
   519 
   521         /**
   520 		/**
   522         Trace generated by Power Resource Manager User-Side API.
   521 		Trace generated by Power Resource Manager User-Side API.
   523         @prototype 9.5
   522 		@prototype 9.5
   524         */
   523 		*/
   525         EResourceManagerUs = 20,
   524 		EResourceManagerUs = 20,
   526 
   525 
   527 		/**
   526 		/**
   528 		Trace generated by Raw Event subsystem APIs
   527 		Trace generated by Raw Event subsystem APIs
   529 		@see enum TRawEventTrace
   528 		@see enum TRawEventTrace
   530 		@prototype 9.5
   529 		@prototype 9.5
   534 		/**
   533 		/**
   535 		Trace generated by USB communications (Client, Host and OTG) where use
   534 		Trace generated by USB communications (Client, Host and OTG) where use
   536 		of standard logging (conditional Kern::Printf() calls) is sufficiently
   535 		of standard logging (conditional Kern::Printf() calls) is sufficiently
   537 		time-consuming that the required device timings mandated by the core
   536 		time-consuming that the required device timings mandated by the core
   538 		USB standards cannot be achieved
   537 		USB standards cannot be achieved
   539         @prototype 9.5
   538 		@prototype 9.5
   540 		*/
   539 		*/
   541 		EUsb = 22,
   540 		EUsb = 22,
   542 
   541 
   543 		/**
   542 		/**
   544 		Trace generated by Symbian OS kernel synchronization objects.
   543 		Trace generated by Symbian OS kernel synchronization objects.
   545         @prototype 9.5
   544 		@prototype 9.5
   546 		*/
   545 		*/
   547 		ESymbianKernelSync = 23,
   546 		ESymbianKernelSync = 23,
   548 
   547 
   549 		/**
   548 		/**
   550 		Trace generated by the flexible memory model.
   549 		Trace generated by the flexible memory model.
   551 		*/
   550 		*/
   552 		EFlexibleMemModel = 24,
   551 		EFlexibleMemModel = 24,
   553 
   552 
   554 		/**
   553 		/**
   555         Trace generated by IIC bus.
   554 		Trace generated by IIC bus.
   556         @prototype 9.6
   555 		@prototype 9.6
   557         */
   556 		*/
   558         EIic = 25,
   557 		EIic = 25,
       
   558 
       
   559 		/**
       
   560 		Trace generated by load balancing or higher-level scheduling
       
   561 		@prototype 9.6
       
   562 		*/
       
   563 		EHSched = 26,
       
   564 
       
   565 		/**
       
   566 		Trace generated by the nanokernel
       
   567 		@prototype 9.6
       
   568 		*/
       
   569 		ENKern = 27,
   559 
   570 
   560 		/**
   571 		/**
   561 		First category value in the range reserved for platform specific use;
   572 		First category value in the range reserved for platform specific use;
   562 		the end of this range is #EPlatformSpecificLast.
   573 		the end of this range is #EPlatformSpecificLast.
   563 		Symbian's code will not generate any traces with categories in this range.
   574 		Symbian's code will not generate any traces with categories in this range.
   766 		The context id (NThread*) in this trace is that of the thread being scheduled.
   777 		The context id (NThread*) in this trace is that of the thread being scheduled.
   767 		*/
   778 		*/
   768 		ENewThreadContext
   779 		ENewThreadContext
   769 		};
   780 		};
   770 
   781 
   771     /**
   782 	/**
   772 	@internalTechnology
   783 	@internalTechnology
   773     @prototype 9.3
   784 	@prototype 9.3
   774     */
   785 	*/
   775 	enum TClientServer
   786 	enum TClientServer
   776 		{
   787 		{
   777 		/**
   788 		/**
   778 		Trace generated whenever a server is created and during prime.
   789 		Trace generated whenever a server is created and during prime.
   779 
   790 
   843 		Trace generated whenever a message is completed using RMessagePtr2::Complete.
   854 		Trace generated whenever a message is completed using RMessagePtr2::Complete.
   844 
   855 
   845 		Trace data format:
   856 		Trace data format:
   846 		- 4 bytes containing the message handle.
   857 		- 4 bytes containing the message handle.
   847 		- 4 bytes containing the completion reason, or object handle, value.
   858 		- 4 bytes containing the completion reason, or object handle, value.
   848 		    (The object handle value is that which is delivered to the sender of the
   859 			(The object handle value is that which is delivered to the sender of the
   849 			message, not that supplied by the server actually completing the request.)
   860 			message, not that supplied by the server actually completing the request.)
   850 
   861 
   851 		The context id (NThread*) in this trace is that of the thread which completed the message.
   862 		The context id (NThread*) in this trace is that of the thread which completed the message.
   852 		*/
   863 		*/
   853 		EMessageComplete
   864 		EMessageComplete
   854 		};
   865 		};
   855 
   866 
   856 
   867 
   857     /**
   868 	/**
   858 	@internalTechnology
   869 	@internalTechnology
   859     @prototype 9.3
   870 	@prototype 9.3
   860     */
   871 	*/
   861 	enum TRequests
   872 	enum TRequests
   862 		{
   873 		{
   863 		/**
   874 		/**
   864 		Trace generated whenever a request status is completed.
   875 		Trace generated whenever a request status is completed.
   865 
   876 
  1424 		This trace is only emitted on the flexible memory model.
  1435 		This trace is only emitted on the flexible memory model.
  1425 		*/
  1436 		*/
  1426 		EPagingPageTableAlloc,
  1437 		EPagingPageTableAlloc,
  1427 		};
  1438 		};
  1428 
  1439 
  1429     /**
  1440 	/**
  1430 	Enumeration of sub-category values for trace category EResourceManager.
  1441 	Enumeration of sub-category values for trace category EResourceManager.
  1431 	@see EResourceManager
  1442 	@see EResourceManager
  1432     @prototype 9.5
  1443 	@prototype 9.5
  1433 	*/
  1444 	*/
  1434 	enum TResourceManager
  1445 	enum TResourceManager
  1435 		{
  1446 		{
  1436 		/**
  1447 		/**
  1437 		Trace output for resource registration.
  1448 		Trace output for resource registration.
  1708 		- 4 bytes containing the address of first dependent resource
  1719 		- 4 bytes containing the address of first dependent resource
  1709 		- 4 bytes containing the address of second dependent resource
  1720 		- 4 bytes containing the address of second dependent resource
  1710 		*/
  1721 		*/
  1711 		EDeRegisterResourceDependency
  1722 		EDeRegisterResourceDependency
  1712 		};
  1723 		};
  1713     /**
  1724 	/**
  1714 	Enumeration of sub-category values for trace category EResourceManagerUs.
  1725 	Enumeration of sub-category values for trace category EResourceManagerUs.
  1715 	@see EResourceManagerUs
  1726 	@see EResourceManagerUs
  1716     @prototype 9.5
  1727 	@prototype 9.5
  1717 	*/
  1728 	*/
  1718 	enum TResourceManagerUs
  1729 	enum TResourceManagerUs
  1719 		{
  1730 		{
  1720 		/**
  1731 		/**
  1721 		Trace output for the start of opening a channel to the Resource Controller.
  1732 		Trace output for the start of opening a channel to the Resource Controller.
  1848 
  1859 
  1849 	/**
  1860 	/**
  1850 	Enumeration of sub-category values for trace category EThreadPriority.
  1861 	Enumeration of sub-category values for trace category EThreadPriority.
  1851 	@see EThreadPriority
  1862 	@see EThreadPriority
  1852 	@internalTechnology
  1863 	@internalTechnology
  1853     @prototype 9.3
  1864 	@prototype 9.3
  1854 	*/
  1865 	*/
  1855 	enum TThreadPriority
  1866 	enum TThreadPriority
  1856 		{
  1867 		{
  1857 		/**
  1868 		/**
  1858 		Trace output when a nanothread priority is changed.
  1869 		Trace output when a nanothread priority is changed.
  2487 		*/
  2498 		*/
  2488 		ERamAllocZoneContiguousRam,
  2499 		ERamAllocZoneContiguousRam,
  2489 
  2500 
  2490 		/**
  2501 		/**
  2491 		Event generated when DRamAllocator::ZoneAllocRamPages has successfully
  2502 		Event generated when DRamAllocator::ZoneAllocRamPages has successfully
  2492 		allocated all the requested RAM pages.  If DRamAllocator::ZoneAllocRamPages
  2503 		allocated all the requested RAM pages.	If DRamAllocator::ZoneAllocRamPages
  2493 		couldn't allocate all the requested pages then this event is not generated.
  2504 		couldn't allocate all the requested pages then this event is not generated.
  2494 
  2505 
  2495 		Trace data format:
  2506 		Trace data format:
  2496 		- no extra bytes sent
  2507 		- no extra bytes sent
  2497 		*/
  2508 		*/
  2587 		ECpuIdfcSample,
  2598 		ECpuIdfcSample,
  2588 
  2599 
  2589 		/**
  2600 		/**
  2590 		CPU sample from non-Symbian thread.
  2601 		CPU sample from non-Symbian thread.
  2591 
  2602 
  2592   		Trace data format:
  2603 		Trace data format:
  2593 		- no extra bytes are sent
  2604 		- no extra bytes are sent
  2594 		*/
  2605 		*/
  2595 		ECpuNonSymbianThreadSample
  2606 		ECpuNonSymbianThreadSample
  2596 
  2607 
  2597 		};
  2608 		};
  2632 		--4 bytes containining the X co-ordinate
  2643 		--4 bytes containining the X co-ordinate
  2633 		--4 bytes containining the Y co-ordinate
  2644 		--4 bytes containining the Y co-ordinate
  2634 		--4 bytes containining the Z co-ordinate
  2645 		--4 bytes containining the Z co-ordinate
  2635 		--4 bytes containining the PointerNumber
  2646 		--4 bytes containining the PointerNumber
  2636 
  2647 
  2637   		if there are  7*4 byte data
  2648 		if there are  7*4 byte data
  2638 		- 4 bytes containing the event type
  2649 		- 4 bytes containing the event type
  2639 		--4 bytes containining the X co-ordinate
  2650 		--4 bytes containining the X co-ordinate
  2640 		--4 bytes containining the Y co-ordinate
  2651 		--4 bytes containining the Y co-ordinate
  2641 		--4 bytes containining the Z co-ordinate
  2652 		--4 bytes containining the Z co-ordinate
  2642 		--4 bytes containining the Phi polar coordinate.
  2653 		--4 bytes containining the Phi polar coordinate.
  2878 		EMemoryMappingDestroy,
  2889 		EMemoryMappingDestroy,
  2879 
  2890 
  2880 		// The following traces associate memory model objects with the kernel objects that use them
  2891 		// The following traces associate memory model objects with the kernel objects that use them
  2881 
  2892 
  2882 		/**
  2893 		/**
  2883 	    A memory object is being used for the contents of a chunk.
  2894 		A memory object is being used for the contents of a chunk.
  2884 
  2895 
  2885 		Trace data format:
  2896 		Trace data format:
  2886 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2897 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2887 		- 4 bytes containing the chunk id (a DChunk*)
  2898 		- 4 bytes containing the chunk id (a DChunk*)
  2888 		*/
  2899 		*/
  2889 		EMemoryObjectIsChunk,
  2900 		EMemoryObjectIsChunk,
  2890 
  2901 
  2891 		/**
  2902 		/**
  2892 	    A memory object is being used for the contents of a code segment.
  2903 		A memory object is being used for the contents of a code segment.
  2893 
  2904 
  2894 		Trace data format:
  2905 		Trace data format:
  2895 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2906 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2896 		- 4 bytes containing the code segment id (a DCodeSeg*)
  2907 		- 4 bytes containing the code segment id (a DCodeSeg*)
  2897 		*/
  2908 		*/
  2898 		EMemoryObjectIsCodeSeg,
  2909 		EMemoryObjectIsCodeSeg,
  2899 
  2910 
  2900 		/**
  2911 		/**
  2901 	    A memory object is being used for process static data.
  2912 		A memory object is being used for process static data.
  2902 
  2913 
  2903 		Trace data format:
  2914 		Trace data format:
  2904 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2915 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2905 		- 4 bytes containing the process id (a DProcess*)
  2916 		- 4 bytes containing the process id (a DProcess*)
  2906 		*/
  2917 		*/
  2907 		EMemoryObjectIsProcessStaticData,
  2918 		EMemoryObjectIsProcessStaticData,
  2908 
  2919 
  2909 		/**
  2920 		/**
  2910 	    A memory object is being used for DLL static data.
  2921 		A memory object is being used for DLL static data.
  2911 
  2922 
  2912 		Trace data format:
  2923 		Trace data format:
  2913 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2924 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2914 		- 4 bytes containing the code segment id (a DCodeSeg*)
  2925 		- 4 bytes containing the code segment id (a DCodeSeg*)
  2915 		- 4 bytes containing the process id (a DProcess*)
  2926 		- 4 bytes containing the process id (a DProcess*)
  2916 		*/
  2927 		*/
  2917 		EMemoryObjectIsDllStaticData,
  2928 		EMemoryObjectIsDllStaticData,
  2918 
  2929 
  2919 		/**
  2930 		/**
  2920 	    A memory object is being used for a thread's supervisor stack.
  2931 		A memory object is being used for a thread's supervisor stack.
  2921 
  2932 
  2922 		Trace data format:
  2933 		Trace data format:
  2923 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2934 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2924 		- 4 bytes containing the thread id (a DThread*)
  2935 		- 4 bytes containing the thread id (a DThread*)
  2925 		*/
  2936 		*/
  2926 		EMemoryObjectIsSupervisorStack,
  2937 		EMemoryObjectIsSupervisorStack,
  2927 
  2938 
  2928 		/**
  2939 		/**
  2929 	    A memory object is being used for a thread's user stack.
  2940 		A memory object is being used for a thread's user stack.
  2930 
  2941 
  2931 		Trace data format:
  2942 		Trace data format:
  2932 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2943 		- 4 bytes containing the memory object id (a DMemoryObject*).
  2933 		- 4 bytes containing the thread id (a DThread*)
  2944 		- 4 bytes containing the thread id (a DThread*)
  2934 		*/
  2945 		*/
  2943 		- 2 spare bytes, currently zero
  2954 		- 2 spare bytes, currently zero
  2944 		*/
  2955 		*/
  2945 		EAddressSpaceId
  2956 		EAddressSpaceId
  2946 		};
  2957 		};
  2947 
  2958 
  2948     /**
  2959 	/**
  2949 	Enumeration of sub-category values for trace category EIic.
  2960 	Enumeration of sub-category values for trace category EIic.
  2950 	@see EIic
  2961 	@see EIic
  2951     @prototype 9.6
  2962 	@prototype 9.6
  2952 	*/
  2963 	*/
  2953 	enum TIic
  2964 	enum TIic
  2954 		{
  2965 		{
  2955 		/**
  2966 		/**
  2956 		Trace output for the invocation by the PSL of registering an array of pointers to channels with the IIC bus controller.
  2967 		Trace output for the invocation by the PSL of registering an array of pointers to channels with the IIC bus controller.
  3442 		*/
  3453 		*/
  3443 		ESStatExtEndPil = 51
  3454 		ESStatExtEndPil = 51
  3444 		};
  3455 		};
  3445 
  3456 
  3446 	/**
  3457 	/**
       
  3458 	Enumeration of sub-category values for trace category EHSched.
       
  3459 	@see EHSched
       
  3460 	@prototype 9.6
       
  3461 	*/
       
  3462 	enum THSched
       
  3463 		{
       
  3464 		/**
       
  3465 		Trace output when a thread has been processed by the load balancer
       
  3466 		Trace data format:
       
  3467 		- 4 bytes containing pointer to thread
       
  3468 		- 4 bytes containing flags indicating result of balancing
       
  3469 		*/
       
  3470 		ELbDone = 0,
       
  3471 		};
       
  3472 
       
  3473 	/**
  3447 	Calculate the address of the next trace record.
  3474 	Calculate the address of the next trace record.
  3448 	@param aCurrentRecord A pointer to a trace record.
  3475 	@param aCurrentRecord A pointer to a trace record.
  3449 	@return The address of the trace record which follows aCurrentRecord.
  3476 	@return The address of the trace record which follows aCurrentRecord.
  3450 	*/
  3477 	*/
  3451 	inline static TUint8* NextRecord(TAny* aCurrentRecord);
  3478 	inline static TUint8* NextRecord(TAny* aCurrentRecord);
  3470 
  3497 
  3471 	The handler function should output all values which are appropriate for the
  3498 	The handler function should output all values which are appropriate for the
  3472 	trace as specified in aHeader.
  3499 	trace as specified in aHeader.
  3473 
  3500 
  3474 	@param aHeader	The 4 bytes for the trace header.
  3501 	@param aHeader	The 4 bytes for the trace header.
  3475 	@param aHeader2	The second header word.
  3502 	@param aHeader2 The second header word.
  3476 					(If EHeader2Present is set in the header flags.)
  3503 					(If EHeader2Present is set in the header flags.)
  3477 	@param aContext	The context id.
  3504 	@param aContext The context id.
  3478 					(If EContextIdPresent is set in the header flags.)
  3505 					(If EContextIdPresent is set in the header flags.)
  3479 	@param a1		The first four bytes of trace data.
  3506 	@param a1		The first four bytes of trace data.
  3480 					(Only if the header size indicates that this is present.)
  3507 					(Only if the header size indicates that this is present.)
  3481 	@param a2		The second four bytes of trace data.
  3508 	@param a2		The second four bytes of trace data.
  3482 					(Only if the header size indicates that this is present.)
  3509 					(Only if the header size indicates that this is present.)
  3488 	@param aExtra	The 'extra' value.
  3515 	@param aExtra	The 'extra' value.
  3489 					(If EExtraPresent is set in the header flags.)
  3516 					(If EExtraPresent is set in the header flags.)
  3490 	@param aPc		The Program Counter value.
  3517 	@param aPc		The Program Counter value.
  3491 					(If EPcPresent is set in the header flags.)
  3518 					(If EPcPresent is set in the header flags.)
  3492 
  3519 
  3493 	@return			True, if the trace handler is enabled and outputting trace.
  3520 	@return 		True, if the trace handler is enabled and outputting trace.
  3494 					False otherwise.
  3521 					False otherwise.
  3495 
  3522 
  3496 	Here is an example implementation of a trace handler:
  3523 	Here is an example implementation of a trace handler:
  3497 
  3524 
  3498 	@code
  3525 	@code
  3604 
  3631 
  3605 
  3632 
  3606 	/**
  3633 	/**
  3607 	Set the secondary trace filter to include only the specified UIDs.
  3634 	Set the secondary trace filter to include only the specified UIDs.
  3608 
  3635 
  3609 	@param aUids    Pointer to array of UIDs.
  3636 	@param aUids	Pointer to array of UIDs.
  3610 	@param aNumUids Number of UID values pointer to by \a aUid.
  3637 	@param aNumUids Number of UID values pointer to by \a aUid.
  3611 
  3638 
  3612 	@return KErrNone on success.
  3639 	@return KErrNone on success.
  3613 			Otherwise, a negative number representing a system wide error code.
  3640 			Otherwise, a negative number representing a system wide error code.
  3614 			(E.g. KErrNoMemory.)
  3641 			(E.g. KErrNoMemory.)
  3641 
  3668 
  3642 
  3669 
  3643 	/**
  3670 	/**
  3644 	Get the contents of the secondary trace filter.
  3671 	Get the contents of the secondary trace filter.
  3645 
  3672 
  3646 	@param[out] aUids   Pointer to array of UIDs contained in the secondary filter.
  3673 	@param[out] aUids	Pointer to array of UIDs contained in the secondary filter.
  3647 						Ownership of this array is passed to the caller of this
  3674 						Ownership of this array is passed to the caller of this
  3648 						function, which is then responsible for deleting it.
  3675 						function, which is then responsible for deleting it.
  3649 						If filter is empty, \a aUid equals zero.
  3676 						If filter is empty, \a aUid equals zero.
  3650 	@param[out] aGlobalFilter	Set to 1 if the secondary filter passes all traces.
  3677 	@param[out] aGlobalFilter	Set to 1 if the secondary filter passes all traces.
  3651 								Set to 0 if the secondary filter rejects all traces.
  3678 								Set to 0 if the secondary filter rejects all traces.
  3654 	@return Number of UIDs in returned array, if operation is successful.
  3681 	@return Number of UIDs in returned array, if operation is successful.
  3655 			Otherwise, a negative number representing a system wide error code.
  3682 			Otherwise, a negative number representing a system wide error code.
  3656 
  3683 
  3657 
  3684 
  3658 	@pre Call in a thread context.
  3685 	@pre Call in a thread context.
  3659     @pre Calling thread must be in a critical section.
  3686 	@pre Calling thread must be in a critical section.
  3660 
  3687 
  3661 	@publishedPartner
  3688 	@publishedPartner
  3662 	@released
  3689 	@released
  3663 	*/
  3690 	*/
  3664 	IMPORT_C static TInt Filter2(TUint32*& aUids, TInt& aGlobalFilter);
  3691 	IMPORT_C static TInt Filter2(TUint32*& aUids, TInt& aGlobalFilter);
  3806 	and filter UID would be output.
  3833 	and filter UID would be output.
  3807 
  3834 
  3808 	@param aCategory  A category value from enum BTrace::TCategory.
  3835 	@param aCategory  A category value from enum BTrace::TCategory.
  3809 					  Only the 8 least significant bits in this value are used;
  3836 					  Only the 8 least significant bits in this value are used;
  3810 					  other bits are ignored.
  3837 					  other bits are ignored.
  3811 	@param aUid       A UID to filter on.
  3838 	@param aUid 	  A UID to filter on.
  3812 
  3839 
  3813 	@return True if a trace with this specification would be passed by the filters.
  3840 	@return True if a trace with this specification would be passed by the filters.
  3814 			False if a trace with this specification would be dropped by the filters.
  3841 			False if a trace with this specification would be dropped by the filters.
  3815 
  3842 
  3816 	@publishedPartner
  3843 	@publishedPartner
  3901 	/**
  3928 	/**
  3902 	@internalComponent
  3929 	@internalComponent
  3903 	*/
  3930 	*/
  3904 	struct SExecExtension
  3931 	struct SExecExtension
  3905 		{
  3932 		{
  3906 		TUint32	iA2;
  3933 		TUint32 iA2;
  3907 		TUint32	iA3;
  3934 		TUint32 iA3;
  3908 		TUint32	iPc;
  3935 		TUint32 iPc;
  3909 		};
  3936 		};
  3910 
  3937 
  3911 	/**
  3938 	/**
  3912 	@internalComponent
  3939 	@internalComponent
  3913 	*/
  3940 	*/
  3972 //
  3999 //
  3973 
  4000 
  3974 /**
  4001 /**
  3975 @internalComponent
  4002 @internalComponent
  3976 */
  4003 */
  3977 #define BTRACE_HEADER(aSize,aCategory,aSubCategory)			\
  4004 #define BTRACE_HEADER(aSize,aCategory,aSubCategory) 		\
  3978 	(((aSize)<<BTrace::ESizeIndex*8)							\
  4005 	(((aSize)<<BTrace::ESizeIndex*8)							\
  3979 	+((aCategory)<<BTrace::ECategoryIndex*8)					\
  4006 	+((aCategory)<<BTrace::ECategoryIndex*8)					\
  3980 	+((aSubCategory)<<BTrace::ESubCategoryIndex*8))
  4007 	+((aSubCategory)<<BTrace::ESubCategoryIndex*8))
  3981 
  4008 
  3982 /**
  4009 /**
  4400 
  4427 
  4401 @return True if trace is enabled for aCategory, false otherwise.
  4428 @return True if trace is enabled for aCategory, false otherwise.
  4402 @publishedPartner
  4429 @publishedPartner
  4403 @released
  4430 @released
  4404 */
  4431 */
  4405 #define BTraceContextPc4(aCategory,aSubCategory,a1)	\
  4432 #define BTraceContextPc4(aCategory,aSubCategory,a1) \
  4406 	((BTrace::TBTrace2)BTrace::OutX) \
  4433 	((BTrace::TBTrace2)BTrace::OutX) \
  4407 		(BTRACE_HEADER_CP(8,(aCategory),(aSubCategory)),(TUint32)(a1))
  4434 		(BTRACE_HEADER_CP(8,(aCategory),(aSubCategory)),(TUint32)(a1))
  4408 
  4435 
  4409 /**
  4436 /**
  4410 Output a trace record of the specified category which also includes
  4437 Output a trace record of the specified category which also includes
  4503 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4530 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4504 
  4531 
  4505 @param aCategory	A value from enum BTrace::TCategory,
  4532 @param aCategory	A value from enum BTrace::TCategory,
  4506 @param aSubCategory Sub-category value between 0 and 255.
  4533 @param aSubCategory Sub-category value between 0 and 255.
  4507 					The meaning of this is dependent on the Category.
  4534 					The meaning of this is dependent on the Category.
  4508 @param aUid			The 32bit quantity which forms the data of this trace record.
  4535 @param aUid 		The 32bit quantity which forms the data of this trace record.
  4509 
  4536 
  4510 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4537 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4511 @publishedPartner
  4538 @publishedPartner
  4512 @released
  4539 @released
  4513 */
  4540 */
  4523 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4550 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4524 
  4551 
  4525 @param aCategory	A value from enum BTrace::TCategory,
  4552 @param aCategory	A value from enum BTrace::TCategory,
  4526 @param aSubCategory Sub-category value between 0 and 255.
  4553 @param aSubCategory Sub-category value between 0 and 255.
  4527 					The meaning of this is dependent on the Category.
  4554 					The meaning of this is dependent on the Category.
  4528 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4555 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4529 @param a1			The second 32bit quantity which forms the data of this trace record.
  4556 @param a1			The second 32bit quantity which forms the data of this trace record.
  4530 
  4557 
  4531 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4558 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4532 @publishedPartner
  4559 @publishedPartner
  4533 @released
  4560 @released
  4544 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4571 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4545 
  4572 
  4546 @param aCategory	A value from enum BTrace::TCategory,
  4573 @param aCategory	A value from enum BTrace::TCategory,
  4547 @param aSubCategory Sub-category value between 0 and 255.
  4574 @param aSubCategory Sub-category value between 0 and 255.
  4548 					The meaning of this is dependent on the Category.
  4575 					The meaning of this is dependent on the Category.
  4549 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4576 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4550 @param a1			The second 32bit quantity which forms the data of this trace record.
  4577 @param a1			The second 32bit quantity which forms the data of this trace record.
  4551 @param a2			The third 32bit quantity which forms the data of this trace record.
  4578 @param a2			The third 32bit quantity which forms the data of this trace record.
  4552 
  4579 
  4553 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4580 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4554 @publishedPartner
  4581 @publishedPartner
  4564 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4591 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4565 
  4592 
  4566 @param aCategory	A value from enum BTrace::TCategory,
  4593 @param aCategory	A value from enum BTrace::TCategory,
  4567 @param aSubCategory Sub-category value between 0 and 255.
  4594 @param aSubCategory Sub-category value between 0 and 255.
  4568 					The meaning of this is dependent on the Category.
  4595 					The meaning of this is dependent on the Category.
  4569 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4596 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4570 @param a1			The second 32bit quantity which forms the data of this trace record.
  4597 @param a1			The second 32bit quantity which forms the data of this trace record.
  4571 @param aData		Address of addition data to add to trace.
  4598 @param aData		Address of addition data to add to trace.
  4572 					Must be word aligned, i.e. a multiple of 4.
  4599 					Must be word aligned, i.e. a multiple of 4.
  4573 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4600 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4574 					KMaxBTraceDataArray then data is truncated to this size and the
  4601 					KMaxBTraceDataArray then data is truncated to this size and the
  4591 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4618 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4592 
  4619 
  4593 @param aCategory	A value from enum BTrace::TCategory,
  4620 @param aCategory	A value from enum BTrace::TCategory,
  4594 @param aSubCategory Sub-category value between 0 and 255.
  4621 @param aSubCategory Sub-category value between 0 and 255.
  4595 					The meaning of this is dependent on the Category.
  4622 					The meaning of this is dependent on the Category.
  4596 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4623 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4597 @param aData		Address of addition data to add to trace.
  4624 @param aData		Address of addition data to add to trace.
  4598 					Must be word aligned, i.e. a multiple of 4.
  4625 					Must be word aligned, i.e. a multiple of 4.
  4599 @param aDataSize	Number of bytes of additional data.
  4626 @param aDataSize	Number of bytes of additional data.
  4600 
  4627 
  4601 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4628 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4616 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4643 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4617 
  4644 
  4618 @param aCategory	A value from enum BTrace::TCategory,
  4645 @param aCategory	A value from enum BTrace::TCategory,
  4619 @param aSubCategory Sub-category value between 0 and 255.
  4646 @param aSubCategory Sub-category value between 0 and 255.
  4620 					The meaning of this is dependent on the Category.
  4647 					The meaning of this is dependent on the Category.
  4621 @param aUid			The 32bit quantity which forms the data of this trace record.
  4648 @param aUid 		The 32bit quantity which forms the data of this trace record.
  4622 
  4649 
  4623 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4650 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4624 @publishedPartner
  4651 @publishedPartner
  4625 @released
  4652 @released
  4626 */
  4653 */
  4636 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4663 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4637 
  4664 
  4638 @param aCategory	A value from enum BTrace::TCategory,
  4665 @param aCategory	A value from enum BTrace::TCategory,
  4639 @param aSubCategory Sub-category value between 0 and 255.
  4666 @param aSubCategory Sub-category value between 0 and 255.
  4640 					The meaning of this is dependent on the Category.
  4667 					The meaning of this is dependent on the Category.
  4641 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4668 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4642 @param a1			The second 32bit quantity which forms the data of this trace record.
  4669 @param a1			The second 32bit quantity which forms the data of this trace record.
  4643 
  4670 
  4644 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4671 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4645 @publishedPartner
  4672 @publishedPartner
  4646 @released
  4673 @released
  4657 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4684 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4658 
  4685 
  4659 @param aCategory	A value from enum BTrace::TCategory,
  4686 @param aCategory	A value from enum BTrace::TCategory,
  4660 @param aSubCategory Sub-category value between 0 and 255.
  4687 @param aSubCategory Sub-category value between 0 and 255.
  4661 					The meaning of this is dependent on the Category.
  4688 					The meaning of this is dependent on the Category.
  4662 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4689 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4663 @param a1			The second 32bit quantity which forms the data of this trace record.
  4690 @param a1			The second 32bit quantity which forms the data of this trace record.
  4664 @param a2			The third 32bit quantity which forms the data of this trace record.
  4691 @param a2			The third 32bit quantity which forms the data of this trace record.
  4665 
  4692 
  4666 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4693 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4667 @publishedPartner
  4694 @publishedPartner
  4677 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4704 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4678 
  4705 
  4679 @param aCategory	A value from enum BTrace::TCategory,
  4706 @param aCategory	A value from enum BTrace::TCategory,
  4680 @param aSubCategory Sub-category value between 0 and 255.
  4707 @param aSubCategory Sub-category value between 0 and 255.
  4681 					The meaning of this is dependent on the Category.
  4708 					The meaning of this is dependent on the Category.
  4682 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4709 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4683 @param a1			The second 32bit quantity which forms the data of this trace record.
  4710 @param a1			The second 32bit quantity which forms the data of this trace record.
  4684 @param aData		Address of addition data to add to trace.
  4711 @param aData		Address of addition data to add to trace.
  4685 					Must be word aligned, i.e. a multiple of 4.
  4712 					Must be word aligned, i.e. a multiple of 4.
  4686 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4713 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4687 					KMaxBTraceDataArray then data is truncated to this size and the
  4714 					KMaxBTraceDataArray then data is truncated to this size and the
  4704 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4731 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4705 
  4732 
  4706 @param aCategory	A value from enum BTrace::TCategory,
  4733 @param aCategory	A value from enum BTrace::TCategory,
  4707 @param aSubCategory Sub-category value between 0 and 255.
  4734 @param aSubCategory Sub-category value between 0 and 255.
  4708 					The meaning of this is dependent on the Category.
  4735 					The meaning of this is dependent on the Category.
  4709 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4736 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4710 @param aData		Address of addition data to add to trace.
  4737 @param aData		Address of addition data to add to trace.
  4711 					Must be word aligned, i.e. a multiple of 4.
  4738 					Must be word aligned, i.e. a multiple of 4.
  4712 @param aDataSize	Number of bytes of additional data.
  4739 @param aDataSize	Number of bytes of additional data.
  4713 
  4740 
  4714 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4741 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4729 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4756 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4730 
  4757 
  4731 @param aCategory	A value from enum BTrace::TCategory,
  4758 @param aCategory	A value from enum BTrace::TCategory,
  4732 @param aSubCategory Sub-category value between 0 and 255.
  4759 @param aSubCategory Sub-category value between 0 and 255.
  4733 					The meaning of this is dependent on the Category.
  4760 					The meaning of this is dependent on the Category.
  4734 @param aUid			The 32bit quantity which forms the data of this trace record.
  4761 @param aUid 		The 32bit quantity which forms the data of this trace record.
  4735 
  4762 
  4736 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4763 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4737 @publishedPartner
  4764 @publishedPartner
  4738 @released
  4765 @released
  4739 */
  4766 */
  4749 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4776 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4750 
  4777 
  4751 @param aCategory	A value from enum BTrace::TCategory,
  4778 @param aCategory	A value from enum BTrace::TCategory,
  4752 @param aSubCategory Sub-category value between 0 and 255.
  4779 @param aSubCategory Sub-category value between 0 and 255.
  4753 					The meaning of this is dependent on the Category.
  4780 					The meaning of this is dependent on the Category.
  4754 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4781 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4755 @param a1			The second 32bit quantity which forms the data of this trace record.
  4782 @param a1			The second 32bit quantity which forms the data of this trace record.
  4756 
  4783 
  4757 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4784 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4758 @publishedPartner
  4785 @publishedPartner
  4759 @released
  4786 @released
  4770 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4797 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4771 
  4798 
  4772 @param aCategory	A value from enum BTrace::TCategory,
  4799 @param aCategory	A value from enum BTrace::TCategory,
  4773 @param aSubCategory Sub-category value between 0 and 255.
  4800 @param aSubCategory Sub-category value between 0 and 255.
  4774 					The meaning of this is dependent on the Category.
  4801 					The meaning of this is dependent on the Category.
  4775 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4802 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4776 @param a1			The second 32bit quantity which forms the data of this trace record.
  4803 @param a1			The second 32bit quantity which forms the data of this trace record.
  4777 @param a2			The third 32bit quantity which forms the data of this trace record.
  4804 @param a2			The third 32bit quantity which forms the data of this trace record.
  4778 
  4805 
  4779 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4806 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4780 @publishedPartner
  4807 @publishedPartner
  4790 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4817 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4791 
  4818 
  4792 @param aCategory	A value from enum BTrace::TCategory,
  4819 @param aCategory	A value from enum BTrace::TCategory,
  4793 @param aSubCategory Sub-category value between 0 and 255.
  4820 @param aSubCategory Sub-category value between 0 and 255.
  4794 					The meaning of this is dependent on the Category.
  4821 					The meaning of this is dependent on the Category.
  4795 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4822 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4796 @param a1			The second 32bit quantity which forms the data of this trace record.
  4823 @param a1			The second 32bit quantity which forms the data of this trace record.
  4797 @param aData		Address of addition data to add to trace.
  4824 @param aData		Address of addition data to add to trace.
  4798 					Must be word aligned, i.e. a multiple of 4.
  4825 					Must be word aligned, i.e. a multiple of 4.
  4799 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4826 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4800 					KMaxBTraceDataArray then data is truncated to this size and the
  4827 					KMaxBTraceDataArray then data is truncated to this size and the
  4817 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4844 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4818 
  4845 
  4819 @param aCategory	A value from enum BTrace::TCategory,
  4846 @param aCategory	A value from enum BTrace::TCategory,
  4820 @param aSubCategory Sub-category value between 0 and 255.
  4847 @param aSubCategory Sub-category value between 0 and 255.
  4821 					The meaning of this is dependent on the Category.
  4848 					The meaning of this is dependent on the Category.
  4822 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4849 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4823 @param aData		Address of addition data to add to trace.
  4850 @param aData		Address of addition data to add to trace.
  4824 					Must be word aligned, i.e. a multiple of 4.
  4851 					Must be word aligned, i.e. a multiple of 4.
  4825 @param aDataSize	Number of bytes of additional data.
  4852 @param aDataSize	Number of bytes of additional data.
  4826 
  4853 
  4827 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4854 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4844 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4871 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4845 
  4872 
  4846 @param aCategory	A value from enum BTrace::TCategory,
  4873 @param aCategory	A value from enum BTrace::TCategory,
  4847 @param aSubCategory Sub-category value between 0 and 255.
  4874 @param aSubCategory Sub-category value between 0 and 255.
  4848 					The meaning of this is dependent on the Category.
  4875 					The meaning of this is dependent on the Category.
  4849 @param aUid			The 32bit quantity which forms the data of this trace record.
  4876 @param aUid 		The 32bit quantity which forms the data of this trace record.
  4850 
  4877 
  4851 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4878 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4852 @publishedPartner
  4879 @publishedPartner
  4853 @released
  4880 @released
  4854 */
  4881 */
  4865 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4892 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4866 
  4893 
  4867 @param aCategory	A value from enum BTrace::TCategory,
  4894 @param aCategory	A value from enum BTrace::TCategory,
  4868 @param aSubCategory Sub-category value between 0 and 255.
  4895 @param aSubCategory Sub-category value between 0 and 255.
  4869 					The meaning of this is dependent on the Category.
  4896 					The meaning of this is dependent on the Category.
  4870 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4897 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4871 @param a1			The second 32bit quantity which forms the data of this trace record.
  4898 @param a1			The second 32bit quantity which forms the data of this trace record.
  4872 
  4899 
  4873 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4900 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4874 @publishedPartner
  4901 @publishedPartner
  4875 @released
  4902 @released
  4887 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4914 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4888 
  4915 
  4889 @param aCategory	A value from enum BTrace::TCategory,
  4916 @param aCategory	A value from enum BTrace::TCategory,
  4890 @param aSubCategory Sub-category value between 0 and 255.
  4917 @param aSubCategory Sub-category value between 0 and 255.
  4891 					The meaning of this is dependent on the Category.
  4918 					The meaning of this is dependent on the Category.
  4892 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4919 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4893 @param a1			The second 32bit quantity which forms the data of this trace record.
  4920 @param a1			The second 32bit quantity which forms the data of this trace record.
  4894 @param a2			The third 32bit quantity which forms the data of this trace record.
  4921 @param a2			The third 32bit quantity which forms the data of this trace record.
  4895 
  4922 
  4896 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4923 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4897 @publishedPartner
  4924 @publishedPartner
  4908 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4935 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4909 
  4936 
  4910 @param aCategory	A value from enum BTrace::TCategory,
  4937 @param aCategory	A value from enum BTrace::TCategory,
  4911 @param aSubCategory Sub-category value between 0 and 255.
  4938 @param aSubCategory Sub-category value between 0 and 255.
  4912 					The meaning of this is dependent on the Category.
  4939 					The meaning of this is dependent on the Category.
  4913 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4940 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4914 @param a1			The second 32bit quantity which forms the data of this trace record.
  4941 @param a1			The second 32bit quantity which forms the data of this trace record.
  4915 @param aData		Address of addition data to add to trace.
  4942 @param aData		Address of addition data to add to trace.
  4916 					Must be word aligned, i.e. a multiple of 4.
  4943 					Must be word aligned, i.e. a multiple of 4.
  4917 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4944 @param aDataSize	Number of bytes of additional data. If this value is greater than
  4918 					KMaxBTraceDataArray then data is truncated to this size and the
  4945 					KMaxBTraceDataArray then data is truncated to this size and the
  4936 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4963 If the value of \a aUid is not contained in the secondary filter then the trace is discarded.
  4937 
  4964 
  4938 @param aCategory	A value from enum BTrace::TCategory,
  4965 @param aCategory	A value from enum BTrace::TCategory,
  4939 @param aSubCategory Sub-category value between 0 and 255.
  4966 @param aSubCategory Sub-category value between 0 and 255.
  4940 					The meaning of this is dependent on the Category.
  4967 					The meaning of this is dependent on the Category.
  4941 @param aUid			The first 32bit quantity which forms the data of this trace record.
  4968 @param aUid 		The first 32bit quantity which forms the data of this trace record.
  4942 @param aData		Address of addition data to add to trace.
  4969 @param aData		Address of addition data to add to trace.
  4943 					Must be word aligned, i.e. a multiple of 4.
  4970 					Must be word aligned, i.e. a multiple of 4.
  4944 @param aDataSize	Number of bytes of additional data.
  4971 @param aDataSize	Number of bytes of additional data.
  4945 
  4972 
  4946 @return True if trace is enabled for aCategory and aUid, false otherwise.
  4973 @return True if trace is enabled for aCategory and aUid, false otherwise.