mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-04-17 02:43:26 +00:00
These files are automatically generated by the Everest toolchain from F* files. They do not respect the mbedTLS code style guidelines as manual modification would invalidate verification guarantees. The files in 3rdparty/everest/include/kremli{n,b} are a customized (minimzed) version of the support headers expected by the code extracted using KreMLin.
58 lines
3.0 KiB
C
58 lines
3.0 KiB
C
/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
|
|
Licensed under the Apache 2.0 License. */
|
|
|
|
#ifndef __KREMLIN_DEBUG_H
|
|
#define __KREMLIN_DEBUG_H
|
|
|
|
#include <inttypes.h>
|
|
|
|
#include "kremlin/internal/target.h"
|
|
|
|
/******************************************************************************/
|
|
/* Debugging helpers - intended only for KreMLin developers */
|
|
/******************************************************************************/
|
|
|
|
/* In support of "-wasm -d force-c": we might need this function to be
|
|
* forward-declared, because the dependency on WasmSupport appears very late,
|
|
* after SimplifyWasm, and sadly, after the topological order has been done. */
|
|
void WasmSupport_check_buffer_size(uint32_t s);
|
|
|
|
/* A series of GCC atrocities to trace function calls (kremlin's [-d c-calls]
|
|
* option). Useful when trying to debug, say, Wasm, to compare traces. */
|
|
/* clang-format off */
|
|
#ifdef __GNUC__
|
|
#define KRML_FORMAT(X) _Generic((X), \
|
|
uint8_t : "0x%08" PRIx8, \
|
|
uint16_t: "0x%08" PRIx16, \
|
|
uint32_t: "0x%08" PRIx32, \
|
|
uint64_t: "0x%08" PRIx64, \
|
|
int8_t : "0x%08" PRIx8, \
|
|
int16_t : "0x%08" PRIx16, \
|
|
int32_t : "0x%08" PRIx32, \
|
|
int64_t : "0x%08" PRIx64, \
|
|
default : "%s")
|
|
|
|
#define KRML_FORMAT_ARG(X) _Generic((X), \
|
|
uint8_t : X, \
|
|
uint16_t: X, \
|
|
uint32_t: X, \
|
|
uint64_t: X, \
|
|
int8_t : X, \
|
|
int16_t : X, \
|
|
int32_t : X, \
|
|
int64_t : X, \
|
|
default : "unknown")
|
|
/* clang-format on */
|
|
|
|
# define KRML_DEBUG_RETURN(X) \
|
|
({ \
|
|
__auto_type _ret = (X); \
|
|
KRML_HOST_PRINTF("returning: "); \
|
|
KRML_HOST_PRINTF(KRML_FORMAT(_ret), KRML_FORMAT_ARG(_ret)); \
|
|
KRML_HOST_PRINTF(" \n"); \
|
|
_ret; \
|
|
})
|
|
#endif
|
|
|
|
#endif
|