linux-headers (unknown)

(root)/
include/
linux/
types.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  #ifndef _LINUX_TYPES_H
       3  #define _LINUX_TYPES_H
       4  
       5  #include <asm/types.h>
       6  
       7  #ifndef __ASSEMBLY__
       8  
       9  #include <linux/posix_types.h>
      10  
      11  
      12  /*
      13   * Below are truly Linux-specific types that should never collide with
      14   * any application/library that wants linux/types.h.
      15   */
      16  
      17  /* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */
      18  #ifdef __CHECKER__
      19  #define __bitwise	__attribute__((bitwise))
      20  #else
      21  #define __bitwise
      22  #endif
      23  
      24  /* The kernel doesn't use this legacy form, but user space does */
      25  #define __bitwise__ __bitwise
      26  
      27  typedef __u16 __bitwise __le16;
      28  typedef __u16 __bitwise __be16;
      29  typedef __u32 __bitwise __le32;
      30  typedef __u32 __bitwise __be32;
      31  typedef __u64 __bitwise __le64;
      32  typedef __u64 __bitwise __be64;
      33  
      34  typedef __u16 __bitwise __sum16;
      35  typedef __u32 __bitwise __wsum;
      36  
      37  /*
      38   * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
      39   * common 32/64-bit compat problems.
      40   * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
      41   * architectures) and to 8-byte boundaries on 64-bit architectures.  The new
      42   * aligned_64 type enforces 8-byte alignment so that structs containing
      43   * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
      44   * No conversions are necessary between 32-bit user-space and a 64-bit kernel.
      45   */
      46  #define __aligned_u64 __u64 __attribute__((aligned(8)))
      47  #define __aligned_be64 __be64 __attribute__((aligned(8)))
      48  #define __aligned_le64 __le64 __attribute__((aligned(8)))
      49  
      50  typedef unsigned __bitwise __poll_t;
      51  
      52  #endif /*  __ASSEMBLY__ */
      53  #endif /* _LINUX_TYPES_H */