19e9f6010SCody P Schafer 
29e9f6010SCody P Schafer #include "req-gen/_begin.h"
39e9f6010SCody P Schafer 
49e9f6010SCody P Schafer /*
59e9f6010SCody P Schafer  * Based on the document "getPerfCountInfo v1.07"
69e9f6010SCody P Schafer  */
79e9f6010SCody P Schafer 
89e9f6010SCody P Schafer /*
99e9f6010SCody P Schafer  * #define REQUEST_NAME counter_request_name
109e9f6010SCody P Schafer  * #define REQUEST_NUM r_num
119e9f6010SCody P Schafer  * #define REQUEST_IDX_KIND starting_index_kind
129e9f6010SCody P Schafer  * #include I(REQUEST_BEGIN)
139e9f6010SCody P Schafer  * REQUEST(
149e9f6010SCody P Schafer  *	__field(...)
159e9f6010SCody P Schafer  *	__field(...)
169e9f6010SCody P Schafer  *	__array(...)
179e9f6010SCody P Schafer  *	__count(...)
189e9f6010SCody P Schafer  * )
199e9f6010SCody P Schafer  * #include I(REQUEST_END)
209e9f6010SCody P Schafer  *
219e9f6010SCody P Schafer  * - starting_index_kind is one of the following, depending on the event:
229e9f6010SCody P Schafer  *
239e9f6010SCody P Schafer  *   chip_id: hardware chip id or -1 for current hw chip
249e9f6010SCody P Schafer  *   phys_processor_idx:
259e9f6010SCody P Schafer  *   0xffffffffffffffff: or -1, which means it is irrelavant for the event
269e9f6010SCody P Schafer  *
279e9f6010SCody P Schafer  * __count(offset, bytes, name):
289e9f6010SCody P Schafer  *	a counter that should be exposed via perf
299e9f6010SCody P Schafer  * __field(offset, bytes, name)
309e9f6010SCody P Schafer  *	a normal field
319e9f6010SCody P Schafer  * __array(offset, bytes, name)
329e9f6010SCody P Schafer  *	an array of bytes
339e9f6010SCody P Schafer  *
349e9f6010SCody P Schafer  *
359e9f6010SCody P Schafer  *	@bytes for __count, and __field _must_ be a numeral token
369e9f6010SCody P Schafer  *	in decimal, not an expression and not in hex.
379e9f6010SCody P Schafer  *
389e9f6010SCody P Schafer  *
399e9f6010SCody P Schafer  * TODO:
409e9f6010SCody P Schafer  *	- expose secondary index (if any counter ever uses it, only 0xA0
419e9f6010SCody P Schafer  *	  appears to use it right now, and it doesn't have any counters)
429e9f6010SCody P Schafer  *	- embed versioning info
439e9f6010SCody P Schafer  *	- include counter descriptions
449e9f6010SCody P Schafer  */
459e9f6010SCody P Schafer #define REQUEST_NAME dispatch_timebase_by_processor
469e9f6010SCody P Schafer #define REQUEST_NUM 0x10
479e9f6010SCody P Schafer #define REQUEST_IDX_KIND "phys_processor_idx=?"
489e9f6010SCody P Schafer #include I(REQUEST_BEGIN)
499e9f6010SCody P Schafer REQUEST(__count(0,	8,	processor_time_in_timebase_cycles)
509e9f6010SCody P Schafer 	__field(0x8,	4,	hw_processor_id)
519e9f6010SCody P Schafer 	__field(0xC,	2,	owning_part_id)
529e9f6010SCody P Schafer 	__field(0xE,	1,	processor_state)
539e9f6010SCody P Schafer 	__field(0xF,	1,	version)
549e9f6010SCody P Schafer 	__field(0x10,	4,	hw_chip_id)
559e9f6010SCody P Schafer 	__field(0x14,	4,	phys_module_id)
569e9f6010SCody P Schafer 	__field(0x18,	4,	primary_affinity_domain_idx)
579e9f6010SCody P Schafer 	__field(0x1C,	4,	secondary_affinity_domain_idx)
589e9f6010SCody P Schafer 	__field(0x20,	4,	processor_version)
599e9f6010SCody P Schafer 	__field(0x24,	2,	logical_processor_idx)
609e9f6010SCody P Schafer 	__field(0x26,	2,	reserved)
619e9f6010SCody P Schafer 	__field(0x28,	4,	processor_id_register)
629e9f6010SCody P Schafer 	__field(0x2C,	4,	phys_processor_idx)
639e9f6010SCody P Schafer )
649e9f6010SCody P Schafer #include I(REQUEST_END)
659e9f6010SCody P Schafer 
669e9f6010SCody P Schafer #define REQUEST_NAME system_performance_capabilities
679e9f6010SCody P Schafer #define REQUEST_NUM 0x40
689e9f6010SCody P Schafer #define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
699e9f6010SCody P Schafer #include I(REQUEST_BEGIN)
709e9f6010SCody P Schafer REQUEST(__field(0,	1,	perf_collect_privileged)
719e9f6010SCody P Schafer 	__field(0x1,	1,	capability_mask)
729e9f6010SCody P Schafer 	__array(0x2,	0xE,	reserved)
739e9f6010SCody P Schafer )
749e9f6010SCody P Schafer #include I(REQUEST_END)
759e9f6010SCody P Schafer 
769e9f6010SCody P Schafer #include "req-gen/_end.h"
77