access_ok.h 1.2 KB

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