41 lines
1.4 KiB
C
Executable File
41 lines
1.4 KiB
C
Executable File
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
/**
|
|
* \file sys/sys_local.h
|
|
*
|
|
* Private functionality for system layer and error reporting.
|
|
*
|
|
* \copyright The DoubleFourteen Code Forge (C) All Rights Reserved
|
|
* \author Lorenzo Cogotti
|
|
*/
|
|
|
|
#ifndef DF_SYS_LOCAL_H_
|
|
#define DF_SYS_LOCAL_H_
|
|
|
|
#include "sys/sys.h"
|
|
|
|
/// Set system error code and message.
|
|
#define Sys_SetErrStat(code, msg) \
|
|
_Sys_SetErrStat(code, msg, __FILE__, __func__, __LINE__, 0)
|
|
|
|
// NOTE: implementation detail, should only be called through `Sys_SetErrStat()`.
|
|
NOINLINE Judgement _Sys_SetErrStat(SysRet code,
|
|
const char *msg,
|
|
const char *filename,
|
|
const char *func,
|
|
unsigned long long line,
|
|
unsigned depth);
|
|
|
|
/// Abort execution with error.
|
|
#define Sys_FatalError(code, msg) \
|
|
_Sys_FatalError(code, msg, __FILE__, __func__, __LINE__, 0)
|
|
|
|
NORETURN NOINLINE void _Sys_FatalError(SysRet code,
|
|
const char *msg,
|
|
const char *filename,
|
|
const char *func,
|
|
unsigned long long line,
|
|
unsigned depth);
|
|
|
|
#endif
|