66 lines · 1.8 KB · C
RawDownload
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) *//* * This file is provided under a dual BSD/GPLv2 license.  When using or * redistributing this file, you may do so under either license. * * Copyright(c) 2018 Intel Corporation. All rights reserved. */ #ifndef __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__#define __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__ /* * Host system time. * * This property is used by the driver to pass down information about * current system time. It is expressed in us. * FW translates timestamps (in log entries, probe pockets) to this time * domain. * * (cavs: SystemTime). */struct system_time {	uint32_t val_l;  /* Lower dword of current host time value */	uint32_t val_u;  /* Upper dword of current host time value */} __packed; #define LOG_ENABLE		1  /* Enable logging */#define LOG_DISABLE		0  /* Disable logging */ #define LOG_LEVEL_CRITICAL	1  /* (FDK fatal) */#define LOG_LEVEL_VERBOSE	2 /* * Layout of a log fifo. */struct log_buffer_layout {	uint32_t read_ptr;  /*read pointer */	uint32_t write_ptr; /* write pointer */	uint32_t buffer[0]; /* buffer */} __packed; /* * Log buffer status reported by FW. */struct log_buffer_status {	uint32_t core_id;  /* ID of core that logged to other half */} __packed; #define TRACE_ID_LENGTH 12 /* *  Log entry header. * * The header is followed by an array of arguments (uint32_t[]). * Number of arguments is specified by the params_num field of log_entry */struct log_entry_header {	uint32_t id_0 : TRACE_ID_LENGTH;	/* e.g. Pipeline ID */	uint32_t id_1 : TRACE_ID_LENGTH;	/* e.g. Component ID */	uint32_t core_id : 8;		/* Reporting core's id */ 	uint64_t timestamp;		/* Timestamp (in dsp ticks) */	uint32_t log_entry_address;	/* Address of log entry in ELF */} __packed; #endif