From c809ff6ef6fa82a0790688dfdf7c2b1ba75bd933 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Tue, 12 Jan 2021 06:54:04 +0000 Subject: [PATCH] Add stub implementation for MPS tracing API MPS' tracing module uses four macros: 1) TRACE( type, fmt, ... ) This acts like `printf( fmt, ... )` but also allows the specification of a type of trace output (comment, warning, error, ...) 2) TRACE_INIT This acts like TRACE() but increases the level of indentation. It will be used at the beginning of function calls. 3) RETURN( val ) Equivalent to `return( val )` plus a decrement in the level of indentation. This should be used at the end of functions that have been started with TRACE_INIT. 4) TRACE_END This combines a trace output with a decrement of the level of indentation. It's necessary prior to leaving functions which have been started with TRACE_INIT but which don't have a return value. This commit defines those macros as no-op dummies in `library/mps/trace.h` for now. Signed-off-by: Hanno Becker --- library/mps/common.h | 2 +- library/mps/trace.h | 45 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 library/mps/trace.h diff --git a/library/mps/common.h b/library/mps/common.h index becd1778d..84c584105 100644 --- a/library/mps/common.h +++ b/library/mps/common.h @@ -48,7 +48,7 @@ #define MBEDTLS_MPS_ENABLE_ASSERTIONS /*! This flag controls whether tracing for MPS should be enabled. */ -#define MBEDTLS_MPS_TRACE +//#define MBEDTLS_MPS_TRACE /* \} name SECTION: MPS Configuration */ diff --git a/library/mps/trace.h b/library/mps/trace.h new file mode 100644 index 000000000..1ce079de8 --- /dev/null +++ b/library/mps/trace.h @@ -0,0 +1,45 @@ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This file is part of mbed TLS (https://tls.mbed.org) + */ + +/** + * \file trace.h + * + * \brief Tracing module for MPS + */ + +#ifndef MBEDTLS_MPS_TRACE_H +#define MBEDTLS_MPS_TRACE_H + +#include "common.h" + +#if defined(MBEDTLS_MPS_TRACE) + +#error "MPS tracing module not yet implemented" + +#else /* MBEDTLS_MPS_TRACE */ + +#define TRACE( type, fmt, ... ) do { } while( 0 ) +#define TRACE_INIT( fmt, ... ) do { } while( 0 ) +#define TRACE_END do { } while( 0 ) + +#define RETURN( val ) return( val ); + +#endif /* MBEDTLS_MPS_TRACE */ + +#endif /* MBEDTLS_MPS_TRACE_H */