cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

packed_struct.h (1059B)


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