]>
Commit | Line | Data |
---|---|---|
26f7227b SH |
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 | ||
edb47ec4 LV |
11 | #ifndef TRACE_SIMPLE_H |
12 | #define TRACE_SIMPLE_H | |
26f7227b SH |
13 | |
14 | #include <stdint.h> | |
22890ab5 PS |
15 | #include <stdbool.h> |
16 | #include <stdio.h> | |
26f7227b SH |
17 | |
18 | typedef uint64_t TraceEventID; | |
19 | ||
22890ab5 PS |
20 | typedef struct { |
21 | const char *tp_name; | |
22 | bool state; | |
23 | } TraceEvent; | |
24 | ||
0b2c5088 | 25 | void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf); |
c5ceb523 SH |
26 | void st_set_trace_file_enabled(bool enable); |
27 | bool st_set_trace_file(const char *file); | |
28 | void st_flush_trace_buffer(void); | |
26f7227b | 29 | |
62bab732 HPB |
30 | typedef struct { |
31 | unsigned int tbuf_idx; | |
62bab732 HPB |
32 | unsigned int rec_off; |
33 | } TraceBufferRecord; | |
34 | ||
35 | /* Note for hackers: Make sure MAX_TRACE_LEN < sizeof(uint32_t) */ | |
36 | #define MAX_TRACE_STRLEN 512 | |
37 | /** | |
38 | * Initialize a trace record and claim space for it in the buffer | |
39 | * | |
40 | * @arglen number of bytes required for arguments | |
41 | */ | |
42 | int trace_record_start(TraceBufferRecord *rec, TraceEventID id, size_t arglen); | |
43 | ||
44 | /** | |
45 | * Append a 64-bit argument to a trace record | |
46 | */ | |
47 | void trace_record_write_u64(TraceBufferRecord *rec, uint64_t val); | |
48 | ||
49 | /** | |
50 | * Append a string argument to a trace record | |
51 | */ | |
52 | void trace_record_write_str(TraceBufferRecord *rec, const char *s, uint32_t slen); | |
53 | ||
54 | /** | |
55 | * Mark a trace record completed | |
56 | * | |
57 | * Don't append any more arguments to the trace record after calling this. | |
58 | */ | |
59 | void trace_record_finish(TraceBufferRecord *rec); | |
60 | ||
edb47ec4 | 61 | #endif /* TRACE_SIMPLE_H */ |