diff --git a/daemon/aux-test.c b/daemon/aux-test.c deleted file mode 100644 index 52e0d2c..0000000 --- a/daemon/aux-test.c +++ /dev/null @@ -1,305 +0,0 @@ -#include -#include "aux.h" - - -int test[32] = { - 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, - 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0, 0xff, - - 0x10ff, 0x20ff, 0x30ff, 0x40ff, 0x50ff, 0x60ff, 0x70ff, 0x80ff, - 0x90ff, 0xa0ff, 0xb0ff, 0xc0ff, 0xd0ff, 0xe0ff, 0xf0ff, 0xffff, -}; - -void exsrx(int x, int exp, unsigned int s, int ex) { - int ret = mybsearch(test, s, sizeof(int), &x, 0, sizeof(x), ex); - if (ret != exp) - fprintf(stderr, "TEST FAILED! params=%u %i; result=%i, expected=%i\n", s, ex, ret, exp); -} - -void exsr1(int x, int exp) { - exsrx(x, exp, 16, 1); -} - -void exsr2(int x, int exp) { - exsrx(x, exp, 15, 1); -} - -void exsr3(int x, int exp) { - exsrx(x, exp, 2, 1); -} - -void exsr4(int x, int exp) { - exsrx(x, exp, 1, 1); -} - -void exsr5(int x, int exp) { - exsrx(x, exp, 32, 1); -} - -void exsr6(int x, int exp) { - exsrx(x, exp, 31, 1); -} - -void exsr7(int x, int exp) { - exsrx(x, exp, 16, 0); -} - -void exsr8(int x, int exp) { - exsrx(x, exp, 15, 0); -} - -void exsr9(int x, int exp) { - exsrx(x, exp, 2, 0); -} - -void exsr10(int x, int exp) { - exsrx(x, exp, 1, 0); -} - -void exsr11(int x, int exp) { - exsrx(x, exp, 32, 0); -} - -void exsr12(int x, int exp) { - exsrx(x, exp, 31, 0); -} - -int main() { - exsr1(0x10, 0); - exsr1(0x20, 1); - exsr1(0x30, 2); - exsr1(0x40, 3); - exsr1(0x50, 4); - exsr1(0x60, 5); - exsr1(0x70, 6); - exsr1(0x80, 7); - exsr1(0x90, 8); - exsr1(0xa0, 9); - exsr1(0xb0, 10); - exsr1(0xc0, 11); - exsr1(0xd0, 12); - exsr1(0xe0, 13); - exsr1(0xf0, 14); - exsr1(0xff, 15); - exsr1(0xffff, -1); - exsr1(0xfe, -1); - - exsr2(0x10, 0); - exsr2(0x20, 1); - exsr2(0x30, 2); - exsr2(0x40, 3); - exsr2(0x50, 4); - exsr2(0x60, 5); - exsr2(0x70, 6); - exsr2(0x80, 7); - exsr2(0x90, 8); - exsr2(0xa0, 9); - exsr2(0xb0, 10); - exsr2(0xc0, 11); - exsr2(0xd0, 12); - exsr2(0xe0, 13); - exsr2(0xf0, 14); - exsr2(0xff, -1); - - exsr3(0x10, 0); - exsr3(0x20, 1); - exsr3(0x30, -1); - - exsr4(0x10, 0); - exsr4(0x20, -1); - - exsr5(0x10, 0); - exsr5(0x20, 1); - exsr5(0x30, 2); - exsr5(0x40, 3); - exsr5(0x50, 4); - exsr5(0x60, 5); - exsr5(0x70, 6); - exsr5(0x80, 7); - exsr5(0x90, 8); - exsr5(0xa0, 9); - exsr5(0xb0, 10); - exsr5(0xc0, 11); - exsr5(0xd0, 12); - exsr5(0xe0, 13); - exsr5(0xf0, 14); - exsr5(0xff, 15); - exsr5(0x10ff, 16); - exsr5(0x20ff, 17); - exsr5(0x30ff, 18); - exsr5(0x40ff, 19); - exsr5(0x50ff, 20); - exsr5(0x60ff, 21); - exsr5(0x70ff, 22); - exsr5(0x80ff, 23); - exsr5(0x90ff, 24); - exsr5(0xa0ff, 25); - exsr5(0xb0ff, 26); - exsr5(0xc0ff, 27); - exsr5(0xd0ff, 28); - exsr5(0xe0ff, 29); - exsr5(0xf0ff, 30); - exsr5(0xffff, 31); - exsr5(0xfff3, -1); - exsr5(0xffffff, -1); - - exsr6(0x10, 0); - exsr6(0x20, 1); - exsr6(0x30, 2); - exsr6(0x40, 3); - exsr6(0x50, 4); - exsr6(0x60, 5); - exsr6(0x70, 6); - exsr6(0x80, 7); - exsr6(0x90, 8); - exsr6(0xa0, 9); - exsr6(0xb0, 10); - exsr6(0xc0, 11); - exsr6(0xd0, 12); - exsr6(0xe0, 13); - exsr6(0xf0, 14); - exsr6(0xff, 15); - exsr6(0x10ff, 16); - exsr6(0x20ff, 17); - exsr6(0x30ff, 18); - exsr6(0x40ff, 19); - exsr6(0x50ff, 20); - exsr6(0x60ff, 21); - exsr6(0x70ff, 22); - exsr6(0x80ff, 23); - exsr6(0x90ff, 24); - exsr6(0xa0ff, 25); - exsr6(0xb0ff, 26); - exsr6(0xc0ff, 27); - exsr6(0xd0ff, 28); - exsr6(0xe0ff, 29); - exsr6(0xf0ff, 30); - exsr6(0xffff, -1); - - - - - - exsr7(0x10, 0); - exsr7(0x20, 1); - exsr7(0x30, 2); - exsr7(0x40, 3); - exsr7(0x50, 4); - exsr7(0x60, 5); - exsr7(0x70, 6); - exsr7(0x80, 7); - exsr7(0x90, 8); - exsr7(0xa0, 9); - exsr7(0xb0, 10); - exsr7(0xc0, 11); - exsr7(0xd0, 12); - exsr7(0xe0, 13); - exsr7(0xf0, 14); - exsr7(0xff, 15); - exsr7(0xffff, -17); - exsr7(0xfe, -16); - exsr7(0x00, -1); - exsr8(0x05, -1); - exsr8(0x15, -2); - - exsr8(0x10, 0); - exsr8(0x20, 1); - exsr8(0x30, 2); - exsr8(0x40, 3); - exsr8(0x50, 4); - exsr8(0x60, 5); - exsr8(0x70, 6); - exsr8(0x80, 7); - exsr8(0x90, 8); - exsr8(0xa0, 9); - exsr8(0xb0, 10); - exsr8(0xc0, 11); - exsr8(0xd0, 12); - exsr8(0xe0, 13); - exsr8(0xf0, 14); - exsr8(0xff, -16); - exsr8(0xffff, -16); - exsr8(0xef, -15); - exsr8(0x00, -1); - exsr8(0x05, -1); - exsr8(0x15, -2); - - exsr9(0x10, 0); - exsr9(0x20, 1); - exsr9(0x30, -3); - - exsr10(0x10, 0); - exsr10(0x20, -2); - - exsr11(0x10, 0); - exsr11(0x20, 1); - exsr11(0x30, 2); - exsr11(0x40, 3); - exsr11(0x50, 4); - exsr11(0x60, 5); - exsr11(0x70, 6); - exsr11(0x80, 7); - exsr11(0x90, 8); - exsr11(0xa0, 9); - exsr11(0xb0, 10); - exsr11(0xc0, 11); - exsr11(0xd0, 12); - exsr11(0xe0, 13); - exsr11(0xf0, 14); - exsr11(0xff, 15); - exsr11(0x10ff, 16); - exsr11(0x20ff, 17); - exsr11(0x30ff, 18); - exsr11(0x40ff, 19); - exsr11(0x50ff, 20); - exsr11(0x60ff, 21); - exsr11(0x70ff, 22); - exsr11(0x80ff, 23); - exsr11(0x90ff, 24); - exsr11(0xa0ff, 25); - exsr11(0xb0ff, 26); - exsr11(0xc0ff, 27); - exsr11(0xd0ff, 28); - exsr11(0xe0ff, 29); - exsr11(0xf0ff, 30); - exsr11(0xffff, 31); - exsr11(0xfff3, -16); - exsr11(0xffffff, -33); - - exsr12(0x10, 0); - exsr12(0x20, 1); - exsr12(0x30, 2); - exsr12(0x40, 3); - exsr12(0x50, 4); - exsr12(0x60, 5); - exsr12(0x70, 6); - exsr12(0x80, 7); - exsr12(0x90, 8); - exsr12(0xa0, 9); - exsr12(0xb0, 10); - exsr12(0xc0, 11); - exsr12(0xd0, 12); - exsr12(0xe0, 13); - exsr12(0xf0, 14); - exsr12(0xff, 15); - exsr12(0x10ff, 16); - exsr12(0x20ff, 17); - exsr12(0x30ff, 18); - exsr12(0x40ff, 19); - exsr12(0x50ff, 20); - exsr12(0x60ff, 21); - exsr12(0x70ff, 22); - exsr12(0x80ff, 23); - exsr12(0x90ff, 24); - exsr12(0xa0ff, 25); - exsr12(0xb0ff, 26); - exsr12(0xc0ff, 27); - exsr12(0xd0ff, 28); - exsr12(0xe0ff, 29); - exsr12(0xf0ff, 30); - exsr12(0xffff, -32); - - printf("all done\n"); - - return 0; -} diff --git a/daemon/aux.c b/daemon/aux.c index d4b2575..4b9461b 100644 --- a/daemon/aux.c +++ b/daemon/aux.c @@ -15,68 +15,6 @@ -int mybsearch(void *base, unsigned int len, unsigned int size, void *key, unsigned int key_off, unsigned int key_size, int exact) { - unsigned char *cbase = base; - int pos; - unsigned char *cur; - int res; - unsigned int num; - - if (!len) { - BSDB("zero length array\n"); - return -1; - } - - pos = len / 2; - num = pos; - num += 3; - num /= 2; - pos--; - if (pos < 0) - pos = 0; - - BSDB("starting pos=%u, num=%u\n", pos, num); - - for (;;) { - cur = cbase + (pos * size); - res = memcmp(cur + key_off, key, key_size); - BSDB("compare=%i\n", res); - if (!res) - return pos; - if (!num) { - BSDB("nothing found\n"); - if (exact) - return -1; - if (res > 0) /* cur > key */ - return -1 * pos - 1; - return -1 * pos - 2; - } - - if (res < 0) { /* cur < key */ - pos += num; - if (pos >= len) - pos = len - 1; - } - else { - pos -= num; - if (pos < 0) - pos = 0; - } - - BSDB("new pos=%u\n", pos); - - if (num == 1) - num = 0; - else { - num++; - num /= 2; - } - - BSDB("new num=%u\n", num); - } -} - - GList *g_list_link(GList *list, GList *el) { el->prev = NULL; el->next = list; diff --git a/daemon/aux.h b/daemon/aux.h index 738da83..5d33966 100644 --- a/daemon/aux.h +++ b/daemon/aux.h @@ -42,7 +42,6 @@ typedef int (*parse_func)(char **, void **, void *); -int mybsearch(void *, unsigned int, unsigned int, void *, unsigned int, unsigned int, int); GList *g_list_link(GList *, GList *); GQueue *pcre_multi_match(pcre **, pcre_extra **, const char *, const char *, unsigned int, parse_func, void *); void strmove(char **, char **);