Use a table to convert channel ids to PRV types
This commit is contained in:
		
							parent
							
								
									0f09a3a514
								
							
						
					
					
						commit
						d6afd5c528
					
				
							
								
								
									
										66
									
								
								emu.h
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								emu.h
									
									
									
									
									
								
							| @ -99,37 +99,63 @@ struct ovni_chan { | ||||
| 
 | ||||
| 	/* Where should the events be written to? */ | ||||
| 	FILE *prv; | ||||
| 
 | ||||
| 	/* What should cause the channel to become disabled? */ | ||||
| 	enum chan_track track; | ||||
| }; | ||||
| 
 | ||||
| enum chan { | ||||
| 	/* Ovni */ | ||||
| 	CHAN_OVNI_STATE = 0, | ||||
| 	CHAN_OVNI_TID, | ||||
| 	CHAN_OVNI_PID, | ||||
| 	CHAN_OVNI_TID, | ||||
| 	CHAN_OVNI_NTHREADS, | ||||
| 	CHAN_OVNI_STATE, | ||||
| 	CHAN_OVNI_APPID, | ||||
| 	CHAN_OVNI_CPU, | ||||
| 
 | ||||
| 	/* nOS-V */ | ||||
| 	CHAN_NOSV_TASK_ID, | ||||
| 	CHAN_NOSV_SS, /* Subsystem */ | ||||
| 	CHAN_NOSV_TASKID, | ||||
| 	CHAN_NOSV_TYPEID, | ||||
| 	CHAN_NOSV_APPID, | ||||
| 	CHAN_NOSV_SUBSYSTEM, | ||||
| 	CHAN_MAX | ||||
| }; | ||||
| 
 | ||||
| /* All PRV event types */ | ||||
| enum prv_type { | ||||
| 	/* Rows are CPUs */ | ||||
| 	PTC_PROC_PID      = 10, | ||||
| 	PTC_THREAD_TID    = 11, | ||||
| 	PTC_NTHREADS      = 12, | ||||
| 	PTC_TASK_ID       = 20, | ||||
| 	PTC_TASK_TYPE_ID  = 21, | ||||
| 	PTC_APP_ID        = 30, | ||||
| 	PTC_SUBSYSTEM     = 31, | ||||
| /* Same order as `enum chan` */ | ||||
| static int chan_to_prvtype[CHAN_MAX][3] = { | ||||
| 	/* Channel		TH  CPU */ | ||||
| 	{ CHAN_OVNI_PID,	10, 60 }, | ||||
| 	{ CHAN_OVNI_TID,	11, 61 }, | ||||
| 	{ CHAN_OVNI_NTHREADS,	-1, 62 }, | ||||
| 	{ CHAN_OVNI_STATE,	13, 63 }, | ||||
| 	{ CHAN_OVNI_APPID,	14, 64 }, | ||||
| 	{ CHAN_OVNI_CPU,	15, -1 }, | ||||
| 
 | ||||
| 	/* Rows are threads */ | ||||
| 	PTT_THREAD_STATE  = 60, | ||||
| 	PTT_THREAD_TID    = 61, | ||||
| 	PTT_SUBSYSTEM     = 62, | ||||
| 	{ CHAN_NOSV_TASKID,	20, 70 }, | ||||
| 	{ CHAN_NOSV_TYPEID,	21, 71 }, | ||||
| 	{ CHAN_NOSV_APPID,	22, 72 }, | ||||
| 	{ CHAN_NOSV_SUBSYSTEM,	23, 73 }, | ||||
| }; | ||||
| 
 | ||||
| ///* All PRV event types */
 | ||||
| //enum prv_type {
 | ||||
| //	/* Rows are CPUs */
 | ||||
| //	PTC_PROC_PID      = 10,
 | ||||
| //	PTC_THREAD_TID    = 11,
 | ||||
| //	PTC_NTHREADS      = 12,
 | ||||
| //	PTC_TASK_ID       = 20,
 | ||||
| //	PTC_TASK_TYPE_ID  = 21,
 | ||||
| //	PTC_APP_ID        = 30,
 | ||||
| //	PTC_SUBSYSTEM     = 31,
 | ||||
| //
 | ||||
| //	/* Rows are threads */
 | ||||
| //	PTT_THREAD_STATE  = 60,
 | ||||
| //	PTT_THREAD_TID    = 61,
 | ||||
| //	PTT_SUBSYSTEM     = 62,
 | ||||
| //
 | ||||
| //	PTT_TASK_ID       = 63,
 | ||||
| //	PTT_TASK_TYPE_ID  = 64,
 | ||||
| //	PTT_TASK_APP_ID   = 65,
 | ||||
| //};
 | ||||
| 
 | ||||
| /* State of each emulated thread */ | ||||
| struct ovni_ethread { | ||||
| 	/* Emulated thread tid */ | ||||
|  | ||||
							
								
								
									
										9
									
								
								pcf.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								pcf.c
									
									
									
									
									
								
							| @ -98,8 +98,9 @@ struct event_value thread_state_values[] = { | ||||
| 	{ -1, NULL }, | ||||
| }; | ||||
| 
 | ||||
| /* FIXME: Use enum */ | ||||
| struct event_type thread_state = { | ||||
| 	0, PTT_THREAD_STATE, "Thread: State", | ||||
| 	0, 13, "Thread: State", | ||||
| 	thread_state_values | ||||
| }; | ||||
| 
 | ||||
| @ -110,7 +111,7 @@ struct event_value thread_tid_values[] = { | ||||
| }; | ||||
| 
 | ||||
| struct event_type thread_tid = { | ||||
| 	0, PTC_THREAD_TID, "CPU: Thread TID", | ||||
| 	0, 61, "CPU: Thread TID", | ||||
| 	thread_tid_values | ||||
| }; | ||||
| 
 | ||||
| @ -128,12 +129,12 @@ struct event_value ss_values[] = { | ||||
| }; | ||||
| 
 | ||||
| struct event_type thread_ss = { | ||||
| 	0, PTT_SUBSYSTEM, "Thread: Subsystem", | ||||
| 	0, 23, "Thread: Subsystem", | ||||
| 	ss_values | ||||
| }; | ||||
| 
 | ||||
| struct event_type cpu_ss = { | ||||
| 	0, PTC_SUBSYSTEM, "CPU: Current thread subsystem", | ||||
| 	0, 73, "CPU: Current thread subsystem", | ||||
| 	ss_values | ||||
| }; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user