diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2012-03-23 23:07:36 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2012-03-23 23:07:36 +0800 |
commit | 126601dd3f5303b50033dcb88945d928aa764aa4 (patch) | |
tree | 36f80c2aaa18e794fc65cd4a756a28146bd50b5e /libc/kernel/arch-x86/asm/div64.h | |
parent | eaae81082cb76efa43a2c3fb57997b28ca270634 (diff) | |
download | bionic-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.h | 6 |
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 |