1 /* 2 * Simple trace backend 3 * 4 * Copyright IBM, Corp. 2010 5 * 6 * This work is licensed under the terms of the GNU GPL, version 2. See 7 * the COPYING file in the top-level directory. 8 * 9 */ 10 11 #ifndef TRACE_SIMPLE_H 12 #define TRACE_SIMPLE_H 13 14 #include <stdint.h> 15 #include <stdbool.h> 16 #include <stdio.h> 17 18 typedef uint64_t TraceEventID; 19 20 typedef struct { 21 const char *tp_name; 22 bool state; 23 } TraceEvent; 24 25 void trace0(TraceEventID event); 26 void trace1(TraceEventID event, uint64_t x1); 27 void trace2(TraceEventID event, uint64_t x1, uint64_t x2); 28 void trace3(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3); 29 void trace4(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4); 30 void trace5(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4, uint64_t x5); 31 void trace6(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4, uint64_t x5, uint64_t x6); 32 void st_print_trace(FILE *stream, fprintf_function stream_printf); 33 void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf); 34 void st_set_trace_file_enabled(bool enable); 35 bool st_set_trace_file(const char *file); 36 void st_flush_trace_buffer(void); 37 38 #endif /* TRACE_SIMPLE_H */ 39