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