root/tools/include/linux/unaligned/packed_struct.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. __get_unaligned_cpu16
  2. __get_unaligned_cpu32
  3. __get_unaligned_cpu64
  4. __put_unaligned_cpu16
  5. __put_unaligned_cpu32
  6. __put_unaligned_cpu64

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _LINUX_UNALIGNED_PACKED_STRUCT_H
   3 #define _LINUX_UNALIGNED_PACKED_STRUCT_H
   4 
   5 #include <linux/kernel.h>
   6 
   7 struct __una_u16 { u16 x; } __packed;
   8 struct __una_u32 { u32 x; } __packed;
   9 struct __una_u64 { u64 x; } __packed;
  10 
  11 static inline u16 __get_unaligned_cpu16(const void *p)
  12 {
  13         const struct __una_u16 *ptr = (const struct __una_u16 *)p;
  14         return ptr->x;
  15 }
  16 
  17 static inline u32 __get_unaligned_cpu32(const void *p)
  18 {
  19         const struct __una_u32 *ptr = (const struct __una_u32 *)p;
  20         return ptr->x;
  21 }
  22 
  23 static inline u64 __get_unaligned_cpu64(const void *p)
  24 {
  25         const struct __una_u64 *ptr = (const struct __una_u64 *)p;
  26         return ptr->x;
  27 }
  28 
  29 static inline void __put_unaligned_cpu16(u16 val, void *p)
  30 {
  31         struct __una_u16 *ptr = (struct __una_u16 *)p;
  32         ptr->x = val;
  33 }
  34 
  35 static inline void __put_unaligned_cpu32(u32 val, void *p)
  36 {
  37         struct __una_u32 *ptr = (struct __una_u32 *)p;
  38         ptr->x = val;
  39 }
  40 
  41 static inline void __put_unaligned_cpu64(u64 val, void *p)
  42 {
  43         struct __una_u64 *ptr = (struct __una_u64 *)p;
  44         ptr->x = val;
  45 }
  46 
  47 #endif /* _LINUX_UNALIGNED_PACKED_STRUCT_H */

/* [<][>][^][v][top][bottom][index][help] */