12#ifndef MBEDTLS_MPS_MBEDTLS_MPS_TRACE_H
13#define MBEDTLS_MPS_MBEDTLS_MPS_TRACE_H
21#if defined(MBEDTLS_MPS_ENABLE_TRACE)
28#define MBEDTLS_MPS_TRACE_ENABLE_LAYER_1
29#define MBEDTLS_MPS_TRACE_ENABLE_LAYER_2
30#define MBEDTLS_MPS_TRACE_ENABLE_LAYER_3
31#define MBEDTLS_MPS_TRACE_ENABLE_LAYER_4
32#define MBEDTLS_MPS_TRACE_ENABLE_READER
33#define MBEDTLS_MPS_TRACE_ENABLE_WRITER
42 MBEDTLS_MPS_TRACE_TYPE_COMMENT,
43 MBEDTLS_MPS_TRACE_TYPE_CALL,
44 MBEDTLS_MPS_TRACE_TYPE_ERROR,
45 MBEDTLS_MPS_TRACE_TYPE_RETURN
46} mbedtls_mps_trace_type;
48#define MBEDTLS_MPS_TRACE_BIT_LAYER_1 1
49#define MBEDTLS_MPS_TRACE_BIT_LAYER_2 2
50#define MBEDTLS_MPS_TRACE_BIT_LAYER_3 3
51#define MBEDTLS_MPS_TRACE_BIT_LAYER_4 4
52#define MBEDTLS_MPS_TRACE_BIT_WRITER 5
53#define MBEDTLS_MPS_TRACE_BIT_READER 6
55#if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_1)
56#define MBEDTLS_MPS_TRACE_MASK_LAYER_1 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_1)
58#define MBEDTLS_MPS_TRACE_MASK_LAYER_1 0
61#if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_2)
62#define MBEDTLS_MPS_TRACE_MASK_LAYER_2 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_2)
64#define MBEDTLS_MPS_TRACE_MASK_LAYER_2 0
67#if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_3)
68#define MBEDTLS_MPS_TRACE_MASK_LAYER_3 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_3)
70#define MBEDTLS_MPS_TRACE_MASK_LAYER_3 0
73#if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_4)
74#define MBEDTLS_MPS_TRACE_MASK_LAYER_4 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_4)
76#define MBEDTLS_MPS_TRACE_MASK_LAYER_4 0
79#if defined(MBEDTLS_MPS_TRACE_ENABLE_READER)
80#define MBEDTLS_MPS_TRACE_MASK_READER (1u << MBEDTLS_MPS_TRACE_BIT_READER)
82#define MBEDTLS_MPS_TRACE_MASK_READER 0
85#if defined(MBEDTLS_MPS_TRACE_ENABLE_WRITER)
86#define MBEDTLS_MPS_TRACE_MASK_WRITER (1u << MBEDTLS_MPS_TRACE_BIT_WRITER)
88#define MBEDTLS_MPS_TRACE_MASK_WRITER 0
91#define MBEDTLS_MPS_TRACE_MASK (MBEDTLS_MPS_TRACE_MASK_LAYER_1 | \
92 MBEDTLS_MPS_TRACE_MASK_LAYER_2 | \
93 MBEDTLS_MPS_TRACE_MASK_LAYER_3 | \
94 MBEDTLS_MPS_TRACE_MASK_LAYER_4 | \
95 MBEDTLS_MPS_TRACE_MASK_READER | \
96 MBEDTLS_MPS_TRACE_MASK_WRITER)
100int mbedtls_mps_trace_get_depth(
void);
101void mbedtls_mps_trace_inc_depth(
void);
102void mbedtls_mps_trace_dec_depth(
void);
104void mbedtls_mps_trace_color(
int id);
105void mbedtls_mps_trace_indent(
int level, mbedtls_mps_trace_type ty);
107void mbedtls_mps_trace_print_msg(
int id,
int line,
const char *
format, ...);
109#define MBEDTLS_MPS_TRACE(type, ...) \
111 if (!(MBEDTLS_MPS_TRACE_MASK & (1u << mbedtls_mps_trace_id))) \
113 mbedtls_mps_trace_indent(mbedtls_mps_trace_get_depth(), type); \
114 mbedtls_mps_trace_color(mbedtls_mps_trace_id); \
115 mbedtls_mps_trace_print_msg(mbedtls_mps_trace_id, __LINE__, __VA_ARGS__); \
116 mbedtls_mps_trace_color(0); \
119#define MBEDTLS_MPS_TRACE_INIT(...) \
121 if (!(MBEDTLS_MPS_TRACE_MASK & (1u << mbedtls_mps_trace_id))) \
123 MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_CALL, __VA_ARGS__); \
124 mbedtls_mps_trace_inc_depth(); \
127#define MBEDTLS_MPS_TRACE_END(val) \
129 if (!(MBEDTLS_MPS_TRACE_MASK & (1u << mbedtls_mps_trace_id))) \
131 MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_RETURN, "%d (-%#04x)", \
132 (int) (val), -((unsigned) (val))); \
133 mbedtls_mps_trace_dec_depth(); \
136#define MBEDTLS_MPS_TRACE_RETURN(val) \
140 MBEDTLS_MPS_TRACE_END(ret__); \
146#define MBEDTLS_MPS_TRACE(type, ...) do { } while (0)
147#define MBEDTLS_MPS_TRACE_INIT(...) do { } while (0)
148#define MBEDTLS_MPS_TRACE_END do { } while (0)
150#define MBEDTLS_MPS_TRACE_RETURN(val) return val;
Utility macros for internal use in the library.
const char const char * format
Definition drm_print.h:516
const char * level
Definition drm_print.h:515
Common functions and macros used by MPS.