blob: 86687d88b20c33a2e30c47860f16db5370aafa7b [file] [log] [blame]
/*
* Copyright 2021 The Hafnium Authors.
*
* Use of this source code is governed by a BSD-style
* license that can be found in the LICENSE file or at
* https://opensource.org/licenses/BSD-3-Clause.
*/
#pragma once
#if !defined(__cplusplus)
#include "hf/panic.h"
#ifndef PLAT_LOG_LEVEL_ASSERT
#define PLAT_LOG_LEVEL_ASSERT LOG_LEVEL
#endif
#if ENABLE_ASSERTIONS
#if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
#define assert(e) \
((e) ? (void)0 : panic("ASSERT: %s:%d:%s\n", __FILE__, __LINE__, #e))
#elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
#define assert(e) ((e) ? (void)0 : panic("ASSERT: %s:%d\n", __FILE__, __LINE__))
#else
#define assert(e) ((e) ? (void)0 : panic("ASSERT\n"))
#endif
#else
#define assert(e) ((void)0)
#endif /* ENABLE_ASSERTIONS */
#else
#include <assert.h>
#endif /* !defined(__cplusplus) */