summaryrefslogtreecommitdiffstats
path: root/libc/kernel/arch-x86/asm/div64.h
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2012-03-23 23:07:36 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2012-03-23 23:07:36 +0800
commit126601dd3f5303b50033dcb88945d928aa764aa4 (patch)
tree36f80c2aaa18e794fc65cd4a756a28146bd50b5e /libc/kernel/arch-x86/asm/div64.h
parenteaae81082cb76efa43a2c3fb57997b28ca270634 (diff)
downloadbionic-126601dd3f5303b50033dcb88945d928aa764aa4.zip
bionic-126601dd3f5303b50033dcb88945d928aa764aa4.tar.gz
bionic-126601dd3f5303b50033dcb88945d928aa764aa4.tar.bz2
Fixed to #include correct 32-bit headers; Refreshed libc/kernel headers
This patch fixes an issue where 64-bit hreaders are incorrectly included in kernel headers. For example, file "libc/kernel/arch-x86/asm/io.h" incorreclty includes "io_64.h" (missing, BTW) instead of "io_32.h". The reason is because CONFIG_X86_32 isn't considered pre-defined in "kernel_default_arch_macros" for x86, and clean_header.py doesn't look at it at all anyway (ie. __i386__ is also ignored, but it's okay since x86 cross compiler defines it back) Fixed 2 tools/*py, README.TXT, and refreshed libc/kernel headers Change-Id: Iac834cc8b3548f055d3f2a214af36072dd679fe8
Diffstat (limited to 'libc/kernel/arch-x86/asm/div64.h')
-rw-r--r--libc/kernel/arch-x86/asm/div64.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/libc/kernel/arch-x86/asm/div64.h b/libc/kernel/arch-x86/asm/div64.h
index 8641ffa..420d9e3 100644
--- a/libc/kernel/arch-x86/asm/div64.h
+++ b/libc/kernel/arch-x86/asm/div64.h
@@ -18,6 +18,8 @@
****************************************************************************/
#ifndef _ASM_X86_DIV64_H
#define _ASM_X86_DIV64_H
-#include <asm-generic/div64.h>
-#endif
+#include <linux/types.h>
+#define do_div(n,base) ({ unsigned long __upper, __low, __high, __mod, __base; __base = (base); asm("":"=a" (__low), "=d" (__high):"A" (n)); __upper = __high; if (__high) { __upper = __high % (__base); __high = __high / (__base); } asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (__base), "0" (__low), "1" (__upper)); asm("":"=A" (n):"a" (__low),"d" (__high)); __mod; })
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define div_long_long_rem(a,b,c) div_ll_X_l_rem(a,b,c)
+#endif