Home | History | Annotate | Download | only in unaligned
      1 #ifndef _LINUX_UNALIGNED_ACCESS_OK_H
      2 #define _LINUX_UNALIGNED_ACCESS_OK_H
      3 
      4 #include <asm/byteorder.h>
      5 
      6 static inline u16 get_unaligned_le16(const void *p)
      7 {
      8 	return le16_to_cpup((__le16 *)p);
      9 }
     10 
     11 static inline u32 get_unaligned_le32(const void *p)
     12 {
     13 	return le32_to_cpup((__le32 *)p);
     14 }
     15 
     16 static inline u64 get_unaligned_le64(const void *p)
     17 {
     18 	return le64_to_cpup((__le64 *)p);
     19 }
     20 
     21 static inline u16 get_unaligned_be16(const void *p)
     22 {
     23 	return be16_to_cpup((__be16 *)p);
     24 }
     25 
     26 static inline u32 get_unaligned_be32(const void *p)
     27 {
     28 	return be32_to_cpup((__be32 *)p);
     29 }
     30 
     31 static inline u64 get_unaligned_be64(const void *p)
     32 {
     33 	return be64_to_cpup((__be64 *)p);
     34 }
     35 
     36 static inline void put_unaligned_le16(u16 val, void *p)
     37 {
     38 	*((__le16 *)p) = cpu_to_le16(val);
     39 }
     40 
     41 static inline void put_unaligned_le32(u32 val, void *p)
     42 {
     43 	*((__le32 *)p) = cpu_to_le32(val);
     44 }
     45 
     46 static inline void put_unaligned_le64(u64 val, void *p)
     47 {
     48 	*((__le64 *)p) = cpu_to_le64(val);
     49 }
     50 
     51 static inline void put_unaligned_be16(u16 val, void *p)
     52 {
     53 	*((__be16 *)p) = cpu_to_be16(val);
     54 }
     55 
     56 static inline void put_unaligned_be32(u32 val, void *p)
     57 {
     58 	*((__be32 *)p) = cpu_to_be32(val);
     59 }
     60 
     61 static inline void put_unaligned_be64(u64 val, void *p)
     62 {
     63 	*((__be64 *)p) = cpu_to_be64(val);
     64 }
     65 
     66 #endif /* _LINUX_UNALIGNED_ACCESS_OK_H */
     67