mirror of
				https://git.proxmox.com/git/qemu
				synced 2025-10-31 07:05:05 +00:00 
			
		
		
		
	 454e202d52
			
		
	
	
		454e202d52
		
	
	
	
	
		
			
			A basic wildcard matching is supported in both the monitor command
"trace-event" and the events list file. That means you can enable/disable
the events having a common prefix in a batch. For example, virtio-blk trace
events could be enabled using:
    trace-event virtio_blk_* on
Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
		
	
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "trace.h"
 | |
| #include "trace/control.h"
 | |
| 
 | |
| 
 | |
| void trace_print_events(FILE *stream, fprintf_function stream_printf)
 | |
| {
 | |
|     unsigned int i;
 | |
| 
 | |
|     for (i = 0; i < NR_TRACE_EVENTS; i++) {
 | |
|         stream_printf(stream, "%s [Event ID %u] : state %u\n",
 | |
|                       trace_list[i].tp_name, i, trace_list[i].state);
 | |
|     }
 | |
| }
 | |
| 
 | |
| bool trace_event_set_state(const char *name, bool state)
 | |
| {
 | |
|     unsigned int i;
 | |
|     unsigned int len;
 | |
|     bool wildcard = false;
 | |
|     bool matched = false;
 | |
| 
 | |
|     len = strlen(name);
 | |
|     if (len > 0 && name[len - 1] == '*') {
 | |
|         wildcard = true;
 | |
|         len -= 1;
 | |
|     }
 | |
|     for (i = 0; i < NR_TRACE_EVENTS; i++) {
 | |
|         if (wildcard) {
 | |
|             if (!strncmp(trace_list[i].tp_name, name, len)) {
 | |
|                 trace_list[i].state = state;
 | |
|                 matched = true;
 | |
|             }
 | |
|             continue;
 | |
|         }
 | |
|         if (!strcmp(trace_list[i].tp_name, name)) {
 | |
|             trace_list[i].state = state;
 | |
|             return true;
 | |
|         }
 | |
|     }
 | |
|     return matched;
 | |
| }
 | |
| 
 | |
| bool trace_backend_init(const char *events, const char *file)
 | |
| {
 | |
|     if (file) {
 | |
|         fprintf(stderr, "error: -trace file=...: "
 | |
|                 "option not supported by the selected tracing backend\n");
 | |
|         return false;
 | |
|     }
 | |
|     trace_backend_init_events(events);
 | |
|     return true;
 | |
| }
 |