|  | /* 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 */ |