seL4/libsel4/include/sel4/assert.h
julia eca86cff19 treewide: typo fixes
Signed-off-by: julia <git.ts@trainwit.ch>
2025-04-14 12:05:16 +10:00

43 lines
1.1 KiB
C

/*
* Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
*
* SPDX-License-Identifier: BSD-2-Clause
*/
/**
* Declares macros and methods for sel4 specific assert and fail.
*
* These are unconditional, there are conditional versions of
* these in debug_assert.h and are name seL4_DebugAssert and
* seL4_DebugCompileTimeAssert.
*/
#pragma once
#include <sel4/macros.h>
/**
* Hidden function, use the macros seL4_Fail or seL4_Assert.
*/
void __assert_fail(const char *str, const char *file, int line, const char *function);
/**
* If expr evaluates to false _seL4_Fail is called with the
* expr as a string plus the file, line and function.
*/
#define seL4_Fail(s) __assert_fail(s, __FILE__, __LINE__, __func__)
/**
* If expr evaluates to false _seL4_AssertFail is called with the
* expr as a string plus the file, line and function.
*/
#define seL4_Assert(expr) \
do { if (!(expr)) { __assert_fail(#expr, __FILE__, __LINE__, __func__); } } while(0)
/**
* An assert that tests that the expr is a compile time constant and
* evaluates to true.
*/
#define seL4_CompileTimeAssert(expr) \
SEL4_COMPILE_ASSERT(seL4_CompileTimeAssert, expr)