diff options
author | kevlo <kevlo@FreeBSD.org> | 2016-05-24 09:23:04 +0000 |
---|---|---|
committer | kevlo <kevlo@FreeBSD.org> | 2016-05-24 09:23:04 +0000 |
commit | 9f26e9cda7f07435a0095bc156ed03a7f437babd (patch) | |
tree | 414a576edc52ea6fd6ae4c5bded866e9129d990e /sys/compat/linuxkpi | |
parent | e89deb78447df7b3c158f82a7b2d6b92867f77cd (diff) | |
download | FreeBSD-src-9f26e9cda7f07435a0095bc156ed03a7f437babd.zip FreeBSD-src-9f26e9cda7f07435a0095bc156ed03a7f437babd.tar.gz |
Add __iowrite32_copy() to the Linux kernel compatibility layer.
Reviewed by: hselasky
Diffstat (limited to 'sys/compat/linuxkpi')
-rw-r--r-- | sys/compat/linuxkpi/common/include/linux/io.h | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/io.h b/sys/compat/linuxkpi/common/include/linux/io.h index f6c9405..0909346 100644 --- a/sys/compat/linuxkpi/common/include/linux/io.h +++ b/sys/compat/linuxkpi/common/include/linux/io.h @@ -202,6 +202,17 @@ void iounmap(void *addr); #define memcpy_toio(a, b, c) memcpy((a), (b), (c)) static inline void +__iowrite32_copy(void *to, void *from, size_t count) +{ + uint32_t *src; + uint32_t *dst; + int i; + + for (i = 0, src = from, dst = to; i < count; i++, src++, dst++) + __raw_writel(*src, dst); +} + +static inline void __iowrite64_copy(void *to, void *from, size_t count) { #ifdef __LP64__ @@ -212,13 +223,7 @@ __iowrite64_copy(void *to, void *from, size_t count) for (i = 0, src = from, dst = to; i < count; i++, src++, dst++) __raw_writeq(*src, dst); #else - uint32_t *src; - uint32_t *dst; - int i; - - count *= 2; - for (i = 0, src = from, dst = to; i < count; i++, src++, dst++) - __raw_writel(*src, dst); + __iowrite32_copy(to, from, count * 2); #endif } |