| /* 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) | 
 | int errno __attribute__((weak)); | 
 | #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 */ |