Back to home page

OSCL-LXR

 
 

    


0001 #ifndef _LINUX_UNALIGNED_PACKED_STRUCT_H
0002 #define _LINUX_UNALIGNED_PACKED_STRUCT_H
0003 
0004 #include <linux/types.h>
0005 
0006 struct __una_u16 { u16 x; } __packed;
0007 struct __una_u32 { u32 x; } __packed;
0008 struct __una_u64 { u64 x; } __packed;
0009 
0010 static inline u16 __get_unaligned_cpu16(const void *p)
0011 {
0012     const struct __una_u16 *ptr = (const struct __una_u16 *)p;
0013     return ptr->x;
0014 }
0015 
0016 static inline u32 __get_unaligned_cpu32(const void *p)
0017 {
0018     const struct __una_u32 *ptr = (const struct __una_u32 *)p;
0019     return ptr->x;
0020 }
0021 
0022 static inline u64 __get_unaligned_cpu64(const void *p)
0023 {
0024     const struct __una_u64 *ptr = (const struct __una_u64 *)p;
0025     return ptr->x;
0026 }
0027 
0028 static inline void __put_unaligned_cpu16(u16 val, void *p)
0029 {
0030     struct __una_u16 *ptr = (struct __una_u16 *)p;
0031     ptr->x = val;
0032 }
0033 
0034 static inline void __put_unaligned_cpu32(u32 val, void *p)
0035 {
0036     struct __una_u32 *ptr = (struct __una_u32 *)p;
0037     ptr->x = val;
0038 }
0039 
0040 static inline void __put_unaligned_cpu64(u64 val, void *p)
0041 {
0042     struct __una_u64 *ptr = (struct __una_u64 *)p;
0043     ptr->x = val;
0044 }
0045 
0046 #endif /* _LINUX_UNALIGNED_PACKED_STRUCT_H */