2022-02-08 00:23:48 +08:00
|
|
|
/* 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>
|
|
|
|
|
|
|
|
#ifndef NOLIBC_IGNORE_ERRNO
|
|
|
|
#define SET_ERRNO(v) do { errno = (v); } while (0)
|
2023-01-10 15:24:17 +08:00
|
|
|
int errno __attribute__((weak));
|
2022-02-08 00:23:48 +08:00
|
|
|
#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
|
|
|
|
|
2023-01-09 15:54:40 +08:00
|
|
|
/* make sure to include all global symbols */
|
|
|
|
#include "nolibc.h"
|
|
|
|
|
2022-02-08 00:23:48 +08:00
|
|
|
#endif /* _NOLIBC_ERRNO_H */
|