1/* SPDX-License-Identifier: LGPL-2.1 OR MIT */
2/*
3 * Minimal errno definitions for NOLIBC
4 * Copyright (C) 2017-2022 Willy Tarreau <w@1wt.eu>
5 */
6
7#ifndef _NOLIBC_ERRNO_H
8#define _NOLIBC_ERRNO_H
9
10#include <asm/errno.h>
11
12#ifndef NOLIBC_IGNORE_ERRNO
13#define SET_ERRNO(v) do { errno = (v); } while (0)
14int errno __attribute__((weak));
15#else
16#define SET_ERRNO(v) do { } while (0)
17#endif
18
19
20/* errno codes all ensure that they will not conflict with a valid pointer
21 * because they all correspond to the highest addressable memory page.
22 */
23#define MAX_ERRNO 4095
24
25/* make sure to include all global symbols */
26#include "nolibc.h"
27
28#endif /* _NOLIBC_ERRNO_H */
29