/******************************************************************************* * Copyright (C) 2018 Cadence Design Systems, Inc. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use this Software with Cadence processor cores only and * not with any other processors and platforms, subject to * the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ******************************************************************************/ /******************************************************************************* * xf-debug.h * * Debugging interface for Xtensa Audio DSP codec server * *******************************************************************************/ #ifndef __XF_H #error "xf-debug.h mustn't be included directly" #endif /******************************************************************************* * Types definitions ******************************************************************************/ #if XF_TRACE /* ...trace data definition */ typedef struct xf_trace_data { /* ...current write position in tracing buffer */ char *p; /* ...threshold position for buffer submission */ char *end; #if XF_TRACE_REMOTE /* ...beginning of non-commited internal tracing buffer */ char *start; /* ...message queue */ xf_msg_queue_t queue; #endif } xf_trace_data_t; #else /* ...stub for disabled tracing */ typedef u32 xf_trace_data_t[0]; #endif /* XF_TRACE */ /******************************************************************************* * Internal API functions ******************************************************************************/ #if XF_TRACE_REMOTE /* ...submit buffer for tracing */ extern void xf_trace_submit(u32 core, xf_message_t *m); /* ...flush current buffer */ extern void xf_trace_flush(u32 core, xf_message_t *m); #else #define xf_trace_submit(core, m) (void)0 #define xf_trace_flush(core, m) (void)0 #endif /* XF_TRACE_REMOTE */