diff options
| author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-02-19 06:16:15 +0000 |
|---|---|---|
| committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-02-19 06:16:15 +0000 |
| commit | 34e3b522eca7e8741cecb7c2241091f181d1bd1f (patch) | |
| tree | 3b64ac3aa4603539b8f8f384bc39998e29948900 /libdde_linux26/contrib/include/linux/unaligned/memmove.h | |
| parent | d4e6a14eb3fad1b43a21214db139db441025baf5 (diff) | |
| parent | 6fafeb146e9efd59140ea58cebd7dd38ae9a6379 (diff) | |
Merge branch 'upstream-merged'
Diffstat (limited to 'libdde_linux26/contrib/include/linux/unaligned/memmove.h')
| -rw-r--r-- | libdde_linux26/contrib/include/linux/unaligned/memmove.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/libdde_linux26/contrib/include/linux/unaligned/memmove.h b/libdde_linux26/contrib/include/linux/unaligned/memmove.h new file mode 100644 index 00000000..eeb5a779 --- /dev/null +++ b/libdde_linux26/contrib/include/linux/unaligned/memmove.h @@ -0,0 +1,45 @@ +#ifndef _LINUX_UNALIGNED_MEMMOVE_H +#define _LINUX_UNALIGNED_MEMMOVE_H + +#include <linux/kernel.h> +#include <linux/string.h> + +/* Use memmove here, so gcc does not insert a __builtin_memcpy. */ + +static inline u16 __get_unaligned_memmove16(const void *p) +{ + u16 tmp; + memmove(&tmp, p, 2); + return tmp; +} + +static inline u32 __get_unaligned_memmove32(const void *p) +{ + u32 tmp; + memmove(&tmp, p, 4); + return tmp; +} + +static inline u64 __get_unaligned_memmove64(const void *p) +{ + u64 tmp; + memmove(&tmp, p, 8); + return tmp; +} + +static inline void __put_unaligned_memmove16(u16 val, void *p) +{ + memmove(p, &val, 2); +} + +static inline void __put_unaligned_memmove32(u32 val, void *p) +{ + memmove(p, &val, 4); +} + +static inline void __put_unaligned_memmove64(u64 val, void *p) +{ + memmove(p, &val, 8); +} + +#endif /* _LINUX_UNALIGNED_MEMMOVE_H */ |
