1 /* SPDX-License-Identifier: LGPL-2.1 OR MIT */ 2 /* 3 * Standard definitions and types for NOLIBC 4 * Copyright (C) 2017-2021 Willy Tarreau <w@1wt.eu> 5 */ 6 7 #ifndef _NOLIBC_STD_H 8 #define _NOLIBC_STD_H 9 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 common locations. Please place 12 * integer type definitions and generic macros here, but avoid OS-specific and 13 * syscall-specific stuff, as this file is expected to be included very early. 14 */ 15 16 /* note: may already be defined */ 17 #ifndef NULL 18 #define NULL ((void *)0) 19 #endif 20 21 #include "stdint.h" 22 23 /* those are commonly provided by sys/types.h */ 24 typedef unsigned int dev_t; 25 typedef unsigned long ino_t; 26 typedef unsigned int mode_t; 27 typedef signed int pid_t; 28 typedef unsigned int uid_t; 29 typedef unsigned int gid_t; 30 typedef unsigned long nlink_t; 31 typedef signed long off_t; 32 typedef signed long blksize_t; 33 typedef signed long blkcnt_t; 34 typedef signed long time_t; 35 36 #endif /* _NOLIBC_STD_H */ 37