Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright 2014, Michael Ellerman, IBM Corp.
0004  */
0005 
0006 #ifndef _SELFTESTS_POWERPC_PMU_EBB_TRACE_H
0007 #define _SELFTESTS_POWERPC_PMU_EBB_TRACE_H
0008 
0009 #include "utils.h"
0010 
0011 #define TRACE_TYPE_REG      1
0012 #define TRACE_TYPE_COUNTER  2
0013 #define TRACE_TYPE_STRING   3
0014 #define TRACE_TYPE_INDENT   4
0015 #define TRACE_TYPE_OUTDENT  5
0016 
0017 struct trace_entry
0018 {
0019     u8 type;
0020     u8 length;
0021     u8 data[];
0022 };
0023 
0024 struct trace_buffer
0025 {
0026     u64  size;
0027     bool overflow;
0028     void *tail;
0029     u8   data[];
0030 };
0031 
0032 struct trace_buffer *trace_buffer_allocate(u64 size);
0033 int trace_log_reg(struct trace_buffer *tb, u64 reg, u64 value);
0034 int trace_log_counter(struct trace_buffer *tb, u64 value);
0035 int trace_log_string(struct trace_buffer *tb, char *str);
0036 int trace_log_indent(struct trace_buffer *tb);
0037 int trace_log_outdent(struct trace_buffer *tb);
0038 void trace_buffer_print(struct trace_buffer *tb);
0039 void trace_print_location(struct trace_buffer *tb);
0040 
0041 #endif /* _SELFTESTS_POWERPC_PMU_EBB_TRACE_H */