15 #ifndef TRC_ENTRY_TABLE_H
16 #define TRC_ENTRY_TABLE_H
18 #if (TRC_USE_TRACEALYZER_RECORDER == 1)
20 #if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
34 #define TRC_ENTRY_CREATE_WITH_ADDRESS(_pvAddress, _pxEntryHandle) (xTraceEntryCreate(_pxEntryHandle) == TRC_SUCCESS ? (((TraceEntry_t*)*(_pxEntryHandle))->pvAddress = (_pvAddress), TRC_SUCCESS) : TRC_FAIL)
35 #define TRC_ENTRY_SET_STATE(xEntryHandle, uiStateIndex, uxState) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(((TraceEntry_t*)(xEntryHandle))->xStates[uiStateIndex] = (uxState), TRC_SUCCESS)
36 #define TRC_ENTRY_SET_OPTIONS(xEntryHandle, uiMask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(((TraceEntry_t*)(xEntryHandle))->uiOptions |= (uiMask), TRC_SUCCESS)
37 #define TRC_ENTRY_CLEAR_OPTIONS(xEntryHandle, uiMask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(((TraceEntry_t*)(xEntryHandle))->uiOptions &= ~(uiMask), TRC_SUCCESS)
38 #define TRC_ENTRY_GET_ADDRESS(xEntryHandle, ppvAddress) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(ppvAddress) = ((TraceEntry_t*)(xEntryHandle))->pvAddress, TRC_SUCCESS)
39 #define TRC_ENTRY_GET_SYMBOL(xEntryHandle, pszSymbol) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(pszSymbol) = ((TraceEntry_t*)(xEntryHandle))->szSymbol, TRC_SUCCESS)
40 #define TRC_ENTRY_GET_STATE(xEntryHandle, uiStateIndex, puxState) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(puxState) = ((TraceEntry_t*)(xEntryHandle))->xStates[uiStateIndex], TRC_SUCCESS)
41 #define TRC_ENTRY_GET_STATE_RETURN(xEntryHandle, uiStateIndex) (((TraceEntry_t*)(xEntryHandle))->xStates[uiStateIndex])
42 #define TRC_ENTRY_GET_OPTIONS(xEntryHandle, puiOptions) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(puiOptions) = ((TraceEntry_t*)(xEntryHandle))->uiOptions, TRC_SUCCESS)
44 #define TRC_ENTRY_TABLE_SLOTS (TRC_CFG_ENTRY_SLOTS)
45 #define TRC_ENTRY_TABLE_STATE_COUNT (3)
46 #define TRC_ENTRY_TABLE_SYMBOL_LENGTH (TRC_CFG_ENTRY_SYMBOL_MAX_LENGTH)
47 #define TRC_ENTRY_TABLE_SLOT_SYMBOL_SIZE ((((sizeof(char) * TRC_ENTRY_TABLE_SYMBOL_LENGTH) + (sizeof(uint32_t) - 1)) / sizeof(uint32_t)) * sizeof(uint32_t))
53 TraceUnsignedBaseType_t xStates[TRC_ENTRY_TABLE_STATE_COUNT];
55 char szSymbol[TRC_ENTRY_TABLE_SLOT_SYMBOL_SIZE];
58 #define TRC_ENTRY_TABLE_SIZE (sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t) + (sizeof(TraceEntry_t) * (TRC_ENTRY_TABLE_SLOTS)))
63 uint8_t buffer[(TRC_ENTRY_TABLE_SIZE)];
108 traceResult
xTraceEntryFind(
void* pvAddress, TraceEntryHandle_t* pxEntryHandle);
142 #if ((TRC_CFG_USE_TRACE_ASSERT) == 1)
153 traceResult xTraceEntryCreateWithAddress(
void* pvAddress, TraceEntryHandle_t* pxEntryHandle);
165 traceResult xTraceEntrySetState(TraceEntryHandle_t xEntryHandle, uint32_t uiStateIndex, TraceUnsignedBaseType_t uxState);
176 traceResult xTraceEntrySetOptions(TraceEntryHandle_t xEntryHandle, uint32_t uiMask);
187 traceResult xTraceEntryClearOptions(TraceEntryHandle_t xEntryHandle, uint32_t uiMask);
198 traceResult xTraceEntryGetAddress(TraceEntryHandle_t xEntryHandle,
void **ppvAddress);
209 traceResult xTraceEntryGetSymbol(TraceEntryHandle_t xEntryHandle,
const char** pszSymbol);
221 traceResult xTraceEntryGetState(TraceEntryHandle_t xEntryHandle, uint32_t uiStateIndex, TraceUnsignedBaseType_t *puxState);
231 TraceUnsignedBaseType_t xTraceEntryGetStateReturn(TraceEntryHandle_t xEntryHandle, uint32_t uiStateIndex);
242 traceResult xTraceEntryGetOptions(TraceEntryHandle_t xEntryHandle, uint32_t *puiOptions);
246 #define xTraceEntryCreateWithAddress TRC_ENTRY_CREATE_WITH_ADDRESS
248 #define xTraceEntrySetState TRC_ENTRY_SET_STATE
249 #define xTraceEntrySetOptions TRC_ENTRY_SET_OPTIONS
250 #define xTraceEntryClearOptions TRC_ENTRY_CLEAR_OPTIONS
252 #define xTraceEntryGetAddress TRC_ENTRY_GET_ADDRESS
253 #define xTraceEntryGetSymbol TRC_ENTRY_GET_SYMBOL
254 #define xTraceEntryGetState TRC_ENTRY_GET_STATE
255 #define xTraceEntryGetStateReturn TRC_ENTRY_GET_STATE_RETURN
256 #define xTraceEntryGetOptions TRC_ENTRY_GET_OPTIONS