/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ #ifndef _UAPI_LINUX_TYPES_32_64_H #define _UAPI_LINUX_TYPES_32_64_H /* * linux/types_32_64.h * * Integer type declaration for pointers across 32-bit and 64-bit systems. * * Copyright (c) 2015-2018 Mathieu Desnoyers */ #ifdef __KERNEL__ # include #else # include #endif #include #ifdef __BYTE_ORDER # if (__BYTE_ORDER == __BIG_ENDIAN) # define LINUX_BYTE_ORDER_BIG_ENDIAN # else # define LINUX_BYTE_ORDER_LITTLE_ENDIAN # endif #else # ifdef __BIG_ENDIAN # define LINUX_BYTE_ORDER_BIG_ENDIAN # else # define LINUX_BYTE_ORDER_LITTLE_ENDIAN # endif #endif #ifdef __LP64__ # define LINUX_FIELD_u32_u64(field) __u64 field # define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) field = (intptr_t)v #else # ifdef LINUX_BYTE_ORDER_BIG_ENDIAN # define LINUX_FIELD_u32_u64(field) __u32 field ## _padding, field # define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \ field ## _padding = 0, field = (intptr_t)v # else # define LINUX_FIELD_u32_u64(field) __u32 field, field ## _padding # define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \ field = (intptr_t)v, field ## _padding = 0 # endif #endif #endif /* _UAPI_LINUX_TYPES_32_64_H */