mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 16:12:02 +00:00
55abdd1f5e
After the nolibc includes were split to facilitate portability from standard libcs, programs that include only what they need may miss some symbols which are needed by libgcc. This is the case for raise() which is needed by the divide by zero code in some architectures for example. Regardless, being able to include only the apparently needed files is convenient. Instead of trying to move all exported definitions to a single file, since this can change over time, this patch takes another approach consisting in including the nolibc header at the end of all standard include files. This way their types and functions are already known at the moment of inclusion, and including any single one of them is sufficient to bring all the required ones. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
31 lines
685 B
C
31 lines
685 B
C
/* SPDX-License-Identifier: LGPL-2.1 OR MIT */
|
|
/*
|
|
* Minimal errno definitions for NOLIBC
|
|
* Copyright (C) 2017-2022 Willy Tarreau <w@1wt.eu>
|
|
*/
|
|
|
|
#ifndef _NOLIBC_ERRNO_H
|
|
#define _NOLIBC_ERRNO_H
|
|
|
|
#include <asm/errno.h>
|
|
|
|
/* this way it will be removed if unused */
|
|
static int errno;
|
|
|
|
#ifndef NOLIBC_IGNORE_ERRNO
|
|
#define SET_ERRNO(v) do { errno = (v); } while (0)
|
|
#else
|
|
#define SET_ERRNO(v) do { } while (0)
|
|
#endif
|
|
|
|
|
|
/* errno codes all ensure that they will not conflict with a valid pointer
|
|
* because they all correspond to the highest addressable memory page.
|
|
*/
|
|
#define MAX_ERRNO 4095
|
|
|
|
/* make sure to include all global symbols */
|
|
#include "nolibc.h"
|
|
|
|
#endif /* _NOLIBC_ERRNO_H */
|