| 
									
										
										
										
											2013-03-05 14:47:32 +01:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:30 +01:00
										 |  |  | trace/generated-events.h | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:32 +01:00
										 |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __author__     = "Lluís Vilanova <vilanova@ac.upc.edu>" | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:30 +01:00
										 |  |  | __copyright__  = "Copyright 2012-2014, Lluís Vilanova <vilanova@ac.upc.edu>" | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:32 +01: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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  | def generate(events, backend): | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:32 +01:00
										 |  |  |     out('/* This file is autogenerated by tracetool, do not edit. */', | 
					
						
							|  |  |  |         '', | 
					
						
							|  |  |  |         '#ifndef TRACE__GENERATED_EVENTS_H', | 
					
						
							|  |  |  |         '#define TRACE__GENERATED_EVENTS_H', | 
					
						
							|  |  |  |         '', | 
					
						
							|  |  |  |         '#include <stdbool.h>', | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  |         '') | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:32 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # event identifiers | 
					
						
							|  |  |  |     out('typedef enum {') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for e in events: | 
					
						
							|  |  |  |         out('    TRACE_%s,' % e.name.upper()) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     out('    TRACE_EVENT_COUNT', | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  |         '} TraceEventID;') | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:32 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # static state | 
					
						
							|  |  |  |     for e in events: | 
					
						
							|  |  |  |         if 'disable' in e.properties: | 
					
						
							|  |  |  |             enabled = 0 | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             enabled = 1 | 
					
						
							| 
									
										
										
										
											2014-05-30 14:11:44 +02:00
										 |  |  |         if "tcg-trans" in e.properties: | 
					
						
							|  |  |  |             # a single define for the two "sub-events" | 
					
						
							|  |  |  |             out('#define TRACE_%(name)s_ENABLED %(enabled)d', | 
					
						
							|  |  |  |                 name=e.original.original.name.upper(), | 
					
						
							|  |  |  |                 enabled=enabled) | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:32 +01:00
										 |  |  |         out('#define TRACE_%s_ENABLED %d' % (e.name.upper(), enabled)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     out('#include "trace/event-internal.h"', | 
					
						
							|  |  |  |         '', | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  |         '#endif  /* TRACE__GENERATED_EVENTS_H */') |