From 36472a1ef8b80f65ef9dd7f77503b1c117bfdccc Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Fri, 17 Sep 2004 15:28:58 +0000 Subject: [PATCH] Initial revision --- arch/um/sys-i386/bitops.c | 70 ++++++++++++++++++++++++++++++++++++++ scripts/elfconfig.h | 5 +++ scripts/mk_elfconfig | Bin 0 -> 6015 bytes scripts/modpost | Bin 0 -> 24656 bytes 4 files changed, 75 insertions(+) create mode 100644 arch/um/sys-i386/bitops.c create mode 100644 scripts/elfconfig.h create mode 100644 scripts/mk_elfconfig create mode 100644 scripts/modpost diff --git a/arch/um/sys-i386/bitops.c b/arch/um/sys-i386/bitops.c new file mode 100644 index 000000000..97db3853d --- /dev/null +++ b/arch/um/sys-i386/bitops.c @@ -0,0 +1,70 @@ +#include +#include + +/** + * find_next_bit - find the first set bit in a memory region + * @addr: The address to base the search on + * @offset: The bitnumber to start searching at + * @size: The maximum size to search + */ +int find_next_bit(const unsigned long *addr, int size, int offset) +{ + const unsigned long *p = addr + (offset >> 5); + int set = 0, bit = offset & 31, res; + + if (bit) { + /* + * Look for nonzero in the first 32 bits: + */ + __asm__("bsfl %1,%0\n\t" + "jne 1f\n\t" + "movl $32, %0\n" + "1:" + : "=r" (set) + : "r" (*p >> bit)); + if (set < (32 - bit)) + return set + offset; + set = 32 - bit; + p++; + } + /* + * No set bit yet, search remaining full words for a bit + */ + res = find_first_bit (p, size - 32 * (p - addr)); + return (offset + set + res); +} +EXPORT_SYMBOL(find_next_bit); + +/** + * find_next_zero_bit - find the first zero bit in a memory region + * @addr: The address to base the search on + * @offset: The bitnumber to start searching at + * @size: The maximum size to search + */ +int find_next_zero_bit(const unsigned long *addr, int size, int offset) +{ + unsigned long * p = ((unsigned long *) addr) + (offset >> 5); + int set = 0, bit = offset & 31, res; + + if (bit) { + /* + * Look for zero in the first 32 bits. + */ + __asm__("bsfl %1,%0\n\t" + "jne 1f\n\t" + "movl $32, %0\n" + "1:" + : "=r" (set) + : "r" (~(*p >> bit))); + if (set < (32 - bit)) + return set + offset; + set = 32 - bit; + p++; + } + /* + * No zero yet, search remaining full bytes for a zero + */ + res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr)); + return (offset + set + res); +} +EXPORT_SYMBOL(find_next_zero_bit); diff --git a/scripts/elfconfig.h b/scripts/elfconfig.h new file mode 100644 index 000000000..1b2f317b3 --- /dev/null +++ b/scripts/elfconfig.h @@ -0,0 +1,5 @@ +#define KERNEL_ELFCLASS ELFCLASS32 +#define KERNEL_ELFDATA ELFDATA2LSB +#define HOST_ELFCLASS ELFCLASS32 +#define HOST_ELFDATA ELFDATA2LSB +#define MODULE_SYMBOL_PREFIX "" diff --git a/scripts/mk_elfconfig b/scripts/mk_elfconfig new file mode 100644 index 0000000000000000000000000000000000000000..cff1abc37343e5ec3724da8cecd4f37c2d5477f9 GIT binary patch literal 6015 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 S%f^evRPj37ycMY`ef|fW>#QyS literal 0 HcmV?d00001 diff --git a/scripts/modpost b/scripts/modpost new file mode 100644 index 0000000000000000000000000000000000000000..9bbb6fc9a4234cac458a3892acd043ec63ee6f9e GIT binary patch literal 24656 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 literal 0 HcmV?d00001 -- 2.47.0