diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-12-19 20:34:24 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-12-19 20:34:24 -0500 |
commit | 825d180c0758a3f5a4dd8dd5d48d98952bf7a0ae (patch) | |
tree | 3c0f2987c0520a3b6b82113ecbccc360948c0e0e /linux | |
parent | 94cafcb8e5c196afefebdc090ba0594db4cf746f (diff) |
Delete more shim layer code
Diffstat (limited to 'linux')
-rw-r--r-- | linux/bitrev.c | 37 | ||||
-rw-r--r-- | linux/kstrtox.c | 17 | ||||
-rw-r--r-- | linux/rhashtable.c | 2 | ||||
-rw-r--r-- | linux/sched.c | 8 | ||||
-rw-r--r-- | linux/sort.c | 143 | ||||
-rw-r--r-- | linux/string.c | 40 |
6 files changed, 12 insertions, 235 deletions
diff --git a/linux/bitrev.c b/linux/bitrev.c deleted file mode 100644 index 61207bb7..00000000 --- a/linux/bitrev.c +++ /dev/null @@ -1,37 +0,0 @@ -#include <linux/types.h> -#include <linux/bitrev.h> - -const u8 byte_rev_table[256] = { - 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, - 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, - 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, - 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, - 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, - 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, - 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, - 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, - 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, - 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, - 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, - 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, - 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, - 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, - 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, - 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, - 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, - 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, - 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, - 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, - 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, - 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, - 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, - 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, - 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, - 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, - 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, - 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, - 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, - 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, - 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, - 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff, -}; diff --git a/linux/kstrtox.c b/linux/kstrtox.c index 9164fb96..bde55808 100644 --- a/linux/kstrtox.c +++ b/linux/kstrtox.c @@ -12,10 +12,8 @@ * If -E is returned, result is not touched. */ #include <errno.h> -#include <linux/ctype.h> +#include <ctype.h> #include <linux/kernel.h> -#include <linux/math64.h> -#include <linux/export.h> #include <linux/types.h> #include "kstrtox.h" @@ -71,7 +69,7 @@ unsigned int _parse_integer(const char *s, unsigned int base, unsigned long long * it in the max base we support (16) */ if (unlikely(res & (~0ull << 60))) { - if (res > div_u64(ULLONG_MAX - val, base)) + if (res > ULLONG_MAX - val / base) overflow = 1; } res = res * base + val; @@ -126,7 +124,6 @@ int kstrtoull(const char *s, unsigned int base, unsigned long long *res) s++; return _kstrtoull(s, base, res); } -EXPORT_SYMBOL(kstrtoull); /** * kstrtoll - convert a string to a long long @@ -166,7 +163,6 @@ int kstrtoll(const char *s, unsigned int base, long long *res) } return 0; } -EXPORT_SYMBOL(kstrtoll); /* Internal, do not use. */ int _kstrtoul(const char *s, unsigned int base, unsigned long *res) @@ -182,7 +178,6 @@ int _kstrtoul(const char *s, unsigned int base, unsigned long *res) *res = tmp; return 0; } -EXPORT_SYMBOL(_kstrtoul); /* Internal, do not use. */ int _kstrtol(const char *s, unsigned int base, long *res) @@ -198,7 +193,6 @@ int _kstrtol(const char *s, unsigned int base, long *res) *res = tmp; return 0; } -EXPORT_SYMBOL(_kstrtol); /** * kstrtouint - convert a string to an unsigned int @@ -229,7 +223,6 @@ int kstrtouint(const char *s, unsigned int base, unsigned int *res) *res = tmp; return 0; } -EXPORT_SYMBOL(kstrtouint); /** * kstrtoint - convert a string to an int @@ -260,7 +253,6 @@ int kstrtoint(const char *s, unsigned int base, int *res) *res = tmp; return 0; } -EXPORT_SYMBOL(kstrtoint); int kstrtou16(const char *s, unsigned int base, u16 *res) { @@ -275,7 +267,6 @@ int kstrtou16(const char *s, unsigned int base, u16 *res) *res = tmp; return 0; } -EXPORT_SYMBOL(kstrtou16); int kstrtos16(const char *s, unsigned int base, s16 *res) { @@ -290,7 +281,6 @@ int kstrtos16(const char *s, unsigned int base, s16 *res) *res = tmp; return 0; } -EXPORT_SYMBOL(kstrtos16); int kstrtou8(const char *s, unsigned int base, u8 *res) { @@ -305,7 +295,6 @@ int kstrtou8(const char *s, unsigned int base, u8 *res) *res = tmp; return 0; } -EXPORT_SYMBOL(kstrtou8); int kstrtos8(const char *s, unsigned int base, s8 *res) { @@ -320,7 +309,6 @@ int kstrtos8(const char *s, unsigned int base, s8 *res) *res = tmp; return 0; } -EXPORT_SYMBOL(kstrtos8); /** * kstrtobool - convert common user inputs into boolean values @@ -367,4 +355,3 @@ int kstrtobool(const char *s, bool *res) return -EINVAL; } -EXPORT_SYMBOL(kstrtobool); diff --git a/linux/rhashtable.c b/linux/rhashtable.c index 03369ead..351eac79 100644 --- a/linux/rhashtable.c +++ b/linux/rhashtable.c @@ -15,12 +15,12 @@ */ #include <linux/atomic.h> +#include <linux/cpumask.h> #include <linux/kernel.h> #include <linux/log2.h> #include <linux/sched.h> #include <linux/slab.h> #include <linux/vmalloc.h> -#include <linux/mm.h> #include <linux/jhash.h> #include <linux/random.h> #include <linux/rhashtable.h> diff --git a/linux/sched.c b/linux/sched.c index c996945e..b3fc7739 100644 --- a/linux/sched.c +++ b/linux/sched.c @@ -1,17 +1,15 @@ -#include <linux/futex.h> +#include <stdio.h> #include <string.h> #include <sys/mman.h> +#include <linux/futex.h> /* hack for mips: */ #define CONFIG_RCU_HAVE_FUTEX 1 #include <urcu/futex.h> -#include <linux/math64.h> -#include <linux/printk.h> #include <linux/rcupdate.h> #include <linux/sched.h> -#include <linux/slab.h> #include <linux/timer.h> __thread struct task_struct *current; @@ -83,7 +81,7 @@ long schedule_timeout(long timeout) * that will tell you if something is gone wrong and where. */ if (timeout < 0) { - printk(KERN_ERR "schedule_timeout: wrong timeout " + fprintf(stderr, "schedule_timeout: wrong timeout " "value %lx\n", timeout); current->state = TASK_RUNNING; goto out; diff --git a/linux/sort.c b/linux/sort.c deleted file mode 100644 index 15e8d117..00000000 --- a/linux/sort.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * A fast, small, non-recursive O(nlog n) sort for the Linux kernel - * - * Jan 23 2005 Matt Mackall <mpm@selenic.com> - */ - -#include <linux/types.h> -#include <linux/export.h> -#include <linux/kernel.h> -#include <linux/sort.h> - -static int alignment_ok(const void *base, int align) -{ - return IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) || - ((unsigned long)base & (align - 1)) == 0; -} - -static void u32_swap(void *a, void *b, int size) -{ - u32 t = *(u32 *)a; - *(u32 *)a = *(u32 *)b; - *(u32 *)b = t; -} - -static void u64_swap(void *a, void *b, int size) -{ - u64 t = *(u64 *)a; - *(u64 *)a = *(u64 *)b; - *(u64 *)b = t; -} - -static void generic_swap(void *a, void *b, int size) -{ - char t; - - do { - t = *(char *)a; - *(char *)a++ = *(char *)b; - *(char *)b++ = t; - } while (--size > 0); -} - -/** - * sort - sort an array of elements - * @base: pointer to data to sort - * @num: number of elements - * @size: size of each element - * @cmp_func: pointer to comparison function - * @swap_func: pointer to swap function or NULL - * - * This function does a heapsort on the given array. You may provide a - * swap_func function optimized to your element type. - * - * Sorting time is O(n log n) both on average and worst-case. While - * qsort is about 20% faster on average, it suffers from exploitable - * O(n*n) worst-case behavior and extra memory requirements that make - * it less suitable for kernel use. - */ - -void sort(void *base, size_t num, size_t size, - int (*cmp_func)(const void *, const void *), - void (*swap_func)(void *, void *, int size)) -{ - /* pre-scale counters for performance */ - int i = (num/2 - 1) * size, n = num * size, c, r; - - if (!swap_func) { - if (size == 4 && alignment_ok(base, 4)) - swap_func = u32_swap; - else if (size == 8 && alignment_ok(base, 8)) - swap_func = u64_swap; - else - swap_func = generic_swap; - } - - /* heapify */ - for ( ; i >= 0; i -= size) { - for (r = i; r * 2 + size < n; r = c) { - c = r * 2 + size; - if (c < n - size && - cmp_func(base + c, base + c + size) < 0) - c += size; - if (cmp_func(base + r, base + c) >= 0) - break; - swap_func(base + r, base + c, size); - } - } - - /* sort */ - for (i = n - size; i > 0; i -= size) { - swap_func(base, base + i, size); - for (r = 0; r * 2 + size < i; r = c) { - c = r * 2 + size; - if (c < i - size && - cmp_func(base + c, base + c + size) < 0) - c += size; - if (cmp_func(base + r, base + c) >= 0) - break; - swap_func(base + r, base + c, size); - } - } -} - -EXPORT_SYMBOL(sort); - -#if 0 -#include <linux/slab.h> -/* a simple boot-time regression test */ - -int cmpint(const void *a, const void *b) -{ - return *(int *)a - *(int *)b; -} - -static int sort_test(void) -{ - int *a, i, r = 1; - - a = kmalloc(1000 * sizeof(int), GFP_KERNEL); - BUG_ON(!a); - - printk("testing sort()\n"); - - for (i = 0; i < 1000; i++) { - r = (r * 725861) % 6599; - a[i] = r; - } - - sort(a, 1000, sizeof(int), cmpint, NULL); - - for (i = 0; i < 999; i++) - if (a[i] > a[i+1]) { - printk("sort() failed!\n"); - break; - } - - kfree(a); - - return 0; -} - -module_init(sort_test); -#endif diff --git a/linux/string.c b/linux/string.c index 4fa3f64b..fd2797ea 100644 --- a/linux/string.c +++ b/linux/string.c @@ -19,37 +19,20 @@ * - Kissed strtok() goodbye */ -#include <linux/types.h> -#include <linux/string.h> -#include <linux/ctype.h> -#include <linux/kernel.h> -#include <linux/export.h> -#include <linux/bug.h> -#include <linux/errno.h> - +#include <ctype.h> +#include <errno.h> #include <string.h> -/** - * skip_spaces - Removes leading whitespace from @str. - * @str: The string to be stripped. - * - * Returns a pointer to the first non-whitespace character in @str. - */ -char *skip_spaces(const char *str) +#include <linux/compiler.h> +#include <linux/string.h> + +static char *skip_spaces(const char *str) { while (isspace(*str)) ++str; return (char *)str; } -/** - * strim - Removes leading and trailing whitespace from @s. - * @s: The string to be stripped. - * - * Note that the first trailing whitespace is replaced with a %NUL-terminator - * in the given string @s. Returns a pointer to the first non-whitespace - * character in @s. - */ char *strim(char *s) { size_t size; @@ -67,17 +50,6 @@ char *strim(char *s) return skip_spaces(s); } -/** - * strlcpy - Copy a C-string into a sized buffer - * @dest: Where to copy the string to - * @src: Where to copy the string from - * @size: size of destination buffer - * - * Compatible with *BSD: the result is always a valid - * NUL-terminated string that fits in the buffer (unless, - * of course, the buffer size is zero). It does not pad - * out the result like strncpy() does. - */ size_t strlcpy(char *dest, const char *src, size_t size) { size_t ret = strlen(src); |