1064106a9SHarvey Harrison #ifndef _LINUX_UNALIGNED_PACKED_STRUCT_H 2064106a9SHarvey Harrison #define _LINUX_UNALIGNED_PACKED_STRUCT_H 3064106a9SHarvey Harrison 4*22c03398SAndy Shevchenko #include <linux/types.h> 5064106a9SHarvey Harrison 617253103SAndrew Morton struct __una_u16 { u16 x; } __packed; 717253103SAndrew Morton struct __una_u32 { u32 x; } __packed; 817253103SAndrew Morton struct __una_u64 { u64 x; } __packed; 9064106a9SHarvey Harrison __get_unaligned_cpu16(const void * p)10064106a9SHarvey Harrisonstatic inline u16 __get_unaligned_cpu16(const void *p) 11064106a9SHarvey Harrison { 12064106a9SHarvey Harrison const struct __una_u16 *ptr = (const struct __una_u16 *)p; 13064106a9SHarvey Harrison return ptr->x; 14064106a9SHarvey Harrison } 15064106a9SHarvey Harrison __get_unaligned_cpu32(const void * p)16064106a9SHarvey Harrisonstatic inline u32 __get_unaligned_cpu32(const void *p) 17064106a9SHarvey Harrison { 18064106a9SHarvey Harrison const struct __una_u32 *ptr = (const struct __una_u32 *)p; 19064106a9SHarvey Harrison return ptr->x; 20064106a9SHarvey Harrison } 21064106a9SHarvey Harrison __get_unaligned_cpu64(const void * p)22064106a9SHarvey Harrisonstatic inline u64 __get_unaligned_cpu64(const void *p) 23064106a9SHarvey Harrison { 24064106a9SHarvey Harrison const struct __una_u64 *ptr = (const struct __una_u64 *)p; 25064106a9SHarvey Harrison return ptr->x; 26064106a9SHarvey Harrison } 27064106a9SHarvey Harrison __put_unaligned_cpu16(u16 val,void * p)28064106a9SHarvey Harrisonstatic inline void __put_unaligned_cpu16(u16 val, void *p) 29064106a9SHarvey Harrison { 30064106a9SHarvey Harrison struct __una_u16 *ptr = (struct __una_u16 *)p; 31064106a9SHarvey Harrison ptr->x = val; 32064106a9SHarvey Harrison } 33064106a9SHarvey Harrison __put_unaligned_cpu32(u32 val,void * p)34064106a9SHarvey Harrisonstatic inline void __put_unaligned_cpu32(u32 val, void *p) 35064106a9SHarvey Harrison { 36064106a9SHarvey Harrison struct __una_u32 *ptr = (struct __una_u32 *)p; 37064106a9SHarvey Harrison ptr->x = val; 38064106a9SHarvey Harrison } 39064106a9SHarvey Harrison __put_unaligned_cpu64(u64 val,void * p)40064106a9SHarvey Harrisonstatic inline void __put_unaligned_cpu64(u64 val, void *p) 41064106a9SHarvey Harrison { 42064106a9SHarvey Harrison struct __una_u64 *ptr = (struct __una_u64 *)p; 43064106a9SHarvey Harrison ptr->x = val; 44064106a9SHarvey Harrison } 45064106a9SHarvey Harrison 46064106a9SHarvey Harrison #endif /* _LINUX_UNALIGNED_PACKED_STRUCT_H */ 47