| 
									
										
										
										
											2012-04-03 20:48:06 +02:00
										 |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | LTTng User Space Tracing backend. | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __author__     = "Lluís Vilanova <vilanova@ac.upc.edu>" | 
					
						
							| 
									
										
										
										
											2017-07-04 10:50:46 +02:00
										 |  |  | __copyright__  = "Copyright 2012-2017, Lluís Vilanova <vilanova@ac.upc.edu>" | 
					
						
							| 
									
										
										
										
											2012-04-03 20:48:06 +02:00
										 |  |  | __license__    = "GPL version 2 or (at your option) any later version" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __maintainer__ = "Stefan Hajnoczi" | 
					
						
							| 
									
										
										
										
											2020-05-11 10:28:16 +02:00
										 |  |  | __email__      = "stefanha@redhat.com" | 
					
						
							| 
									
										
										
										
											2012-04-03 20:48:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from tracetool import out | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-05 14:47:26 +01:00
										 |  |  | PUBLIC = True | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-29 22:47:55 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-04 14:35:59 +01:00
										 |  |  | def generate_h_begin(events, group): | 
					
						
							| 
									
										
										
										
											2020-08-19 08:44:56 -04:00
										 |  |  |     header = 'trace-ust-' + group + '.h' | 
					
						
							| 
									
										
										
										
											2014-01-29 22:47:55 -05:00
										 |  |  |     out('#include <lttng/tracepoint.h>', | 
					
						
							| 
									
										
										
										
											2017-01-25 16:14:15 +00:00
										 |  |  |         '#include "%s"' % header, | 
					
						
							| 
									
										
										
										
											2017-07-31 15:07:17 +01:00
										 |  |  |         '', | 
					
						
							|  |  |  |         '/* tracepoint_enabled() was introduced in LTTng UST 2.7 */', | 
					
						
							|  |  |  |         '#ifndef tracepoint_enabled', | 
					
						
							|  |  |  |         '#define tracepoint_enabled(a, b) true', | 
					
						
							|  |  |  |         '#endif', | 
					
						
							| 
									
										
										
										
											2014-01-29 22:47:55 -05:00
										 |  |  |         '') | 
					
						
							| 
									
										
										
										
											2012-04-03 20:48:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-29 22:47:55 -05: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 | 
					
						
							| 
									
										
										
										
											2014-01-29 22:47:55 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-04 10:50:46 +02:00
										 |  |  |     out('    tracepoint(qemu, %(name)s%(tp_args)s);', | 
					
						
							| 
									
										
										
										
											2014-02-23 20:37:40 +01:00
										 |  |  |         name=event.name, | 
					
						
							|  |  |  |         tp_args=argnames) | 
					
						
							| 
									
										
										
										
											2017-07-31 15:07:17 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def generate_h_backend_dstate(event, group): | 
					
						
							|  |  |  |     out('    tracepoint_enabled(qemu, %(name)s) || \\', | 
					
						
							|  |  |  |         name=event.name) |