blob: a358e17006328628e14db22f70f8cbd894bf648d [file] [log] [blame]
/*
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef _PICO_PLATFORM_PANIC_H
#define _PICO_PLATFORM_PANIC_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __ASSEMBLER__
/*! \brief Panics with the message "Unsupported"
* \ingroup pico_platform
* \see panic
*/
void __attribute__((noreturn)) panic_unsupported(void);
/*! \brief Displays a panic message and halts execution
* \ingroup pico_platform
*
* An attempt is made to output the message to all registered STDOUT drivers
* after which this method executes a BKPT instruction.
*
* @param fmt format string (printf-like)
* @param ... printf-like arguments
*/
void __attribute__((noreturn)) panic(const char *fmt, ...);
#ifdef NDEBUG
#define panic_compact(...) panic(__VA_ARGS__)
#else
#define panic_compact(...) panic("")
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif