diff options
Diffstat (limited to 'klibc')
25 files changed, 2 insertions, 5354 deletions
diff --git a/klibc/include/signal.h b/klibc/include/signal.h index e78318f5f7..ab3c98d6e4 100644 --- a/klibc/include/signal.h +++ b/klibc/include/signal.h @@ -16,7 +16,7 @@ /* glibc seems to use sig_atomic_t as "int" pretty much on all architectures. Do the same, but allow the architecture to override. */ -#ifdef _KLIBC_HAS_ARCH_SIG_ATOMIC_T +#ifndef _KLIBC_HAS_ARCH_SIG_ATOMIC_T typedef int sig_atomic_t; #endif diff --git a/klibc/klibc/tests/environ.c b/klibc/klibc/tests/environ.c deleted file mode 100644 index 6eeeb9197e..0000000000 --- a/klibc/klibc/tests/environ.c +++ /dev/null @@ -1,24 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <unistd.h> - -int main(int argc, char *argv[], char *envp[]) -{ - int i; - - /* Verify envp == environ */ - printf("Verifying envp == environ... %s\n", - (envp == environ) ? "ok" : "ERROR"); - - /* Test argc/argv */ - printf("argc = %d, argv = %p\n", argc, argv); - for ( i = 0 ; i < argc ; i++ ) { - printf("argv[%2d] = %s\n", i, argv[i]); - } - - /* Test environ */ - for ( i = 0 ; envp[i] ; i++ ) - printf("%s\n", envp[i]); - - return 0; -} diff --git a/klibc/klibc/tests/fcntl.c b/klibc/klibc/tests/fcntl.c deleted file mode 100644 index f504ad90f7..0000000000 --- a/klibc/klibc/tests/fcntl.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Simple test of fcntl - */ - -#include <stdio.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> -#include <stdlib.h> -#include <string.h> - -int main(int argc, char *argv[]) -{ - int fd = open(argv[0], O_RDONLY); - struct flock l; - long flags; - - (void)argc; - - if ( fd < 0 ) { - perror("open"); - exit(1); - } - - /* Get the flags on this FD */ - - if ( (flags = fcntl(fd, F_GETFL)) == -1 ) { - perror("F_GETFL"); - exit(1); - } - - if ( flags != (O_RDONLY|O_LARGEFILE) ) - fprintf(stderr, "flags = %#lx\n", flags); - - /* Set a lock on this FD */ - memset(&l, 0, sizeof l); - l.l_type = F_RDLCK; - l.l_whence = SEEK_SET; - l.l_start = 123; - l.l_len = 456; - - if ( fcntl(fd, F_SETLK, &l) == -1 ) { - perror("F_SETLK"); - exit(1); - } - - /* Eventually, fork and try to conflict with this lock... */ - - return 0; -} - - - diff --git a/klibc/klibc/tests/getopttest.c b/klibc/klibc/tests/getopttest.c deleted file mode 100644 index 90ceaa2c58..0000000000 --- a/klibc/klibc/tests/getopttest.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * getopttest.c - * - * Simple test for getopt, set the environment variable GETOPTTEST - * to give the argument string to getopt() - */ - -#include <stdlib.h> -#include <unistd.h> -#include <stdio.h> - -int main(int argc, char * const *argv) -{ - const char *parser; - char showchar[] = "\'?\'"; - int c; - - parser = getenv("GETOPTTEST"); - if ( !parser ) parser = "abzf:o:"; - - do { - c = getopt(argc, argv, parser); - showchar[1] = c; - printf("c = %s, optind = %d (%s), optarg = \"%s\", optopt = \'%c\'\n", - (c == EOF) ? "EOF" : showchar, - optind, argv[optind], optarg, optopt); - } while ( c != -1 ); - - return 0; -} - diff --git a/klibc/klibc/tests/getpagesize.c b/klibc/klibc/tests/getpagesize.c deleted file mode 100644 index bda37e1f6b..0000000000 --- a/klibc/klibc/tests/getpagesize.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <unistd.h> -#include <stdio.h> - -int main(void) -{ - printf("getpagesize() = %d\n" - "__getpageshift() = %d\n", - getpagesize(), __getpageshift()); - - return 0; -} diff --git a/klibc/klibc/tests/hello.c b/klibc/klibc/tests/hello.c deleted file mode 100644 index 20457af153..0000000000 --- a/klibc/klibc/tests/hello.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <stdio.h> - -int main(void) -{ - printf("Hello, World!\n"); - return 0; -} diff --git a/klibc/klibc/tests/idtest.c b/klibc/klibc/tests/idtest.c deleted file mode 100644 index c3c44479c5..0000000000 --- a/klibc/klibc/tests/idtest.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <stdio.h> -#include <unistd.h> - -int main(void) -{ - printf("pid = %u\n", getpid()); - printf("ppid = %u\n", getppid()); - printf("uid = %u\n", getuid()); - printf("euid = %u\n", geteuid()); - printf("gid = %u\n", getgid()); - printf("egid = %u\n", getegid()); - sleep(10); - return 0; -} diff --git a/klibc/klibc/tests/malloctest.c b/klibc/klibc/tests/malloctest.c deleted file mode 100644 index 64e8e79851..0000000000 --- a/klibc/klibc/tests/malloctest.c +++ /dev/null @@ -1,4145 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#define NCYCLES 4096 - -int sizes[NCYCLES] = { - 11986, - 277806, - 2659, - 46, - 0, - 775553, - 1991, - 21, - 7638, - 250197, - 155828, - 5777, - 9, - 315006, - 900788, - 0, - 24893, - 119996, - 72299, - 171266, - 357, - 560, - 368, - 22952, - 54058, - 12638, - 39155, - 2738, - 217563, - 26853, - 47, - 75, - 1167, - 16917, - 1899, - 2905, - 9337, - 62243, - 14214, - 270523, - 4024, - 21, - 32, - 14892, - 625144, - 13, - 21700, - 8804, - 254147, - 0, - 6, - 836004, - 1718, - 2289, - 15554, - 412857, - 185097, - 806709, - 64, - 18602, - 17064, - 1779, - 78153, - 170600, - 199100, - 546528, - 0, - 21, - 20609, - 16514, - 548196, - 311446, - 53484, - 0, - 551, - 22225, - 24, - 153989, - 457309, - 526833, - 227979, - 757167, - 429560, - 0, - 835, - 1702, - 475275, - 798416, - 753, - 0, - 11126, - 145779, - 2006, - 0, - 8182, - 0, - 569432, - 9671, - 36, - 5523, - 407325, - 0, - 65, - 9293, - 0, - 6793, - 468701, - 73, - 0, - 186236, - 0, - 328405, - 125616, - 508013, - 380519, - 599518, - 83, - 151973, - 466906, - 9029, - 159725, - 1316, - 1, - 911532, - 1508, - 19050, - 972850, - 126, - 439377, - 29, - 37928, - 149628, - 54, - 130248, - 2, - 143, - 0, - 716873, - 3327, - 5, - 116131, - 5124, - 559621, - 2886, - 534, - 186432, - 441, - 7348, - 10331, - 1, - 260935, - 7, - 4370, - 405415, - 2, - 84518, - 1970, - 1, - 281910, - 46, - 274, - 2273, - 370565, - 4190, - 820641, - 577970, - 32809, - 974893, - 398067, - 380698, - 4, - 25978, - 153, - 882668, - 312365, - 9523, - 156421, - 0, - 268143, - 6, - 2, - 42987, - 212, - 12303, - 6723, - 1179, - 0, - 120924, - 3877, - 330421, - 310445, - 39264, - 8, - 85380, - 464716, - 0, - 33657, - 6285, - 0, - 4491, - 229, - 50, - 373197, - 6029, - 19, - 86884, - 243745, - 335656, - 90945, - 38973, - 572950, - 164129, - 0, - 3, - 17, - 13579, - 4448, - 47, - 3, - 132966, - 726249, - 498503, - 256, - 0, - 25841, - 0, - 7, - 945380, - 11872, - 69, - 3799, - 77223, - 1914, - 73, - 810968, - 10223, - 257918, - 184252, - 350, - 8101, - 725, - 9, - 2, - 2089, - 175, - 247, - 185964, - 36517, - 3723, - 313465, - 209, - 1300, - 128071, - 7425, - 2436, - 62, - 13753, - 9514, - 41, - 409141, - 46643, - 20866, - 15664, - 388548, - 84692, - 9549, - 610, - 7213, - 14, - 14930, - 244719, - 4748, - 41682, - 401098, - 102506, - 176535, - 0, - 5133, - 548, - 5234, - 56, - 11101, - 87638, - 336579, - 291705, - 640250, - 768165, - 370, - 2809, - 3, - 0, - 445122, - 47190, - 24885, - 143556, - 84, - 504726, - 610020, - 40355, - 902230, - 4360, - 1747, - 3496, - 489501, - 19, - 801601, - 62189, - 48, - 2645, - 320601, - 27304, - 17740, - 344, - 10, - 991, - 925503, - 0, - 315, - 251, - 3611, - 1756, - 683, - 165, - 380132, - 181101, - 453041, - 892056, - 67191, - 252592, - 32407, - 56242, - 8, - 297173, - 542903, - 830334, - 585236, - 422555, - 44769, - 0, - 68, - 4143, - 38754, - 73539, - 44579, - 94001, - 428537, - 38554, - 106612, - 0, - 182987, - 831731, - 3605, - 752851, - 52, - 72, - 120872, - 963754, - 31, - 764, - 240592, - 99101, - 328538, - 440325, - 12211, - 151282, - 353436, - 2991, - 40710, - 5212, - 5106, - 139122, - 148915, - 498505, - 1366, - 516, - 29190, - 17, - 224208, - 40, - 89, - 19190, - 8, - 25377, - 10029, - 720, - 97963, - 0, - 614, - 244567, - 2113, - 903675, - 8388, - 6, - 390705, - 325006, - 284272, - 108086, - 17, - 2628, - 952530, - 20474, - 898276, - 138661, - 3883, - 903, - 569993, - 376918, - 5849, - 103404, - 794499, - 35388, - 5, - 0, - 961626, - 27415, - 1927, - 92036, - 46241, - 35978, - 7426, - 399884, - 29490, - 252655, - 675971, - 3509, - 54170, - 170790, - 831341, - 134579, - 0, - 790422, - 35, - 930830, - 97394, - 20265, - 670, - 38497, - 1759, - 71209, - 93, - 736, - 11, - 886, - 1961, - 7, - 210607, - 62226, - 186736, - 1518, - 5, - 5, - 13, - 66989, - 442321, - 0, - 607939, - 11253, - 210875, - 495530, - 2, - 221136, - 377663, - 372, - 200658, - 18591, - 129783, - 803411, - 867506, - 757446, - 48836, - 34, - 200, - 114983, - 7287, - 22849, - 226669, - 13, - 0, - 20164, - 7828, - 39, - 49448, - 26740, - 185566, - 9927, - 36192, - 91068, - 338368, - 926, - 27746, - 534794, - 936132, - 2922, - 5, - 183162, - 256846, - 242551, - 134318, - 212959, - 167162, - 470, - 477045, - 532116, - 483794, - 733, - 5335, - 83074, - 4686, - 9567, - 1, - 195100, - 40354, - 87338, - 369, - 800, - 0, - 194504, - 469051, - 363532, - 850574, - 5085, - 167027, - 794511, - 124320, - 303231, - 132195, - 13225, - 46333, - 4313, - 89, - 799, - 51482, - 0, - 26, - 12659, - 1045, - 23621, - 0, - 74926, - 490979, - 6, - 3188, - 9448, - 174730, - 38982, - 102317, - 189621, - 853, - 29227, - 43374, - 423, - 420951, - 686, - 128, - 31291, - 0, - 402819, - 663143, - 55903, - 142, - 2, - 331584, - 197164, - 7, - 671983, - 53, - 5020, - 9782, - 123, - 743407, - 1276, - 1115, - 1169, - 122752, - 824690, - 292030, - 2094, - 144626, - 0, - 297278, - 440, - 742, - 95879, - 17682, - 10654, - 31, - 22183, - 746, - 0, - 0, - 11185, - 28, - 394987, - 36, - 474, - 243749, - 1431, - 56702, - 76, - 15619, - 33071, - 12181, - 158647, - 261786, - 1, - 119783, - 48816, - 6278, - 4121, - 61122, - 69, - 48790, - 345335, - 275917, - 964393, - 424, - 586433, - 20519, - 18156, - 756400, - 27736, - 458706, - 1, - 3286, - 929624, - 1883, - 2, - 1086, - 439501, - 552, - 157132, - 5565, - 105061, - 8199, - 23, - 178797, - 0, - 130644, - 1, - 6952, - 754, - 500, - 647683, - 0, - 959079, - 622561, - 1131, - 559783, - 6862, - 175420, - 408671, - 463461, - 55908, - 606496, - 169, - 49060, - 247, - 953, - 333030, - 0, - 23399, - 29193, - 9303, - 15, - 515402, - 34961, - 365856, - 633043, - 173, - 556089, - 1809, - 12215, - 14, - 316, - 20642, - 9, - 15, - 190391, - 951463, - 25059, - 13654, - 385040, - 4272, - 929033, - 208813, - 35166, - 42849, - 662648, - 254811, - 4230, - 812459, - 681, - 390168, - 5381, - 4662, - 173257, - 478863, - 103, - 89332, - 0, - 0, - 589484, - 19369, - 94, - 9, - 639917, - 1110, - 393, - 101040, - 911, - 152899, - 0, - 2, - 0, - 0, - 335691, - 43694, - 62273, - 200121, - 2250, - 621004, - 149918, - 41063, - 218229, - 0, - 497924, - 16832, - 587071, - 0, - 0, - 729918, - 2, - 808513, - 9417, - 718, - 0, - 2769, - 28704, - 1335, - 734726, - 219157, - 786230, - 981004, - 350788, - 884529, - 0, - 87872, - 34647, - 85469, - 4524, - 339838, - 38228, - 0, - 4151, - 1145, - 0, - 351, - 167956, - 810075, - 689, - 251212, - 583068, - 2929, - 189456, - 2089, - 48749, - 278952, - 77134, - 0, - 0, - 45595, - 281829, - 969602, - 43999, - 69824, - 856982, - 61732, - 336, - 25488, - 213, - 46683, - 1909, - 174097, - 57930, - 91466, - 828418, - 95740, - 378828, - 128065, - 68068, - 0, - 13312, - 26006, - 6760, - 51, - 276081, - 640068, - 634985, - 7131, - 784882, - 790126, - 628585, - 205824, - 764965, - 17793, - 3159, - 649924, - 0, - 37383, - 9919, - 353, - 0, - 149003, - 620629, - 95928, - 2560, - 504343, - 1000, - 32, - 43836, - 407031, - 207, - 800894, - 3222, - 51028, - 7, - 6, - 22010, - 0, - 21174, - 12893, - 824932, - 7305, - 70, - 624258, - 372139, - 21504, - 387996, - 418931, - 914268, - 576, - 0, - 0, - 618224, - 787516, - 133014, - 422, - 383124, - 656318, - 4420, - 6082, - 244813, - 38585, - 3200, - 1, - 2, - 11882, - 113, - 45581, - 13121, - 95475, - 807219, - 8195, - 995116, - 13, - 2146, - 369925, - 60103, - 25, - 125165, - 51300, - 4894, - 173261, - 74186, - 1044, - 122992, - 1243, - 21703, - 26294, - 197, - 333825, - 426872, - 719580, - 3598, - 106, - 0, - 9932, - 61509, - 146, - 721428, - 964781, - 319850, - 573802, - 7458, - 317889, - 0, - 133086, - 87836, - 60496, - 304249, - 1565, - 27, - 42, - 899324, - 189637, - 8648, - 104570, - 901598, - 447765, - 24, - 108, - 120127, - 828626, - 8, - 899514, - 28, - 13, - 7576, - 163390, - 1625, - 3023, - 155175, - 2, - 391, - 1, - 493073, - 398, - 210771, - 26266, - 287999, - 38255, - 249666, - 598202, - 119601, - 216933, - 91205, - 0, - 7247, - 77077, - 565383, - 29102, - 253641, - 48855, - 19722, - 463536, - 40182, - 65393, - 829444, - 598402, - 1590, - 798, - 467, - 834847, - 3007, - 13711, - 0, - 195, - 101662, - 255749, - 129201, - 11965, - 1781, - 13349, - 3100, - 718066, - 99, - 712450, - 888215, - 42503, - 43171, - 494946, - 0, - 2175, - 12387, - 25662, - 78, - 739030, - 0, - 19, - 427526, - 4275, - 5583, - 0, - 2447, - 132398, - 26437, - 3873, - 440035, - 21, - 6, - 35432, - 41523, - 7179, - 712703, - 428868, - 2793, - 6, - 286277, - 1882, - 95116, - 2959, - 86, - 115425, - 81386, - 59836, - 37, - 247598, - 34732, - 249, - 500110, - 5589, - 40319, - 575, - 12145, - 385829, - 565600, - 582150, - 92, - 223209, - 0, - 910, - 1048, - 47329, - 90944, - 235, - 8739, - 686685, - 1753, - 126, - 434, - 609477, - 25021, - 6610, - 52675, - 4, - 717846, - 150864, - 418583, - 17751, - 513794, - 181362, - 329556, - 10426, - 717019, - 457, - 616, - 388984, - 17, - 8338, - 59531, - 32, - 99565, - 376146, - 134578, - 966, - 0, - 0, - 174, - 2105, - 555, - 8990, - 298, - 169932, - 247281, - 240918, - 298655, - 158743, - 15994, - 95708, - 51, - 2985, - 4294, - 731934, - 185640, - 1483, - 87, - 742033, - 9, - 1345, - 3680, - 133530, - 9355, - 800111, - 28508, - 0, - 369, - 31681, - 24, - 8237, - 313380, - 4732, - 275423, - 951592, - 0, - 41381, - 225515, - 393004, - 526, - 187, - 19515, - 6006, - 28923, - 310151, - 2390, - 374, - 0, - 19142, - 72, - 114, - 193305, - 24035, - 397067, - 18, - 14839, - 3473, - 164, - 104622, - 378958, - 2218, - 0, - 89053, - 105183, - 312265, - 82146, - 147210, - 3419, - 5178, - 34948, - 46836, - 41319, - 842825, - 595972, - 0, - 249625, - 325, - 608, - 372328, - 119634, - 7504, - 920214, - 7302, - 444532, - 359213, - 27265, - 1755, - 48, - 126799, - 651270, - 818220, - 799493, - 724024, - 64047, - 73699, - 206999, - 209, - 1581, - 0, - 42937, - 301144, - 73416, - 0, - 242058, - 29660, - 3, - 34709, - 162719, - 2863, - 3992, - 5212, - 151814, - 3092, - 198001, - 44331, - 36, - 407, - 364771, - 1349, - 502772, - 214726, - 607, - 388583, - 137660, - 337124, - 13279, - 10549, - 943075, - 164068, - 19157, - 38443, - 26351, - 0, - 67167, - 735, - 46486, - 130305, - 232330, - 744, - 882337, - 2, - 69275, - 126354, - 9370, - 2845, - 299, - 38988, - 37834, - 0, - 306433, - 9139, - 237132, - 0, - 500, - 13462, - 373684, - 107453, - 381924, - 347915, - 4329, - 1668, - 3960, - 370661, - 3614, - 636048, - 0, - 487449, - 64925, - 333894, - 11, - 52192, - 531200, - 155554, - 461, - 1547, - 994361, - 11955, - 321056, - 37425, - 14249, - 69151, - 621862, - 174, - 79607, - 34, - 77577, - 13723, - 267550, - 13801, - 698, - 12, - 171556, - 57354, - 676845, - 0, - 24965, - 908955, - 570483, - 0, - 296387, - 983966, - 85012, - 130298, - 151946, - 384474, - 731455, - 150699, - 772, - 216131, - 346, - 130935, - 3472, - 18, - 426045, - 677262, - 808, - 17030, - 5188, - 0, - 491153, - 67299, - 19, - 60342, - 69, - 0, - 76478, - 95763, - 0, - 28778, - 147869, - 335927, - 27846, - 2163, - 22750, - 162, - 23, - 11391, - 469099, - 5852, - 63, - 0, - 0, - 22193, - 165, - 489007, - 9249, - 12477, - 2841, - 223532, - 13877, - 173, - 3570, - 45477, - 233073, - 23296, - 64377, - 4910, - 8, - 76246, - 411147, - 287411, - 10450, - 3667, - 1, - 500933, - 31363, - 257, - 1705, - 6036, - 49934, - 13738, - 13485, - 61608, - 561978, - 76493, - 16377, - 1817, - 0, - 235600, - 0, - 16347, - 680478, - 5115, - 895607, - 138270, - 369912, - 53110, - 0, - 647083, - 85, - 458681, - 163227, - 52767, - 196, - 267719, - 14047, - 147293, - 814457, - 174896, - 0, - 34138, - 36, - 21575, - 3, - 0, - 0, - 38391, - 2597, - 2, - 1433, - 3807, - 36476, - 287, - 141530, - 29389, - 495655, - 30014, - 0, - 550766, - 11958, - 348, - 226760, - 15, - 251353, - 675788, - 518308, - 215, - 81987, - 409862, - 559596, - 114283, - 4925, - 0, - 17, - 14221, - 0, - 162, - 766370, - 4898, - 998, - 493, - 138418, - 265159, - 12152, - 5229, - 1204, - 1814, - 432530, - 2889, - 144, - 1149, - 35886, - 636931, - 6640, - 1508, - 414118, - 858, - 20039, - 17398, - 3, - 5094, - 6, - 13996, - 6754, - 362, - 451487, - 11471, - 7896, - 330009, - 244269, - 99928, - 0, - 14311, - 9949, - 15251, - 283923, - 123754, - 188360, - 93902, - 854384, - 548001, - 531788, - 26298, - 328479, - 941, - 246535, - 106320, - 28769, - 440, - 4, - 61262, - 55615, - 170, - 989327, - 692534, - 8063, - 445842, - 4434, - 255349, - 117781, - 6, - 9249, - 136216, - 38165, - 307012, - 12, - 2341, - 18062, - 371882, - 662154, - 12623, - 176847, - 332220, - 590935, - 33682, - 0, - 121374, - 67, - 46841, - 495890, - 640, - 19, - 14737, - 11032, - 17, - 5993, - 302562, - 827710, - 165346, - 49607, - 87863, - 308513, - 735300, - 1914, - 2900, - 207308, - 9068, - 83494, - 179, - 417, - 41605, - 74681, - 652171, - 4013, - 29811, - 13966, - 8136, - 78, - 61182, - 674187, - 0, - 331121, - 0, - 18559, - 386, - 77, - 348439, - 975358, - 18, - 33700, - 47396, - 204751, - 2350, - 26503, - 0, - 83653, - 446, - 10844, - 485, - 9241, - 88347, - 232419, - 936900, - 43250, - 2, - 26112, - 811955, - 20723, - 102069, - 42255, - 8431, - 119508, - 4080, - 13565, - 12, - 46110, - 62096, - 638777, - 44025, - 152985, - 13362, - 3, - 12331, - 193337, - 56419, - 14593, - 3837, - 282314, - 403454, - 48589, - 135, - 18350, - 2160, - 90, - 918216, - 7083, - 105534, - 742826, - 399028, - 1470, - 23770, - 480, - 677884, - 340472, - 107406, - 0, - 5002, - 445, - 748948, - 534012, - 592464, - 6539, - 819632, - 3138, - 4, - 39397, - 229683, - 12204, - 2439, - 65131, - 817226, - 22596, - 0, - 1046, - 94638, - 0, - 95403, - 1230, - 790056, - 19976, - 43085, - 14251, - 139187, - 20232, - 693, - 3058, - 27654, - 65690, - 40948, - 15001, - 21089, - 14425, - 322459, - 13571, - 228154, - 536814, - 761221, - 28030, - 2322, - 921, - 1, - 1137, - 187815, - 8, - 34911, - 4527, - 15, - 46, - 78801, - 0, - 73605, - 44, - 28233, - 1370, - 73409, - 198159, - 66586, - 3, - 2576, - 15, - 35460, - 263237, - 44997, - 2873, - 240, - 1781, - 269, - 46, - 272778, - 28404, - 8232, - 417073, - 234591, - 9, - 720349, - 1176, - 16195, - 0, - 9705, - 0, - 14, - 947048, - 163, - 76288, - 1115, - 267020, - 3416, - 414217, - 441004, - 95131, - 765002, - 6196, - 9069, - 27017, - 137039, - 65247, - 266489, - 484945, - 187008, - 45405, - 5700, - 9, - 7751, - 12, - 294, - 3093, - 6350, - 103303, - 6045, - 252345, - 140207, - 22390, - 234867, - 443326, - 1, - 0, - 89972, - 8637, - 427150, - 22146, - 0, - 310432, - 390333, - 10461, - 1632, - 31403, - 908653, - 0, - 6543, - 163479, - 67608, - 195543, - 315889, - 822964, - 383536, - 954954, - 1619, - 241, - 96053, - 104556, - 767302, - 2469, - 12, - 164330, - 78, - 141, - 170519, - 268214, - 53338, - 48342, - 721, - 58980, - 4345, - 1, - 856265, - 87289, - 57219, - 775679, - 123992, - 695804, - 113025, - 832, - 117420, - 16634, - 352, - 24729, - 14973, - 25622, - 131290, - 0, - 22, - 87740, - 5917, - 533, - 2934, - 34261, - 9174, - 0, - 1656, - 764587, - 54652, - 35597, - 36389, - 577889, - 63957, - 26808, - 34556, - 56, - 15641, - 137, - 1, - 3, - 11724, - 197397, - 39027, - 87902, - 320, - 791479, - 7, - 487864, - 0, - 433, - 25733, - 6956, - 15407, - 312557, - 526302, - 383019, - 340215, - 96, - 276158, - 6493, - 135613, - 2000, - 1218, - 930, - 276808, - 273249, - 8896, - 397, - 735095, - 20648, - 2079, - 5349, - 205, - 356313, - 841954, - 8255, - 266874, - 0, - 965, - 287993, - 1549, - 207833, - 75, - 178180, - 39072, - 0, - 43254, - 3847, - 227, - 2712, - 161043, - 463264, - 74720, - 795789, - 12, - 6812, - 202804, - 29379, - 64241, - 132121, - 790622, - 493588, - 0, - 48, - 147352, - 925197, - 38149, - 18380, - 0, - 270280, - 633, - 3373, - 31294, - 7830, - 0, - 0, - 11371, - 56143, - 5393, - 74724, - 495109, - 0, - 18993, - 21524, - 0, - 53889, - 400509, - 204563, - 0, - 11625, - 9635, - 0, - 1678, - 12096, - 59, - 817112, - 10002, - 128209, - 11593, - 17313, - 15200, - 106796, - 261401, - 707077, - 0, - 314030, - 798591, - 14175, - 5668, - 2766, - 0, - 566, - 5543, - 24112, - 154482, - 5642, - 0, - 38410, - 3, - 4, - 700724, - 25024, - 5, - 407, - 564150, - 672, - 143, - 2049, - 574708, - 65858, - 213412, - 3797, - 511, - 30907, - 1212, - 765, - 2127, - 481, - 130048, - 113816, - 39861, - 153169, - 503378, - 523944, - 111, - 55083, - 698, - 275, - 3, - 3195, - 1657, - 0, - 317881, - 6672, - 543, - 153011, - 77240, - 9338, - 889850, - 29518, - 872485, - 181927, - 376086, - 266, - 409, - 4, - 14856, - 31943, - 2448, - 8, - 75, - 383097, - 294366, - 0, - 173084, - 753160, - 66457, - 725783, - 51, - 127651, - 1073, - 12598, - 140080, - 0, - 296375, - 581720, - 217346, - 8272, - 2051, - 185390, - 520645, - 1260, - 13873, - 168040, - 19690, - 103347, - 295011, - 548404, - 48, - 4, - 916417, - 1948, - 621365, - 263245, - 2792, - 86803, - 181193, - 558081, - 50907, - 442770, - 51448, - 340276, - 1346, - 607, - 459627, - 0, - 30, - 73298, - 15389, - 12264, - 2719, - 2936, - 143043, - 209970, - 0, - 42, - 6657, - 317419, - 0, - 32622, - 524000, - 0, - 310331, - 303778, - 268710, - 9, - 10410, - 25343, - 949506, - 784353, - 3861, - 46823, - 251292, - 75008, - 269798, - 87731, - 112813, - 571679, - 385, - 3, - 2811, - 36025, - 9243, - 935128, - 906, - 10688, - 25, - 86757, - 307, - 55, - 22, - 2, - 61, - 620426, - 484530, - 633806, - 0, - 1342, - 9293, - 992181, - 503, - 195433, - 46150, - 893091, - 3207, - 2865, - 72894, - 830299, - 355, - 327479, - 0, - 35573, - 3068, - 15699, - 31187, - 55378, - 416067, - 91721, - 159, - 0, - 255139, - 2104, - 19, - 606757, - 323, - 902659, - 365655, - 400, - 903, - 408, - 385, - 21774, - 701290, - 234426, - 17020, - 950, - 0, - 0, - 429, - 1245, - 405871, - 1097, - 280634, - 74, - 158233, - 1583, - 180333, - 42114, - 575973, - 539327, - 59252, - 121928, - 165, - 148501, - 55757, - 7494, - 127728, - 7832, - 68504, - 619770, - 70995, - 312816, - 7307, - 38265, - 46248, - 363304, - 269442, - 77112, - 448331, - 910442, - 474418, - 152752, - 752, - 104912, - 408492, - 691709, - 632381, - 48519, - 20524, - 344294, - 14670, - 0, - 21607, - 81162, - 181458, - 0, - 908322, - 7261, - 10888, - 58054, - 1788, - 970933, - 5925, - 121553, - 36152, - 588267, - 23615, - 1850, - 30728, - 3599, - 1319, - 6027, - 0, - 32141, - 984156, - 436781, - 15003, - 621407, - 9412, - 562911, - 189740, - 377895, - 656800, - 197, - 14413, - 99382, - 384, - 11480, - 0, - 86118, - 881961, - 1905, - 82061, - 4140, - 741153, - 26, - 687, - 12251, - 10945, - 209267, - 220602, - 135881, - 6, - 237945, - 158, - 5, - 76303, - 81344, - 986042, - 956063, - 30282, - 186055, - 357802, - 12492, - 577476, - 838, - 0, - 11, - 117602, - 0, - 187928, - 96860, - 4268, - 3478, - 818264, - 1649, - 17175, - 272, - 158951, - 440987, - 677594, - 14935, - 37953, - 0, - 198, - 160404, - 12, - 287803, - 2386, - 10, - 271663, - 319152, - 361322, - 68370, - 428, - 182707, - 387429, - 1152, - 360065, - 25218, - 2790, - 42228, - 13, - 110942, - 452491, - 1, - 665638, - 2308, - 1196, - 87306, - 66, - 219, - 0, - 130736, - 334, - 605, - 5979, - 2681, - 0, - 123463, - 11219, - 283681, - 19269, - 553, - 6217, - 130965, - 714409, - 242, - 674833, - 237581, - 133284, - 683, - 1758, - 278193, - 518726, - 44, - 420361, - 325228, - 14955, - 10, - 11994, - 64157, - 1937, - 20214, - 848, - 27804, - 151341, - 79236, - 316393, - 158883, - 1196, - 334, - 22797, - 185955, - 13857, - 397357, - 7948, - 6038, - 0, - 2621, - 16, - 155267, - 44809, - 9171, - 21328, - 12212, - 40200, - 2600, - 439, - 804014, - 10938, - 96135, - 43696, - 158715, - 4, - 284558, - 191, - 270254, - 7923, - 880603, - 21032, - 107700, - 172, - 700823, - 5613, - 78816, - 258290, - 214398, - 821856, - 295325, - 0, - 1, - 23559, - 63895, - 21249, - 717490, - 956952, - 944819, - 793, - 356, - 757716, - 111773, - 394826, - 25665, - 4358, - 640216, - 1152, - 37175, - 150192, - 106071, - 28992, - 67, - 1685, - 134242, - 2, - 102045, - 1457, - 419589, - 6789, - 677, - 94675, - 11300, - 2595, - 8, - 926535, - 265194, - 0, - 886048, - 246242, - 1494, - 191, - 169985, - 649765, - 0, - 201, - 1069, - 679163, - 16627, - 274639, - 84438, - 3, - 1301, - 247496, - 5879, - 710904, - 403652, - 958241, - 361, - 139732, - 6042, - 15985, - 2378, - 267031, - 223767, - 9656, - 241717, - 33863, - 14314, - 205697, - 1274, - 168000, - 621777, - 837913, - 89654, - 659829, - 69, - 503884, - 432717, - 70443, - 110891, - 19655, - 132432, - 620401, - 428, - 0, - 425662, - 0, - 0, - 0, - 194489, - 7601, - 26870, - 0, - 63, - 594, - 12278, - 582479, - 213723, - 424489, - 96446, - 990664, - 46966, - 44137, - 829810, - 104, - 19707, - 16, - 0, - 2499, - 167075, - 140972, - 249283, - 6620, - 68368, - 856414, - 9255, - 14315, - 0, - 11432, - 24329, - 216463, - 299556, - 818401, - 246607, - 697733, - 229, - 144, - 389394, - 664634, - 0, - 19393, - 657903, - 52912, - 952177, - 536931, - 187271, - 17687, - 970155, - 232571, - 234016, - 159980, - 13510, - 32952, - 0, - 0, - 24132, - 18806, - 15624, - 28364, - 472126, - 626978, - 599, - 112843, - 502933, - 915660, - 63920, - 0, - 84, - 10899, - 904823, - 126, - 469132, - 590052, - 195831, - 443113, - 294149, - 15944, - 2271, - 282974, - 211, - 0, - 22934, - 82283, - 49973, - 41707, - 87530, - 0, - 910528, - 0, - 36029, - 423337, - 817512, - 223671, - 27800, - 398847, - 198528, - 1, - 560679, - 518270, - 23033, - 501059, - 0, - 3909, - 272062, - 261581, - 187, - 52043, - 334, - 24354, - 3947, - 8549, - 37863, - 328851, - 963771, - 1, - 3930, - 82416, - 6, - 2943, - 122101, - 82577, - 85, - 89540, - 5135, - 109236, - 18297, - 1, - 177371, - 4541, - 769577, - 178, - 417, - 960566, - 33803, - 911651, - 248160, - 153725, - 43981, - 809174, - 116, - 486900, - 4842, - 148490, - 131534, - 4347, - 239949, - 984096, - 749756, - 429499, - 2794, - 78209, - 18812, - 21111, - 490, - 328042, - 12, - 132119, - 505103, - 353148, - 0, - 373656, - 951244, - 491, - 355778, - 30620, - 317, - 60175, - 220, - 214496, - 41249, - 5169, - 78367, - 506804, - 0, - 1368, - 407, - 295126, - 1288, - 86, - 97614, - 61640, - 244723, - 3, - 0, - 869827, - 527246, - 52, - 107036, - 240739, - 780281, - 113084, - 62009, - 740343, - 483201, - 8649, - 16419, - 1, - 801574, - 95524, - 326126, - 26912, - 877040, - 10262, - 5895, - 0, - 132633, - 59171, - 306347, - 702701, - 196245, - 12642, - 32723, - 24608, - 30287, - 45775, - 18281, - 7587, - 144532, - 5, - 35, - 99862, - 215127, - 170875, - 61461, - 77790, - 5, - 0, - 129358, - 0, - 105084, - 21399, - 42233, - 85397, - 480654, - 555988, - 89575, - 42346, - 20004, - 11102, - 21321, - 185, - 379267, - 849147, - 121514, - 3388, - 33662, - 12, - 164898, - 226, - 274, - 385003, - 365052, - 693376, - 41245, - 9010, - 41594, - 89835, - 10490, - 272, - 128437, - 0, - 122648, - 277, - 116505, - 38372, - 4, - 1376, - 0, - 46317, - 139368, - 36398, - 193899, - 30632, - 26371, - 7548, - 367643, - 954849, - 25889, - 36567, - 176, - 140631, - 4690, - 975031, - 80965, - 500471, - 8442, - 43, - 27758, - 301501, - 3797, - 80, - 384440, - 928477, - 4960, - 24566, - 33245, - 14638, - 228354, - 54347, - 861285, - 12841, - 2, - 157402, - 646747, - 53763, - 1, - 214732, - 49471, - 49757, - 998, - 201135, - 566, - 73512, - 194240, - 391773, - 21510, - 13, - 829894, - 783200, - 565329, - 2101, - 12, - 191043, - 1621, - 18443, - 279, - 294135, - 526503, - 729735, - 4639, - 444138, - 5835, - 12372, - 46362, - 1543, - 870907, - 83262, - 0, - 38331, - 95, - 1194, - 909, - 8053, - 453066, - 845561, - 411, - 3229, - 1, - 158, - 1431, - 835137, - 21774, - 7298, - 148388, - 224649, - 379318, - 520138, - 39781, - 172130, - 362634, - 487495, - 51957, - 158, - 1770, - 7, - 18010, - 1063, - 171484, - 19924, - 279867, - 469956, - 189785, - 0, - 814, - 60580, - 944349, - 18743, - 553235, - 0, - 95475, - 99, - 0, - 5, - 42623, - 178418, - 398940, - 5700, - 69023, - 5786, - 0, - 10531, - 551, - 86308, - 63451, - 32704, - 176903, - 0, - 251689, - 11589, - 25711, - 43437, - 1431, - 304, - 52965, - 34816, - 268688, - 47756, - 825323, - 122608, - 81246, - 69974, - 360515, - 99973, - 143015, - 5063, - 4499, - 34459, - 171982, - 677943, - 489082, - 257515, - 3765, - 5, - 7416, - 602206, - 74122, - 3, - 686204, - 5493, - 28901, - 11349, - 549668, - 257082, - 82000, - 17031, - 1517, - 7442, - 937160, - 722, - 0, - 72952, - 377192, - 438266, - 555, - 31436, - 284, - 56390, - 0, - 585856, - 27635, - 519344, - 126131, - 360273, - 845073, - 0, - 191965, - 55652, - 23, - 112773, - 639025, - 84749, - 0, - 330822, - 7173, - 126217, - 871, - 112112, - 0, - 664, - 530474, - 1, - 379564, - 172617, - 647308, - 0, - 356, - 17, - 84345, - 457, - 0, - 8, - 6, - 136602, - 634424, - 0, - 177298, - 100726, - 91661, - 383792, - 1665, - 43583, - 15775, - 4083, - 4277, - 345749, - 969599, - 65804, - 19327, - 0, - 352514, - 4225, - 9, - 103767, - 0, - 0, - 148436, - 850, - 33, - 2146, - 20153, - 50, - 9063, - 50329, - 348379, - 2569, - 83697, - 37073, - 715486, - 629, - 4753, - 442, - 259203, - 287223, - 48625, - 9, - 70184, - 45946, - 144947, - 0, - 60285, - 28640, - 7626, - 134159, - 33, - 12452, - 150566, - 348293, - 124426, - 353952, - 11, - 22, - 776742, - 29072, - 132168, - 254533, - 319957, - 1602, - 1659, - 209341, - 32847, - 92392, - 753005, - 1392, - 10271, - 28557, - 6717, - 941745, - 0, - 0, - 0, - 78645, - 45320, - 11193, - 1448, - 130626, - 377907, - 795535, - 24285, - 26094, - 266691, - 64449, - 77400, - 191410, - 1, - 1346, - 25224, - 489637, - 47052, - 248592, - 76689, - 0, - 7722, - 47285, - 3152, - 285577, - 0, - 149366, - 264346, - 1, - 208602, - 320459, - 131771, - 1421, - 350, - 723283, - 714934, - 0, - 566439, - 11656, - 34189, - 125484, - 943273, - 15, - 7789, - 0, - 7427, - 464278, - 680924, - 651102, - 87794, - 39640, - 838644, - 964500, - 1, - 1765, - 272604, - 10, - 837347, - 44845, - 130, - 163357, - 4150, - 403331, - 839132, - 44876, - 272792, - 592527, - 57225, - 128826, - 2915, - 2, - 3570, - 2410, - 199, - 171358, - 5931, - 53620, - 55299, - 1868, - 24123, - 165, - 346513, - 16527, - 133, - 517412, - 195700, - 730365, - 896209, - 152760, - 24577, - 65, - 8218, - 349642, - 901345, - 5127, - 5102, - 238318, - 955, - 631921, - 12218, - 55101, - 930381, - 219503, - 469237, - 132, - 16701, - 494, - 199729, - 0, - 32139, - 314, - 172, - 2947, - 106997, - 4871, - 236, - 6146, - 1843, - 128, - 0, - 254240, - 2964, - 14825, - 60624, - 2108, - 286953, - 654931, - 0, - 0, - 396587, - 19852, - 70311, - 363561, - 282, - 17966, - 924254, - 104173, - 130816, - 179096, - 105466, - 136, - 618261, - 358433, - 25587, - 49357, - 102, - 133746, - 620776, - 17084, - 406881, - 802675, - 349, - 69, - 8761, - 278482, - 16336, - 128, - 160096, - 25857, - 280, - 39639, - 726299, - 293905, - 4621, - 41, - 649, - 3655, - 269286, - 578026, - 0, - 11156, - 1, - 744858, - 531, - 48155, - 28435, - 7991, - 447, - 10201, - 379341, - 0, - 5773, - 0, - 295, - 228592, - 331155, - 104089, - 628069, - 29693, - 22, - 13, - 0, - 0, - 554349, - 6082, - 238, - 23, - 151873, - 805937, - 0, - 194076, - 6450, - 3, - 128322, - 69149, - 95511, - 86, - 844368, - 415964, - 51985, - 308686, - 553403, - 624943, - 365800, - 4, - 120263, - 91239, - 195248, - 58010, - 19, - 415112, - 136806, - 42, - 571848, - 55306, - 29454, - 3, - 144926, - 189, - 0, - 161943, - 592155, - 10930, - 279297, - 56932, - 957430, - 10244, - 190296, - 807209, - 781, - 1466, - 235055, - 33, - 196, - 58280, - 436, - 408649, - 221, - 711143, - 10495, - 2441, - 275720, - 2, - 15391, - 132107, - 102610, - 688549, - 237142, - 3041, - 14, - 308623, - 0, - 0, - 287, - 295147, - 61443, - 229, - 207, - 2051, - 64, - 13479, - 55656, - 570134, - 50387, - 225869, - 20615, - 258465, - 64932, - 112461, - 164521, - 907269, - 758563, - 22901, - 0, - 7944, - 48, - 154921, - 2784, - 548608, - 0, - 12524, - 142556, - 0, - 13882, - 507227, - 316598, - 987551, - 0, - 894687, - 1964, - 364, - 10316, - 440269, - 9, - 776723, - 72288, - 54604, - 185101, - 142, - 362, - 11679, - 77, - 79, - 529321, - 364, - 42387, - 0, - 570879, - 417503, - 604871, - 578806, - 1102, - 66584, - 615440, - 146744, - 19441, - 170478, - 144069, - 36170, - 145376, - 842283, - 193612, - 3, - 359429, - 368596, - 0, - 11064, - 7726, - 229410, - 63569, - 67402, - 91, - 203201, - 213513, - 0, - 704479, - 1325, - 0, - 385154, - 13, - 806763, - 197132, - 6183, - 45760, - 99377, - 0, - 972077, - 4043, - 195700, - 34229, - 0, - 154027, - 633, - 6, - 32142, - 0, - 29, - 620842, - 14099, - 495465, - 26937, - 0, - 0, - 432, - 227704, - 0, - 63, - 0, - 19, - 863491, - 20, - 1, - 160713, - 24607, - 85800, - 3566, - 37854, - 81913, - 121573, - 816, - 20, - 133253, - 692231, - 4869, - 255175, - 15028, - 9383, - 542877, - 4608, - 369610, - 243635, - 385285, - 391565, - 286009, - 0, - 61685, - 416318, - 208, - 67019, - 788416, - 88, - 165056, - 0, - 439589, - 160, - 105528, - 152, - 160624, - 865, - 390229, - 714086, - 6007, - 30229, - 481306, - 173266, - 1135, - 2266, - 8, - 59, - 104722, - 647885, - 579471, - 21309, - 230834, - 140278, - 31858, - 3288, - 36011, - 151387, - 594217, - 22439, - 418638, - 76859, - 29363, - 154809, - 275533, - 39, - 472996, - 22076, - 7481, - 155705, - 10406, - 214779, - 223, - 1312, - 16391, - 17203, - 55605, - 44579, - 69332, - 303, - 19217, - 26288, - 126212, - 316, - 98, - 114, - 37382, - 137591, - 439749, - 12972, - 54, - 154879, - 0, - 102680, - 7639, - 309119, - 263550, - 766, - 1124, - 56, - 686608, - 123767, - 518054, - 18, - 672385, - 3161, - 53791, - 26769, - 451670, - 61, - 148245, - 2713, - 96725, - 4794, - 33247, - 297946, - 33380, - 0, - 20034, - 5647, - 17227, - 76444, - 0, - 21011, - 675, - 13226, - 1027, - 990842, - 124459, - 34406, - 53, - 69540, - 134, - 0, - 168521, - 6, - 4075, - 1137, - 63740, - 220, - 10434, - 1171, - 28950, - 0, - 79680, - 993269, - 355622, - 15, - 0, - 1452, - 21667, - 22208, - 494484, - 33984, - 691308, - 10, - 693686, - 196, - 9, - 70676, - 157660, - 775, - 165, - 468432, - 1083, - 515154, - 778344, - 70241, - 42, - 40931, - 277125, - 43837, - 301881, - 1332, - 56712, - 9013, - 1299, - 7564, - 31092, - 1975, - 113517, - 833295, - 245021, - 36503, - 23586, - 149327, - 89175, - 10512, - 484348, - 187793, - 954609, - 53199, - 792175, - 126, - 12369, - 405, - 0, - 6614, - 322857, - 166, - 571874, - 60839, - 180975, - 146722, - 411565, - 1536, - 1, - 11, - 116230, - 60514, - 9003, - 2325, - 43763, - 63, - 355553, - 0, - 389876, - 14672, - 11526, - 160209, - 65, - 10283, - 966, - 10, - 58333, - 129920, - 2850, - 83346, - 0, - 14, - 295819, - 679550, - 143928, - 29489, - 82324, - 36558, - 267118, - 143313, - 90107, - 12789, - 951, - 0, - 187619, - 295317, - 82, - 41326, - 309682, - 907327, - 809358, - 324, - 139157, - 12, - 78366, - 671811, - 354, - 131, - 70525, - 35830, - 281018, - 91456, - 92523, - 54874, - 48273, - 2423, - 0, - 81, - 361314, - 374811, - 394758, - 15350, - 795, - 3, - 16779, - 796684, - 477556, - 73927, - 26643, - 119281, - 62692, - 17039, - 454778, - 952, - 48973, - 19529, - 151, - 239121, - 93509, - 254702, - 1307, - 10029, - 7973, - 546706, - 806644, - 680517, - 223, - 0, - 2, - 0, - 402421, - 619193, - 15685, - 2, - 939715, - 519198, - 0, - 444312, - 23204, - 35669, - 32467, - 0, - 799725, - 5883, - 2217, - 32292, - 355557, - 22179, - 1066, - 15704, - 610, - 37819, - 403626, - 83101, - 10989, - 311607, - 43394, - 72576, - 335450, - 85964, - 73734, - 105142, - 38292, - 0, - 181516, - 33959, - 611797, - 221838, - 5931, - 7666, - 1044, - 477173, - 13591, - 405, - 521, - 190653, - 184191, - 0, - 215, - 847195, - 22782, - 11912, - 27345, - 2572, - 0, - 566350, - 7, - 52302, - 26641, - 587826, - 127, - 2, - 44449, - 153198, - 14, - 926, - 285, - 0, - 938196, - 52255, - 9153, - 807, - 12548, - 358324, - 18521, - 104956, - 42738, - 116, - 135772, - 189554, - 38, - 54, - 36, - 89768, - 17170, - 75, - 34502, - 45489, - 172796, - 971810, - 16153, - 499280, - 1, - 879663, - 53830, - 186, - 539, - 242059, - 268, - 402, - 2732, - 68057, - 18463, - 198560, - 10068, - 591753, - 6116, - 699280, - 1, - 0, - 114258, - 277, - 149, - 283821, - 352561, - 88172, - 684476, - 3450, - 87, - 99936, - 3155, - 72983, - 31619, - 8832, - 58666, - 0, - 59023, - 306091, - 352150, - 255063, - 992708, - 23, - 4896, - 18165, - 424401, - 227613, - 5175, - 347, - 139846, - 11962, - 714, - 3501, - 82367, - 11110, - 10, - 12874, - 0, - 0, - 222712, - 169, - 123281, - 0, - 268149, - 101, - 17446, - 4262, - 489, - 0, - 30, - 0, - 277235, - 28, - 71, - 23, - 61219, - 953631, - 477548, - 662491, - 273, - 44787, - 4130, - 14483, - 470571, - 735977, - 406648, - 815898, - 5985, - 462696, - 937510, - 9, - 0, - 111727, - 93, - 331435, - 336402, - 78690, - 49, - 0, - 87422, - 1242, - 0, - 8783, - 8540, - 314, - 33411, - 805718, - 247, - 6870, - 523743, - 8323, - 612593, - 430, - 354048, - 264913, - 83, - 114063, - 202825, - 35202, - 32823, - 185554, - 85760, - 45159, - 5971, - 267733, - 4545, - 116, - 6910, - 24833, - 218, - 922362, - 221735, - 740, - 7112, - 31, - 15739, - 523589, - 4, - 95996, - 936, - 823951, - 0, - 88, - 160, - 375419, - 663627, - 3741, - 22896, - 114326, - 415962, - 880100, - 6222, - 18650, - 35524, - 195076, - 506, - 451640, - 541336, - 70903, - 3946, - 1, - 61765, - 1, - 2696, - 753129, - 289, - 225234, - 378692, - 1703, - 6751, - 1, - 820, - 7677, - 589, - 12412, - 317, - 69, - 226031, - 134523, - 318253, - 66677, - 111025, - 96, - 0, - 96, - 523528, - 1017, - 0, - 258740, - 420947, - 4600, - 400684, - 12174, - 11770, - 52, - 5959, - 82658, - 531787, - 202, - 548430, - 964, - 1054, - 34, - 96897, - 25445, - 47609, - 386052, - 97004, - 1935, - 30074, - 13458, - 494105, - 54, - 65575, - 594698, - 2340, - 20259, - 84, - 2774, - 534, - 972534, - 115057, - 0, - 11379, - 0, - 271, - 266305, - 132595, - 2, - 773561, - 52365, - 3585, - 351, - 148206, - 778964, - 149379, - 596, - 284914, - 2900, - 35596, - 1547, - 212027, - 8100, - 12248, - 3013, - 1814, - 183415, - 273633, - 15812, - 0, - 966680, - 14830, - 134309, - 0, - 416450, - 206611, - 816, - 82258, - 9873, - 3155, - 53485, - 779805, - 107690, - 254475, - 102504, - 72495, - 17301, - 472130, - 6895, - 245420, - 7299, - 110508, - 27776, - 246134, - 0, - 330853, - 0, - 271767, - 61886, - 24123, - 309681, - 58325, - 608865, - 20666, - 87349, - 229228, - 246, - 457768, - 5374, - 69643, - 148, - 618375, - 45236, - 352565, - 133904, - 152, - 10688, - 18, - 0, - 276036, - 493281, - 11156, - 12566, - 5762, - 113, - 24179, - 98, - 327, - 893, - 209180, - 140805, - 0, - 2341, - 66309, - 30305, - 630559, - 3682, - 152767, - 265822, - 142868, - 1535, - 728603, - 69081, - 353151, - 237995, - 1075, - 925071, - 86, - 6748, - 0, - 684186, - 735, - 13793, - 4790, - 73175, - 69677, - 367627, - 238650, - 303543, - 1, - 26059, - 21392, - 10, - 288609, - 0, - 76345, - 158496, - 7000, - 1865, - 20385, - 0, - 54213, - 9948, - 102667, - 6963, - 71, - 555744, - 5626, - 2512, - 1124, - 7171, - 628, - 29225, - 321687, - 61519, - 4, - 8352, - 9156, -}; - -char *pointers[NCYCLES]; - -int main(void) -{ - int r, i, j, sp, sq; - char *p, *q, *ep, *eq; - int ok; - int err = 0; - - for ( r = 0 ; r < 4 ; r++ ) { - for ( i = 0 ; i < NCYCLES ; i++ ) { - pointers[i] = p = malloc(sp = sizes[i]); - ep = p+sp; - ok = 1; - for ( j = 0 ; j < i ; j++ ) { - q = pointers[j]; - sq = sizes[j]; - eq = q+sq; - - if ( (p < q && ep > q) || (p >= q && p < eq) ) { - ok = 0; - err = 1; - break; - } - } - printf("Allocated %6d bytes at %p, ok = %d\n", sp, p, ok); - - if ( p ) - memset(p, 0xee, sp); /* Poison this memory */ - } - - for ( i = 0 ; i < NCYCLES ; i++ ) { - free(pointers[i]); - printf("Freed %6d bytes at %p\n", sizes[i], pointers[i]); - } - } - - return err; -} - diff --git a/klibc/klibc/tests/malloctest2.c b/klibc/klibc/tests/malloctest2.c deleted file mode 100644 index b392046929..0000000000 --- a/klibc/klibc/tests/malloctest2.c +++ /dev/null @@ -1,60 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#define NCYCLES 32768 -#define NSLOTS 4096 - -struct slot { - char *ptr; - size_t size; -}; - -struct slot s[NSLOTS]; - -int main(void) -{ - size_t sp, sq; - char *p, *ep, *q, *eq; - int r, i, j; - int ok; - int err = 0; - - for ( r = 0 ; r < NCYCLES ; r++ ) { - i = lrand48() % NSLOTS; - - if ( s[i].ptr ) { - free(s[i].ptr); - printf("Freed %8zu bytes at %p\n", s[i].size, s[i].ptr); - s[i].ptr = NULL; - s[i].size = 0; - } else { - sp = lrand48(); /* 32-bit random number */ - sp >>= 12+(lrand48() % 20); - - s[i].size = sp; - s[i].ptr = p = malloc(sp); - ep = p+sp; - ok = 1; - for ( j = 0 ; j < NSLOTS ; j++ ) { - q = s[j].ptr; - if ( i != j && q ) { - sq = s[j].size; - eq = q+sq; - - if ( (p < q && ep > q) || (p >= q && p < eq) ) { - ok = 0; - err = 1; - break; - } - } - } - printf("Allocated %8zu bytes at %p, ok = %d\n", sp, p, ok); - - if ( p ) - memset(p, 0xee, sp); /* Poison this memory */ - } - } - return err; -} - diff --git a/klibc/klibc/tests/memstrtest.c b/klibc/klibc/tests/memstrtest.c deleted file mode 100644 index 70c642c067..0000000000 --- a/klibc/klibc/tests/memstrtest.c +++ /dev/null @@ -1,29 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -int main(void) -{ - unsigned char t1[256], t2[256]; - int i; - int r; - - for(i = 0; i < (int)sizeof(t1); i++) - t1[i] = t2[i] = (unsigned char)i; - - r = memcmp(t1, t2, sizeof(t1)); - printf("memcmp r = %d\n", r); - r = memcmp(t1, t2, sizeof(t1)/2); - printf("memcmp r = %d\n", r); - t1[255] = 0; - r = memcmp(t1, t2, sizeof(t1)); - printf("memcmp r = %d\n", r); - - for (i = 0; i < (int)sizeof(t1); i++) - t1[i] = 0xaa; - memset(t2, 0xaa, sizeof(t2)); - r = memcmp(t1, t2, sizeof(t1)); - printf("memcmp r = %d\n", r); - return 0; -} - diff --git a/klibc/klibc/tests/microhello.c b/klibc/klibc/tests/microhello.c deleted file mode 100644 index f0f5a40379..0000000000 --- a/klibc/klibc/tests/microhello.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <stdio.h> -#include <unistd.h> - -int main(void) -{ - static const char hello[] = "Hello, World!\n"; - _fwrite(hello, sizeof hello-1, stdout); - return 0; -} diff --git a/klibc/klibc/tests/minihello.c b/klibc/klibc/tests/minihello.c deleted file mode 100644 index 7698e0666b..0000000000 --- a/klibc/klibc/tests/minihello.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <stdio.h> - -int main(void) -{ - fputs("Hello, World!\n", stdout); - return 0; -} diff --git a/klibc/klibc/tests/mmaptest.c b/klibc/klibc/tests/mmaptest.c deleted file mode 100644 index a654affb83..0000000000 --- a/klibc/klibc/tests/mmaptest.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * mmaptest.c - * - * Test some simple cases of mmap() - */ - -#include <sys/mman.h> -#include <unistd.h> -#include <stdio.h> -#include <errno.h> -#include <stdint.h> -#include <sys/syscall.h> - -int main(int argc, char *argv[]) -{ - void *foo; - - (void)argc; (void)argv; - - /* Important case, this is how we get memory for malloc() */ - errno = 0; - foo = mmap(0, 65536, PROT_READ|PROT_WRITE, - MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); - - printf("mmap() returned %p, errno = %d\n", foo, errno); - - return 0; -} diff --git a/klibc/klibc/tests/nfs_no_rpc.c b/klibc/klibc/tests/nfs_no_rpc.c deleted file mode 100644 index 5c17706b63..0000000000 --- a/klibc/klibc/tests/nfs_no_rpc.c +++ /dev/null @@ -1,538 +0,0 @@ -#include <sys/types.h> -#include <sys/socket.h> -#include <sys/utsname.h> -#include <sys/mount.h> -#include <netinet/in.h> -#include <unistd.h> -#include <signal.h> -#include <string.h> -#include <stdlib.h> -#include <stdio.h> - -/* Default path we try to mount. "%s" gets replaced by our IP address */ -#define NFS_ROOT "/tftpboot/%s" -#define NFS_DEF_FILE_IO_BUFFER_SIZE 4096 -#define NFS_MAXPATHLEN 1024 -#define NFS_MNT_PROGRAM 100005 -#define NFS_MNT_PORT 627 -#define NFS_PROGRAM 100003 -#define NFS_PORT 2049 -#define NFS2_VERSION 2 -#define NFS3_VERSION 3 -#define NFS_MNT_PROGRAM 100005 -#define NFS_MNT_VERSION 1 -#define NFS_MNT3_VERSION 3 -#define MNTPROC_MNT 1 -#define MOUNTPROC3_MNT 1 -#define RPC_PMAP_PROGRAM 100000 -#define RPC_PMAP_VERSION 2 -#define RPC_PMAP_PORT 111 - -#define NFS2_FHSIZE 32 -#define NFS3_FHSIZE 64 - -#define RPC_VERSION 2 - -enum rpc_msg_type { - RPC_CALL = 0, - RPC_REPLY = 1 -}; - -enum rpc_auth_flavor { - RPC_AUTH_NULL = 0, - RPC_AUTH_UNIX = 1, - RPC_AUTH_SHORT = 2, - RPC_AUTH_DES = 3, - RPC_AUTH_KRB = 4, -}; - -enum rpc_reply_stat { - RPC_MSG_ACCEPTED = 0, - RPC_MSG_DENIED = 1 -}; - -#define NFS_MAXFHSIZE 64 -struct nfs_fh { - unsigned short size; - unsigned char data[NFS_MAXFHSIZE]; -}; - -struct nfs2_fh { - char data[NFS2_FHSIZE]; -}; - -#define NFS_MOUNT_VERSION 4 - -struct nfs_mount_data { - int version; - int fd; - struct nfs2_fh old_root; - int flags; - int rsize; - int wsize; - int timeo; - int retrans; - int acregmin; - int acregmax; - int acdirmin; - int acdirmax; - struct sockaddr_in addr; - char hostname[256]; - int namlen; - unsigned int bsize; - struct nfs_fh root; -}; - -#define NFS_MOUNT_SOFT 0x0001 /* 1 */ -#define NFS_MOUNT_INTR 0x0002 /* 1 */ -#define NFS_MOUNT_SECURE 0x0004 /* 1 */ -#define NFS_MOUNT_POSIX 0x0008 /* 1 */ -#define NFS_MOUNT_NOCTO 0x0010 /* 1 */ -#define NFS_MOUNT_NOAC 0x0020 /* 1 */ -#define NFS_MOUNT_TCP 0x0040 /* 2 */ -#define NFS_MOUNT_VER3 0x0080 /* 3 */ -#define NFS_MOUNT_KERBEROS 0x0100 /* 3 */ -#define NFS_MOUNT_NONLM 0x0200 /* 3 */ -#define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */ -#define NFS_MOUNT_FLAGMASK 0xFFFF - -static char nfs_root_name[256]; -static u_int32_t root_server_addr; -static char root_server_path[256]; - -/* Address of NFS server */ -static u_int32_t servaddr; - -/* Name of directory to mount */ -static char nfs_path[NFS_MAXPATHLEN]; - -/* NFS-related data */ -static struct nfs_mount_data nfs_data = { - .version = NFS_MOUNT_VERSION, - .flags = NFS_MOUNT_NONLM, /* No lockd in nfs root yet */ - .rsize = NFS_DEF_FILE_IO_BUFFER_SIZE, - .wsize = NFS_DEF_FILE_IO_BUFFER_SIZE, - .bsize = 0, - .timeo = 7, - .retrans = 3, - .acregmin = 3, - .acregmax = 60, - .acdirmin = 30, - .acdirmax = 60, -}; -static int nfs_port = -1; -static int mount_port; - -/*************************************************************************** - - Parsing of options - - ***************************************************************************/ - -/* - * The following integer options are recognized - */ -static struct nfs_int_opts { - const char *name; - int *val; -} root_int_opts[] = { - { "port", &nfs_port }, - { "rsize", &nfs_data.rsize }, - { "wsize", &nfs_data.wsize }, - { "timeo", &nfs_data.timeo }, - { "retrans", &nfs_data.retrans }, - { "acregmin", &nfs_data.acregmin }, - { "acregmax", &nfs_data.acregmax }, - { "acdirmin", &nfs_data.acdirmin }, - { "acdirmax", &nfs_data.acdirmax }, - { NULL, NULL } -}; - -/* - * And now the flag options - */ -static struct nfs_bool_opts { - const char *name; - int and_mask; - int or_mask; -} root_bool_opts[] = { - { "soft", ~NFS_MOUNT_SOFT, NFS_MOUNT_SOFT }, - { "hard", ~NFS_MOUNT_SOFT, 0 }, - { "intr", ~NFS_MOUNT_INTR, NFS_MOUNT_INTR }, - { "nointr", ~NFS_MOUNT_INTR, 0 }, - { "posix", ~NFS_MOUNT_POSIX, NFS_MOUNT_POSIX }, - { "noposix", ~NFS_MOUNT_POSIX, 0 }, - { "cto", ~NFS_MOUNT_NOCTO, 0 }, - { "nocto", ~NFS_MOUNT_NOCTO, NFS_MOUNT_NOCTO }, - { "ac", ~NFS_MOUNT_NOAC, 0 }, - { "noac", ~NFS_MOUNT_NOAC, NFS_MOUNT_NOAC }, - { "lock", ~NFS_MOUNT_NONLM, 0 }, - { "nolock", ~NFS_MOUNT_NONLM, NFS_MOUNT_NONLM }, -#ifdef CONFIG_NFS_V3 - { "v2", ~NFS_MOUNT_VER3, 0 }, - { "v3", ~NFS_MOUNT_VER3, NFS_MOUNT_VER3 }, -#endif - { "udp", ~NFS_MOUNT_TCP, 0 }, - { "tcp", ~NFS_MOUNT_TCP, NFS_MOUNT_TCP }, - { "broken_suid",~NFS_MOUNT_BROKEN_SUID, NFS_MOUNT_BROKEN_SUID }, - { NULL, 0, 0 } -}; -/* - * Parse option string. - */ -static void root_nfs_parse(char *name, char *buf) -{ - char *options, *val, *cp; - - if ((options = strchr(name, ','))) { - *options++ = 0; - cp = strtok(options, ","); - while (cp) { - if ((val = strchr(cp, '='))) { - struct nfs_int_opts *opts = root_int_opts; - *val++ = '\0'; - while (opts->name && strcmp(opts->name, cp)) - opts++; - if (opts->name) - *(opts->val) = (int) strtoul(val, NULL, 10); - } else { - struct nfs_bool_opts *opts = root_bool_opts; - while (opts->name && strcmp(opts->name, cp)) - opts++; - if (opts->name) { - nfs_data.flags &= opts->and_mask; - nfs_data.flags |= opts->or_mask; - } - } - cp = strtok(NULL, ","); - } - } - if (name[0] && strcmp(name, "default")) { - strncpy(buf, name, NFS_MAXPATHLEN-1); - buf[NFS_MAXPATHLEN-1] = 0; - } -} - -/* - * Prepare the NFS data structure and parse all options. - */ -static int root_nfs_name(char *name) -{ - char buf[NFS_MAXPATHLEN]; - struct utsname uname_buf; - - /* Set some default values */ - strcpy(buf, NFS_ROOT); - - /* Process options received from the remote server */ - root_nfs_parse(root_server_path, buf); - - /* Override them by options set on kernel command-line */ - root_nfs_parse(name, buf); - - uname(&uname_buf); - if (strlen(buf) + strlen(uname_buf.nodename) > NFS_MAXPATHLEN) { - printf("nfsroot: Pathname for remote directory too long.\n"); - return -1; - } - sprintf(nfs_path, buf, uname_buf.nodename); - - return 1; -} - -/*************************************************************************** - - Routines to actually mount the root directory - - ***************************************************************************/ - -/* - * Construct sockaddr_in from address and port number. - */ -static inline void -set_sockaddr(struct sockaddr_in *sin, u_int32_t addr, u_int16_t port) -{ - memset(sin, 0, sizeof(*sin)); - sin->sin_family = AF_INET; - sin->sin_addr.s_addr = addr; - sin->sin_port = port; -} - -/* - * Extremely crude RPC-over-UDP call. We get an already encoded request - * to pass, we do that and put the reply into buffer. That (and callers - * below - getport, getfh2 and getfh3) should be replaced with proper - * librpc use. Now, if we only had one that wasn't bloated as a dead - * gnu that had lied for a while under the sun... - */ - -static u_int32_t XID; -static int flag; -static void timeout(int n) -{ - (void)n; - flag = 1; -} -static int do_call(struct sockaddr_in *sin, u_int32_t msg[], u_int32_t rmsg[], - u_int32_t len, u_int32_t rlen) -{ - struct sockaddr_in from; - int slen = sizeof(struct sockaddr_in); - struct timeval tv = {1, 0}; - int n; - int fd; - - sysv_signal(SIGALRM, timeout); - fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - if (fd < 0) - goto Esocket; - setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (void*)&tv, sizeof(tv)); - len *= 4; - if (sendto(fd, msg, len, 0, (struct sockaddr *)sin, slen)!=(int)len) - goto Esend; - setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (void*)&tv, sizeof(tv)); - alarm(0); - flag = 0; - alarm(5); - rlen *= 4; - do { - slen = sizeof(from); - n = recvfrom(fd, rmsg, rlen, 0, (struct sockaddr*)&from, &slen); - if (flag || n < 0) - goto Erecv; - } while (memcmp(&from, sin, sizeof(from)) || rmsg[0] != msg[0]); - - if (n < 6*4 || n % 4 || ntohl(rmsg[1]) != 1 || rmsg[2] || - rmsg[3] || rmsg[4] || rmsg[5]) - goto Einval; - alarm(0); - close(fd); - return n / 4 - 6; - -Esend: printf("rpc: write failed\n"); - goto out; -Erecv: printf("rpc: read failed\n"); - goto out; -Einval: printf("rpc: invalid response\n"); - goto out; -Esocket:printf("rpc: can't create socket\n"); - return -1; -out: - alarm(0); - close(fd); - return -1; -} - -enum { - PMAP_GETPORT = 3 -}; - -static void do_header(u_int32_t msg[], u_int32_t prog, u_int32_t vers, u_int32_t proc) -{ - msg[0] = XID++; - msg[1] = htonl(RPC_CALL); - msg[2] = htonl(RPC_VERSION); - msg[3] = htonl(prog); - msg[4] = htonl(vers); - msg[5] = htonl(proc); - msg[6] = htonl(RPC_AUTH_NULL); - msg[7] = htonl(0); - msg[8] = htonl(RPC_AUTH_NULL); - msg[9] = htonl(0); -} - -static int getport(u_int32_t prog, u_int32_t vers, u_int32_t prot) -{ - struct sockaddr_in sin; - unsigned msg[14]; - unsigned rmsg[7]; - int n; - set_sockaddr(&sin, servaddr, htons(RPC_PMAP_PORT)); - do_header(msg, RPC_PMAP_PROGRAM, RPC_PMAP_VERSION, PMAP_GETPORT); - msg[10] = htonl(prog); - msg[11] = htonl(vers); - msg[12] = htonl(prot); - msg[13] = htonl(0); - n = do_call(&sin, msg, rmsg, 14, 7); - if (n <= 0) - return -1; - else - return ntohl(rmsg[6]); -} - -static int getfh2(void) -{ - struct sockaddr_in sin; - unsigned msg[10+1+256/4]; - unsigned rmsg[6 + 1 + NFS2_FHSIZE/4]; - int n; - int len = strlen(nfs_path); - set_sockaddr(&sin, servaddr, mount_port); - - if (len > 255) { - printf("nfsroot: pathname is too long"); - return -1; - } - memset(msg, 0, sizeof(msg)); - do_header(msg, NFS_MNT_PROGRAM, NFS_MNT_VERSION, MNTPROC_MNT); - msg[10] = htonl(len); - strcpy((char*)&msg[11], nfs_path); - n = do_call(&sin, msg, rmsg, 11 + (len + 3)/4, 7 + NFS2_FHSIZE/4); - if (n < 0) - return -1; - if (n != NFS2_FHSIZE/4 + 1) - goto Esize; - if (rmsg[6]) { - printf("nfsroot: mountd returned an error (%d)",htonl(rmsg[6])); - return -1; - } - nfs_data.root.size = NFS2_FHSIZE; - memcpy(nfs_data.root.data, &rmsg[7], NFS2_FHSIZE); - return 0; -Esize: - printf("nfsroot: bad fhandle size"); - return -1; -} - -static int getfh3(void) -{ - struct sockaddr_in sin; - unsigned msg[10+1+256/4]; - unsigned rmsg[6 + 1 + 1 + NFS3_FHSIZE/4]; - int n; - int len = strlen(nfs_path); - int size; - set_sockaddr(&sin, servaddr, mount_port); - - if (len > 255) { - printf("nfsroot: pathname is too long"); - return -1; - } - memset(msg, 0, sizeof(msg)); - do_header(msg, NFS_MNT_PROGRAM, NFS_MNT3_VERSION, MOUNTPROC3_MNT); - msg[10] = htonl(len); - strcpy((char*)&msg[11], nfs_path); - n = do_call(&sin, msg, rmsg, 11 + (len + 3)/4, 8 + NFS3_FHSIZE/4); - if (n < 0) - return -1; - if (n <= 2) - goto Esize; - if (rmsg[6]) { - printf("nfsroot: mountd returned an error (%d)",htonl(rmsg[6])); - return -1; - } - size = ntohl(rmsg[7]); - if (size > NFS3_FHSIZE || n != 2 + size/4) - goto Esize; - nfs_data.root.size = size; - memcpy(nfs_data.root.data, &rmsg[8], size); - return 0; -Esize: - printf("nfsroot: bad fhandle size"); - return -1; -} - -/* - * Use portmapper to find mountd and nfsd port numbers if not overriden - * by the user. Use defaults if portmapper is not available. - * XXX: Is there any nfs server with no portmapper? - */ -static int root_nfs_ports(void) -{ - int port; - int nfsd_ver, mountd_ver; - int proto; - - if (nfs_data.flags & NFS_MOUNT_VER3) { - nfsd_ver = NFS3_VERSION; - mountd_ver = NFS_MNT3_VERSION; - } else { - nfsd_ver = NFS2_VERSION; - mountd_ver = NFS_MNT_VERSION; - } - - proto = (nfs_data.flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP; - - if (nfs_port < 0) { - if ((port = getport(NFS_PROGRAM, nfsd_ver, proto)) < 0) { - printf("nfsroot: Unable to get nfsd port " - "number from server, using default\n"); - port = NFS_PORT; - } - nfs_port = htons(port); - printf("nfsroot: Portmapper on server returned %d " - "as nfsd port\n", port); - } - - if ((port = getport(NFS_MNT_PROGRAM, mountd_ver, proto)) < 0) { - printf("nfsroot: Unable to get mountd port " - "number from server, using default\n"); - port = NFS_MNT_PORT; - } - mount_port = htons(port); - printf("nfsroot: mountd port is %d\n", port); - - return 0; -} - -int main(void) -{ - unsigned char *p; - struct timeval tv; - char *s; - - /* FIX: use getopt() instead of this */ - - s = getenv("root_server_addr"); - if (s) - root_server_addr = strtoul(s, NULL, 10); - s = getenv("root_server_path"); - if (s) - strncpy(root_server_path, s, 255); - s = getenv("nfs_root_name"); - if (s) - strncpy(nfs_root_name, s, 255); - - /* - * Decode the root directory path name and NFS options from - * the kernel command line. This has to go here in order to - * be able to use the client IP address for the remote root - * directory (necessary for pure RARP booting). - */ - if (root_nfs_name(nfs_root_name) < 0) - return 0; - if ((servaddr = root_server_addr) == INADDR_NONE) { - printf("nfsroot: No NFS server available, giving up.\n"); - return 0; - } - - p = (char *) &servaddr; - sprintf(nfs_data.hostname, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); - -#ifdef NFSROOT_DEBUG - printf("nfsroot: Mounting %s on server %s as root\n", - nfs_path, nfs_data.hostname); - printf("nfsroot: rsize = %d, wsize = %d, timeo = %d, retrans = %d\n", - nfs_data.rsize, nfs_data.wsize, nfs_data.timeo, nfs_data.retrans); - printf("nfsroot: acreg (min,max) = (%d,%d), acdir (min,max) = (%d,%d)\n", - nfs_data.acregmin, nfs_data.acregmax, - nfs_data.acdirmin, nfs_data.acdirmax); - printf("nfsroot: nfsd port = %d, mountd port = %d, flags = %08x\n", - nfs_port, mount_port, nfs_data.flags); -#endif - - gettimeofday(&tv, NULL); - XID = (tv.tv_sec << 15) ^ tv.tv_usec; - - if (root_nfs_ports() < 0) - return 0; - if (nfs_data.flags & NFS_MOUNT_VER3) { - if (getfh3()) - return 0; - } else { - if (getfh2()) - return 0; - } - set_sockaddr((struct sockaddr_in *) &nfs_data.addr, servaddr, nfs_port); - return mount("/dev/root", "/mnt", "nfs", 0, &nfs_data) == 0; -} diff --git a/klibc/klibc/tests/opentest.c b/klibc/klibc/tests/opentest.c deleted file mode 100644 index 5a54d2fce2..0000000000 --- a/klibc/klibc/tests/opentest.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <stdio.h> - -int main(void) -{ - char buffer[1024]; - FILE *f; - - f = fopen("/etc/passwd", "r"); - fgets(buffer, 1024, f); - fclose(f); - - printf("Line 1 = %s", buffer); - - return 0; -} - - diff --git a/klibc/klibc/tests/rtsig.c b/klibc/klibc/tests/rtsig.c deleted file mode 100644 index a7f8eed088..0000000000 --- a/klibc/klibc/tests/rtsig.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <stdio.h> -#include <signal.h> - -int main(void) -{ -#ifdef SIGRTMIN - printf("sigrtmin = %d, sigrtmax = %d\n", SIGRTMIN, SIGRTMAX); -#else - printf("No realtime signals\n"); -#endif - return 0; -} diff --git a/klibc/klibc/tests/setenvtest.c b/klibc/klibc/tests/setenvtest.c deleted file mode 100644 index 111bef9dfe..0000000000 --- a/klibc/klibc/tests/setenvtest.c +++ /dev/null @@ -1,38 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <unistd.h> - -int main(int argc, char *argv[]) -{ - (void)argc; (void)argv; - - /* Set SETENV */ - setenv("SETENV", "setenv", 1); - - /* Set PUTENV */ - putenv("PUTENV=putenv"); - - /* Print the results... */ - printf("SETENV = %s\n", getenv("SETENV")); - printf("PUTENV = %s\n", getenv("PUTENV")); - - /* Override tests */ - setenv("SETENV", "setenv_good", 1); - putenv("PUTENV=putenv_good"); - printf("SETENV = %s\n", getenv("SETENV")); - printf("PUTENV = %s\n", getenv("PUTENV")); - - /* Non-override test */ - setenv("SETENV", "setenv_bad", 0); - setenv("NEWENV", "newenv_good", 0); - printf("SETENV = %s\n", getenv("SETENV")); - printf("NEWENV = %s\n", getenv("NEWENV")); - - /* Undef test */ - unsetenv("SETENV"); - unsetenv("NEWENV"); - printf("SETENV = %s\n", getenv("SETENV")); - printf("NEWENV = %s\n", getenv("NEWENV")); - - return 0; -} diff --git a/klibc/klibc/tests/setjmptest.c b/klibc/klibc/tests/setjmptest.c deleted file mode 100644 index a199eedab8..0000000000 --- a/klibc/klibc/tests/setjmptest.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * setjmptest.c - */ - -#include <stdio.h> -#include <setjmp.h> - -static jmp_buf buf; - -void do_stuff(int v) -{ - printf("setjmp returned %d\n", v); - longjmp(buf, v+1); -} - -void recurse(int ctr, int v) -{ - if ( ctr-- ) { - recurse(ctr, v); - } else { - do_stuff(v); - } - _fwrite(".", 1, stdout); -} - -int main(void) -{ - int v; - - v = setjmp(buf); - - if ( v < 256 ) - recurse(v,v); - - return 0; -} diff --git a/klibc/klibc/tests/stat.c b/klibc/klibc/tests/stat.c deleted file mode 100644 index 74b0bddf44..0000000000 --- a/klibc/klibc/tests/stat.c +++ /dev/null @@ -1,65 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <sys/stat.h> -#include <sys/sysmacros.h> -#include <sys/types.h> - -static void do_stat(const char *path) -{ - struct stat st; - - if ( stat(path, &st) ) { - perror(path); - exit(1); - } - - printf("Path = %s\n" - " st_dev = %#jx (%u,%u)\n" - " st_ino = %ju\n" - " st_mode = %#jo\n" - " st_nlink = %ju\n" - " st_uid = %ju\n" - " st_gid = %ju\n" - " st_rdev = %#jx (%u,%u)\n" - " st_size = %ju\n" - " st_blksize = %ju\n" - " st_blocks = %ju\n", - path, - (uintmax_t)st.st_dev, major(st.st_dev), minor(st.st_dev), - (uintmax_t)st.st_ino, - (uintmax_t)st.st_mode, - (uintmax_t)st.st_nlink, - (uintmax_t)st.st_uid, - (uintmax_t)st.st_gid, - (uintmax_t)st.st_rdev, major(st.st_rdev), minor(st.st_rdev), - (uintmax_t)st.st_size, - (uintmax_t)st.st_blksize, - (uintmax_t)st.st_blocks); - -#ifdef _STATBUF_ST_NSEC - printf(" st_atim = %jd.%09u\n" - " st.mtim = %jd.%09u\n" - " st.ctim = %jd.%09u\n", - (uintmax_t)st.st_atim.tv_sec, (unsigned int)st.st_atim.tv_nsec, - (uintmax_t)st.st_mtim.tv_sec, (unsigned int)st.st_mtim.tv_nsec, - (uintmax_t)st.st_ctim.tv_sec, (unsigned int)st.st_ctim.tv_nsec); -#else - printf(" st_atime = %jd\n" - " st.mtime = %jd\n" - " st.ctime = %jd\n", - (uintmax_t)st.st_atime, - (uintmax_t)st.st_mtime, - (uintmax_t)st.st_ctime); -#endif -} - -int main(int argc, char *argv[]) -{ - int i; - - for ( i = 1 ; i < argc ; i++ ) - do_stat(argv[i]); - - return 0; -} diff --git a/klibc/klibc/tests/statfs.c b/klibc/klibc/tests/statfs.c deleted file mode 100644 index 9b7a26d916..0000000000 --- a/klibc/klibc/tests/statfs.c +++ /dev/null @@ -1,43 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <sys/vfs.h> - -static void do_statfs(const char *path) -{ - struct statfs sfs; - - if ( statfs(path, &sfs) ) { - perror(path); - exit(1); - } - - printf("Path = %s\n" - " f_type = %#jx\n" - " f_bsize = %jd\n" - " f_blocks = %jd\n" - " f_bfree = %jd\n" - " f_bavail = %jd\n" - " f_files = %jd\n" - " f_ffree = %jd\n" - " f_namelen = %jd\n", - path, - (uintmax_t)sfs.f_type, - (intmax_t)sfs.f_bsize, - (intmax_t)sfs.f_blocks, - (intmax_t)sfs.f_bfree, - (intmax_t)sfs.f_bavail, - (intmax_t)sfs.f_files, - (intmax_t)sfs.f_ffree, - (intmax_t)sfs.f_namelen); -} - -int main(int argc, char *argv[]) -{ - int i; - - for ( i = 1 ; i < argc ; i++ ) - do_statfs(argv[i]); - - return 0; -} diff --git a/klibc/klibc/tests/strtoimax.c b/klibc/klibc/tests/strtoimax.c deleted file mode 100644 index 5af0d7912b..0000000000 --- a/klibc/klibc/tests/strtoimax.c +++ /dev/null @@ -1,24 +0,0 @@ -/* - * strtoimaxtest.c - */ - -#include <stdio.h> -#include <stdlib.h> -#include <inttypes.h> - -int main(int argc, char *argv[]) -{ - int i; - char *ep; - intmax_t iv; - - for ( i = 1 ; i < argc ; i++ ) { - iv = strtoimax(argv[i], &ep, 0); - printf("strtoimax(\"%s\") = %jd\n", argv[i], iv); - if ( *ep ) - printf(" ep = \"%s\"\n", ep); - } - - return 0; -} - diff --git a/klibc/klibc/tests/strtotime.c b/klibc/klibc/tests/strtotime.c deleted file mode 100644 index 815d40da99..0000000000 --- a/klibc/klibc/tests/strtotime.c +++ /dev/null @@ -1,27 +0,0 @@ -#include <stdio.h> -#include <time.h> - -int main(int argc, char *argv[]) -{ - struct timeval tv; - struct timespec ts; - int i; - const char *rv, *rs; - - for ( i = 1 ; i < argc ; i++ ) { - rs = strtotimespec(argv[i], &ts); - rv = strtotimeval(argv[i], &tv); - printf("String: \"%s\"\n" - "Timespec: %ld.%09ld\n" - "Residual: \"%s\"\n" - "Timeval: %ld.%06ld\n" - "Residual: \"%s\"\n", - argv[i], - (long)ts.tv_sec, (long)ts.tv_nsec, rs, - (long)tv.tv_sec, (long)tv.tv_usec, rv); - } - - return 0; -} - - diff --git a/klibc/klibc/tests/testrand48.c b/klibc/klibc/tests/testrand48.c deleted file mode 100644 index bf046b6bda..0000000000 --- a/klibc/klibc/tests/testrand48.c +++ /dev/null @@ -1,19 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> - -int main(void) -{ - unsigned short seed1[] = { 0x1234, 0x5678, 0x9abc }; - unsigned short *oldseed; - - oldseed = seed48(seed1); - printf("Initial seed: %#06x %#06x %#06x\n", - oldseed[0], oldseed[1], oldseed[2]); - - printf("lrand48() = %ld\n", lrand48()); - - seed48(seed1); - printf("mrand48() = %ld\n", mrand48()); - - return 1; -} diff --git a/klibc/klibc/tests/testvsnp.c b/klibc/klibc/tests/testvsnp.c deleted file mode 100644 index c86e8b30fb..0000000000 --- a/klibc/klibc/tests/testvsnp.c +++ /dev/null @@ -1,115 +0,0 @@ -#include <assert.h> -#include <stdarg.h> -#include <stddef.h> -#include <stdint.h> -#include <string.h> -#include <stdio.h> - -int main(void) -{ - int r, i; - char buffer[512]; - - r = snprintf(buffer, 512, "Hello, %d", 37); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'d", 37373737); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'x", 0xdeadbeef); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'#X", 0xdeadbeef); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'#llo", 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - /* Make sure overflow works correctly */ - memset(buffer, '\xff', 512); - r = snprintf(buffer, 16, "Hello, %'#llo", 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - for ( i = 16 ; i < 512 ; i++ ) - assert ( buffer[i] == '\xff' ); - - r = snprintf(buffer, 512, "Hello, %'#40.20llo", 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'#-40.20llo", 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'#*.*llo", 40, 20, 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'#*.*llo", -40, 20, 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'#*.*llo", -40, -20, 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %'#*.*llx", -40, -20, 0123456701234567ULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %p", &buffer); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %P", &buffer); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %20p", &buffer); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %-20p", &buffer); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 512, "Hello, %-20p", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 20, "Hello, %'-20p", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 15, "Hello, %'-20p", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 3, "Hello, %'-20p", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - /* This shouldn't change buffer in any way! */ - r = snprintf(buffer, 0, "Hello, %'-20p", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - for ( i = -30 ; i <= 30 ; i++ ) { - r = snprintf(buffer, 40, "Hello, %'*p", i, NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - } - - r = snprintf(buffer, 40, "Hello, %'-20s", "String"); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'20s", "String"); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'020s", "String"); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'-20s", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'20s", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'020s", NULL); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'-20c", '*'); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'20c", '*'); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - r = snprintf(buffer, 40, "Hello, %'020c", '*'); - printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); - - return 0; -} - diff --git a/klibc/version b/klibc/version index 21e8796a09..ee90284c27 100644 --- a/klibc/version +++ b/klibc/version @@ -1 +1 @@ -1.0.3 +1.0.4 |