42 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright 2014, Michael Ellerman, IBM Corp.4 */5 6#ifndef _SELFTESTS_POWERPC_PMU_EBB_TRACE_H7#define _SELFTESTS_POWERPC_PMU_EBB_TRACE_H8 9#include "utils.h"10 11#define TRACE_TYPE_REG 112#define TRACE_TYPE_COUNTER 213#define TRACE_TYPE_STRING 314#define TRACE_TYPE_INDENT 415#define TRACE_TYPE_OUTDENT 516 17struct trace_entry18{19 u8 type;20 u8 length;21 u8 data[];22};23 24struct trace_buffer25{26 u64 size;27 bool overflow;28 void *tail;29 u8 data[];30};31 32struct trace_buffer *trace_buffer_allocate(u64 size);33int trace_log_reg(struct trace_buffer *tb, u64 reg, u64 value);34int trace_log_counter(struct trace_buffer *tb, u64 value);35int trace_log_string(struct trace_buffer *tb, char *str);36int trace_log_indent(struct trace_buffer *tb);37int trace_log_outdent(struct trace_buffer *tb);38void trace_buffer_print(struct trace_buffer *tb);39void trace_print_location(struct trace_buffer *tb);40 41#endif /* _SELFTESTS_POWERPC_PMU_EBB_TRACE_H */42