| 
									
										
										
										
											2012-04-03 20:47:55 +02:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | Stderr built-in backend. | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __author__     = "Lluís Vilanova <vilanova@ac.upc.edu>" | 
					
						
							| 
									
										
										
										
											2016-07-11 12:53:46 +02:00
										 |  |  | __copyright__  = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>" | 
					
						
							| 
									
										
										
										
											2012-04-03 20:47:55 +02:00
										 |  |  | __license__    = "GPL version 2 or (at your option) any later version" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __maintainer__ = "Stefan Hajnoczi" | 
					
						
							|  |  |  | __email__      = "stefanha@linux.vnet.ibm.com" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from tracetool import out | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:26 +01:00
										 |  |  | PUBLIC = True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-04 14:35:59 +01:00
										 |  |  | def generate_h_begin(events, group): | 
					
						
							| 
									
										
										
										
											2016-10-04 14:35:46 +01:00
										 |  |  |     out('#include "qemu/log.h"', | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  |         '') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-04 14:35:59 +01:00
										 |  |  | def generate_h(event, group): | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  |     argnames = ", ".join(event.args.names()) | 
					
						
							|  |  |  |     if len(event.args) > 0: | 
					
						
							|  |  |  |         argnames = ", " + argnames | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-11 12:53:46 +02:00
										 |  |  |     if "vcpu" in event.properties: | 
					
						
							|  |  |  |         # already checked on the generic format code | 
					
						
							|  |  |  |         cond = "true" | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         cond = "trace_event_get_state(%s)" % ("TRACE_" + event.name.upper()) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     out('        if (%(cond)s) {', | 
					
						
							|  |  |  |         '            struct timeval _now;', | 
					
						
							|  |  |  |         '            gettimeofday(&_now, NULL);', | 
					
						
							|  |  |  |         '            qemu_log_mask(LOG_TRACE, "%%d@%%zd.%%06zd:%(name)s " %(fmt)s "\\n",', | 
					
						
							|  |  |  |         '                          getpid(),', | 
					
						
							|  |  |  |         '                          (size_t)_now.tv_sec, (size_t)_now.tv_usec', | 
					
						
							|  |  |  |         '                          %(argnames)s);', | 
					
						
							|  |  |  |         '        }', | 
					
						
							|  |  |  |         cond=cond, | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  |         name=event.name, | 
					
						
							|  |  |  |         fmt=event.fmt.rstrip("\n"), | 
					
						
							|  |  |  |         argnames=argnames) |