126f7227bSStefan Hajnoczi /* 226f7227bSStefan Hajnoczi * Simple trace backend 326f7227bSStefan Hajnoczi * 426f7227bSStefan Hajnoczi * Copyright IBM, Corp. 2010 526f7227bSStefan Hajnoczi * 626f7227bSStefan Hajnoczi * This work is licensed under the terms of the GNU GPL, version 2. See 726f7227bSStefan Hajnoczi * the COPYING file in the top-level directory. 826f7227bSStefan Hajnoczi * 926f7227bSStefan Hajnoczi */ 1026f7227bSStefan Hajnoczi 11*edb47ec4SLluís #ifndef TRACE_SIMPLE_H 12*edb47ec4SLluís #define TRACE_SIMPLE_H 1326f7227bSStefan Hajnoczi 1426f7227bSStefan Hajnoczi #include <stdint.h> 1522890ab5SPrerna Saxena #include <stdbool.h> 1622890ab5SPrerna Saxena #include <stdio.h> 1726f7227bSStefan Hajnoczi 186d8a764eSLluís #ifdef CONFIG_TRACE_SIMPLE 1926f7227bSStefan Hajnoczi typedef uint64_t TraceEventID; 2026f7227bSStefan Hajnoczi 2122890ab5SPrerna Saxena typedef struct { 2222890ab5SPrerna Saxena const char *tp_name; 2322890ab5SPrerna Saxena bool state; 2422890ab5SPrerna Saxena } TraceEvent; 2522890ab5SPrerna Saxena 2626f7227bSStefan Hajnoczi void trace0(TraceEventID event); 2726f7227bSStefan Hajnoczi void trace1(TraceEventID event, uint64_t x1); 2826f7227bSStefan Hajnoczi void trace2(TraceEventID event, uint64_t x1, uint64_t x2); 2926f7227bSStefan Hajnoczi void trace3(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3); 3026f7227bSStefan Hajnoczi void trace4(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4); 3126f7227bSStefan Hajnoczi void trace5(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4, uint64_t x5); 3226f7227bSStefan Hajnoczi void trace6(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4, uint64_t x5, uint64_t x6); 330b2c5088SStefan Weil void st_print_trace(FILE *stream, fprintf_function stream_printf); 340b2c5088SStefan Weil void st_print_trace_events(FILE *stream, fprintf_function stream_printf); 35f871d689SBlue Swirl bool st_change_trace_event_state(const char *tname, bool tstate); 360b2c5088SStefan Weil void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf); 37c5ceb523SStefan Hajnoczi void st_set_trace_file_enabled(bool enable); 38c5ceb523SStefan Hajnoczi bool st_set_trace_file(const char *file); 39c5ceb523SStefan Hajnoczi void st_flush_trace_buffer(void); 4031d3c9b8SStefan Hajnoczi bool st_init(const char *file); 410b5538c3SStefan Hajnoczi #else 4231d3c9b8SStefan Hajnoczi static inline bool st_init(const char *file) 430b5538c3SStefan Hajnoczi { 4431d3c9b8SStefan Hajnoczi return true; 450b5538c3SStefan Hajnoczi } 466d8a764eSLluís #endif /* !CONFIG_TRACE_SIMPLE */ 4726f7227bSStefan Hajnoczi 48*edb47ec4SLluís #endif /* TRACE_SIMPLE_H */ 49