linux/include/uapi/sound/sof/trace.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
   2/*
   3 * This file is provided under a dual BSD/GPLv2 license.  When using or
   4 * redistributing this file, you may do so under either license.
   5 *
   6 * Copyright(c) 2018 Intel Corporation. All rights reserved.
   7 */
   8
   9#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__
  10#define __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__
  11
  12/*
  13 * Host system time.
  14 *
  15 * This property is used by the driver to pass down information about
  16 * current system time. It is expressed in us.
  17 * FW translates timestamps (in log entries, probe pockets) to this time
  18 * domain.
  19 *
  20 * (cavs: SystemTime).
  21 */
  22struct system_time {
  23        uint32_t val_l;  /* Lower dword of current host time value */
  24        uint32_t val_u;  /* Upper dword of current host time value */
  25} __packed;
  26
  27#define LOG_ENABLE              1  /* Enable logging */
  28#define LOG_DISABLE             0  /* Disable logging */
  29
  30#define LOG_LEVEL_CRITICAL      1  /* (FDK fatal) */
  31#define LOG_LEVEL_VERBOSE       2
  32
  33/*
  34 * Layout of a log fifo.
  35 */
  36struct log_buffer_layout {
  37        uint32_t read_ptr;  /*read pointer */
  38        uint32_t write_ptr; /* write pointer */
  39        uint32_t buffer[0]; /* buffer */
  40} __packed;
  41
  42/*
  43 * Log buffer status reported by FW.
  44 */
  45struct log_buffer_status {
  46        uint32_t core_id;  /* ID of core that logged to other half */
  47} __packed;
  48
  49#define TRACE_ID_LENGTH 12
  50
  51/*
  52 *  Log entry header.
  53 *
  54 * The header is followed by an array of arguments (uint32_t[]).
  55 * Number of arguments is specified by the params_num field of log_entry
  56 */
  57struct log_entry_header {
  58        uint32_t id_0 : TRACE_ID_LENGTH;        /* e.g. Pipeline ID */
  59        uint32_t id_1 : TRACE_ID_LENGTH;        /* e.g. Component ID */
  60        uint32_t core_id : 8;           /* Reporting core's id */
  61
  62        uint64_t timestamp;             /* Timestamp (in dsp ticks) */
  63        uint32_t log_entry_address;     /* Address of log entry in ELF */
  64} __packed;
  65
  66#endif
  67