std.h (1581B)
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/* stdint types */ 22typedef unsigned char uint8_t; 23typedef signed char int8_t; 24typedef unsigned short uint16_t; 25typedef signed short int16_t; 26typedef unsigned int uint32_t; 27typedef signed int int32_t; 28typedef unsigned long long uint64_t; 29typedef signed long long int64_t; 30typedef unsigned long size_t; 31typedef signed long ssize_t; 32typedef unsigned long uintptr_t; 33typedef signed long intptr_t; 34typedef signed long ptrdiff_t; 35 36/* those are commonly provided by sys/types.h */ 37typedef unsigned int dev_t; 38typedef unsigned long ino_t; 39typedef unsigned int mode_t; 40typedef signed int pid_t; 41typedef unsigned int uid_t; 42typedef unsigned int gid_t; 43typedef unsigned long nlink_t; 44typedef signed long off_t; 45typedef signed long blksize_t; 46typedef signed long blkcnt_t; 47typedef signed long time_t; 48 49#endif /* _NOLIBC_STD_H */