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 (1099B)


      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
      7struct __una_u16 { u16 x; } __packed;
      8struct __una_u32 { u32 x; } __packed;
      9struct __una_u64 { u64 x; } __packed;
     10
     11static 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
     17static 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
     23static 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
     29static 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
     35static 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
     41static 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 */