"Fossies" - the Fresh Open Source Software Archive

Member "open-fcoe-3.19/fcoe-utils/include/linux/types.h" (15 Apr 2015, 1430 Bytes) of package /linux/misc/open-fcoe-3.19.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "types.h" see the Fossies "Dox" file reference documentation.

    1 #ifndef _LINUX_TYPES_H
    2 #define _LINUX_TYPES_H
    3 
    4 #include <asm/types.h>
    5 
    6 #ifndef __ASSEMBLY__
    7 
    8 #include <linux/posix_types.h>
    9 
   10 
   11 /*
   12  * Below are truly Linux-specific types that should never collide with
   13  * any application/library that wants linux/types.h.
   14  */
   15 
   16 #ifdef __CHECKER__
   17 #define __bitwise__ __attribute__((bitwise))
   18 #else
   19 #define __bitwise__
   20 #endif
   21 #ifdef __CHECK_ENDIAN__
   22 #define __bitwise __bitwise__
   23 #else
   24 #define __bitwise
   25 #endif
   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 #endif /*  __ASSEMBLY__ */
   51 #endif /* _LINUX_TYPES_H */