1 /* SPDX-License-Identifier: LGPL-2.1 OR MIT */ 1 /* SPDX-License-Identifier: LGPL-2.1 OR MIT */ 2 /* 2 /* 3 * Standard definitions and types for NOLIBC 3 * Standard definitions and types for NOLIBC 4 * Copyright (C) 2017-2021 Willy Tarreau <w@1w 4 * Copyright (C) 2017-2021 Willy Tarreau <w@1wt.eu> 5 */ 5 */ 6 6 7 #ifndef _NOLIBC_STD_H 7 #ifndef _NOLIBC_STD_H 8 #define _NOLIBC_STD_H 8 #define _NOLIBC_STD_H 9 9 10 /* Declare a few quite common macros and types 10 /* Declare a few quite common macros and types that usually are in stdlib.h, 11 * stdint.h, ctype.h, unistd.h and a few other 11 * stdint.h, ctype.h, unistd.h and a few other common locations. Please place 12 * integer type definitions and generic macros 12 * integer type definitions and generic macros here, but avoid OS-specific and 13 * syscall-specific stuff, as this file is exp 13 * syscall-specific stuff, as this file is expected to be included very early. 14 */ 14 */ 15 15 16 /* note: may already be defined */ 16 /* note: may already be defined */ 17 #ifndef NULL 17 #ifndef NULL 18 #define NULL ((void *)0) 18 #define NULL ((void *)0) 19 #endif 19 #endif 20 20 21 #include "stdint.h" !! 21 /* stdint types */ >> 22 typedef unsigned char uint8_t; >> 23 typedef signed char int8_t; >> 24 typedef unsigned short uint16_t; >> 25 typedef signed short int16_t; >> 26 typedef unsigned int uint32_t; >> 27 typedef signed int int32_t; >> 28 typedef unsigned long long uint64_t; >> 29 typedef signed long long int64_t; >> 30 typedef unsigned long size_t; >> 31 typedef signed long ssize_t; >> 32 typedef unsigned long uintptr_t; >> 33 typedef signed long intptr_t; >> 34 typedef signed long ptrdiff_t; 22 35 23 /* those are commonly provided by sys/types.h 36 /* those are commonly provided by sys/types.h */ 24 typedef unsigned int dev_t; 37 typedef unsigned int dev_t; 25 typedef unsigned long ino_t; 38 typedef unsigned long ino_t; 26 typedef unsigned int mode_t; 39 typedef unsigned int mode_t; 27 typedef signed int pid_t; 40 typedef signed int pid_t; 28 typedef unsigned int uid_t; 41 typedef unsigned int uid_t; 29 typedef unsigned int gid_t; 42 typedef unsigned int gid_t; 30 typedef unsigned long nlink_t; 43 typedef unsigned long nlink_t; 31 typedef signed long off_t; 44 typedef signed long off_t; 32 typedef signed long blksize_t; 45 typedef signed long blksize_t; 33 typedef signed long blkcnt_t; 46 typedef signed long blkcnt_t; 34 typedef signed long time_t; 47 typedef signed long time_t; 35 48 36 #endif /* _NOLIBC_STD_H */ 49 #endif /* _NOLIBC_STD_H */ 37 50
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.