brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 6375a06 Raw
63 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2#ifndef _UAPI_LINUX_TYPES_H3#define _UAPI_LINUX_TYPES_H4 5#include <asm/types.h>6 7#ifndef __ASSEMBLY__8#ifndef	__KERNEL__9#ifndef __EXPORTED_HEADERS__10#warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders"11#endif /* __EXPORTED_HEADERS__ */12#endif13 14#include <linux/posix_types.h>15 16#ifdef __SIZEOF_INT128__17typedef __signed__ __int128 __s128 __attribute__((aligned(16)));18typedef unsigned __int128 __u128 __attribute__((aligned(16)));19#endif20 21/*22 * Below are truly Linux-specific types that should never collide with23 * any application/library that wants linux/types.h.24 */25 26/* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */27#ifdef __CHECKER__28#define __bitwise	__attribute__((bitwise))29#else30#define __bitwise31#endif32 33/* The kernel doesn't use this legacy form, but user space does */34#define __bitwise__ __bitwise35 36typedef __u16 __bitwise __le16;37typedef __u16 __bitwise __be16;38typedef __u32 __bitwise __le32;39typedef __u32 __bitwise __be32;40typedef __u64 __bitwise __le64;41typedef __u64 __bitwise __be64;42 43typedef __u16 __bitwise __sum16;44typedef __u32 __bitwise __wsum;45 46/*47 * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid48 * common 32/64-bit compat problems.49 * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other50 * architectures) and to 8-byte boundaries on 64-bit architectures.  The new51 * aligned_64 type enforces 8-byte alignment so that structs containing52 * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.53 * No conversions are necessary between 32-bit user-space and a 64-bit kernel.54 */55#define __aligned_u64 __u64 __attribute__((aligned(8)))56#define __aligned_be64 __be64 __attribute__((aligned(8)))57#define __aligned_le64 __le64 __attribute__((aligned(8)))58 59typedef unsigned __bitwise __poll_t;60 61#endif /*  __ASSEMBLY__ */62#endif /* _UAPI_LINUX_TYPES_H */63