]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Add helper functions for easier unaligned memory access.
authorSzymon Janc <szymon@janc.net.pl>
Sun, 14 Aug 2011 09:41:19 +0000 (11:41 +0200)
committerSzymon Janc <szymon@janc.net.pl>
Sun, 14 Aug 2011 09:41:19 +0000 (11:41 +0200)
* include/grub/types.h (grub_get_unaligned16): New function.
(grub_get_unaligned32): Likewise.
(grub_get_unaligned64): Likewise.

ChangeLog.lzo
include/grub/types.h

index 6f5191db200036b8d81e5ebe9b8cba74a7deb9f9..701715747fbcc56606a511305fee5db2659cbbe9 100644 (file)
@@ -1,3 +1,11 @@
+2001-08-14  Szymon Janc  <szymon@janc.net.pl>
+
+       Add helper functions for easier unaligned memory access.
+
+       * include/grub/types.h (grub_get_unaligned16): New function.
+       (grub_get_unaligned32): Likewise.
+       (grub_get_unaligned64): Likewise.
+
 2011-08-14  Szymon Janc  <szymon@janc.net.pl>
 
        Import minilzo library for LZO decompression support.
index 32d255d407dfc1f6c9ed11f3fea40d943c622dcd..f057dd3d3a644117f9cb231af265c45cdb92e6ac 100644 (file)
@@ -222,4 +222,31 @@ static inline grub_uint64_t grub_swap_bytes64(grub_uint64_t x)
 # define grub_cpu_to_le32_compile_time(x)      ((grub_uint32_t) (x))
 #endif /* ! WORDS_BIGENDIAN */
 
+static inline grub_uint16_t grub_get_unaligned16(void *ptr)
+{
+  struct
+    {
+      grub_uint16_t d;
+    } __attribute__((packed)) *dd = ptr;
+    return dd->d;
+}
+
+static inline grub_uint32_t grub_get_unaligned32(void *ptr)
+{
+  struct
+    {
+      grub_uint32_t d;
+    } __attribute__((packed)) *dd = ptr;
+    return dd->d;
+}
+
+static inline grub_uint64_t grub_get_unaligned64(void *ptr)
+{
+  struct
+    {
+      grub_uint64_t d;
+    } __attribute__((packed)) *dd = ptr;
+    return dd->d;
+}
+
 #endif /* ! GRUB_TYPES_HEADER */