From: Damir Tomic Date: Fri, 26 Jun 2015 13:17:10 +0000 (+0200) Subject: smeartest.c: X-Git-Tag: NTP_4_3_53~8^2~2^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b30fd5f7f998d81166e3fe622ef18a8ce80f8f0a;p=thirdparty%2Fntp.git smeartest.c: maybed fixed both funtions, needs checking!!! bk: 558d50d6s08Sw0Mxr8p3Xz0l3Mr0-Q --- diff --git a/tests/sandbox/smeartest.c b/tests/sandbox/smeartest.c index d23975d0c..7e8c1f1ec 100644 --- a/tests/sandbox/smeartest.c +++ b/tests/sandbox/smeartest.c @@ -44,9 +44,9 @@ convertRefIDToLFP(uint32_t r) ); temp.l_ui = (r >> 22) & 0x3; - temp.l_uf = ((uint32_t) ((r >> 14) & 0xFF) << 26) - | ((uint32_t) ((r >> 6) & 0xFF) << 18) - | ((uint32_t) ((r >> 0) & 0x0F) << 10); + temp.l_uf = ((uint32_t) ((r & 0x003FC000) << 10)) + | ((uint32_t) ((r & 0x00003FC0) << 10)) + | ((uint32_t) ((r & 0x0000003F) << 10)); if (temp.l_ui & 2) temp.l_ui |= 0xFFFFFFFEu; @@ -56,21 +56,28 @@ convertRefIDToLFP(uint32_t r) uint32_t -convertLFPToRefID(l_fp num) +convertLFPToRefID(l_fp num) //unfinished { uint32_t temp; temp = (uint8_t) (num.l_ui << 6) | (num.l_uf >> 26); - temp |= (uint8_t) (num.l_uf >> 18); + temp |= (uint8_t) (num.l_uf >> 18); //should I add & 0x?? here or are only the lowest bits taken to unint8_t? temp |= (uint8_t) (num.l_uf >> 10); + printf("%02x %02x %02x %x: ", + (temp >> 22) & 0x3, + (temp >> 14) & 0xff, + (temp >> 6) & 0xff, + (temp & 0x0f) + ); + return temp; } -void rtol(uint32_t r); +//void rtol(uint32_t r); -void +l_fp rtol(uint32_t r) { l_fp l; @@ -79,30 +86,66 @@ rtol(uint32_t r) l = convertRefIDToLFP(r); printf("refid %#x, smear %s\n", r, lfptoa(&l, 8)); - return; + return l; +} + +uint32_t +ltor(l_fp l) +{ + uint32_t r; + + // l = convertRefIDToLFP(htonl(r)); + r = convertLFPToRefID(l); + printf("refid %#x, smear %s\n", r, lfptoa(&l, 8)); + + return r; } main() { - rtol(0xfe800000); - rtol(0xfe800001); - rtol(0xfe8ffffe); - rtol(0xfe8fffff); - rtol(0xfef00000); - rtol(0xfef00001); - rtol(0xfefffffe); - rtol(0xfeffffff); - - rtol(0xfe000000); - rtol(0xfe000001); - rtol(0xfe6ffffe); - rtol(0xfe6fffff); - rtol(0xfe700000); - rtol(0xfe700001); - rtol(0xfe7ffffe); - rtol(0xfe7fffff); + l_fp test1 = rtol(0xfe800000); + l_fp test2= rtol(0xfe800001); + l_fp test3 = rtol(0xfe8ffffe); + l_fp test4 = rtol(0xfe8fffff); + l_fp test6 = rtol(0xfef00000); + l_fp test7 = rtol(0xfef00001); + l_fp test8 = rtol(0xfefffffe); + l_fp test9 = rtol(0xfeffffff); + + l_fp test10 = rtol(0xfe000000); + l_fp test11 = rtol(0xfe000001); + l_fp test12 = rtol(0xfe5ffffe); + l_fp test13 = rtol(0xfe5fffff); + l_fp test14 = rtol(0xfe6ffffe); + l_fp test15 = rtol(0xfe6fffff); + l_fp test16 = rtol(0xfe700000); + l_fp test17 = rtol(0xfe700001); + l_fp test18 = rtol(0xfe7ffffe); + l_fp test19 = rtol(0xfe7fffff); + + printf("\n\n"); + + ltor(test1); + ltor(test2); + ltor(test3); + ltor(test4); + ltor(test6); + ltor(test7); + ltor(test8); + ltor(test9); + + ltor(test10); + ltor(test11); + ltor(test12); + ltor(test13); + ltor(test14); + ltor(test15); + ltor(test16); + ltor(test17); + ltor(test18); + ltor(test19); return 0; }