]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
smeartest.c:
authorDamir Tomic <viperus@ntp.org>
Fri, 26 Jun 2015 13:17:10 +0000 (15:17 +0200)
committerDamir Tomic <viperus@ntp.org>
Fri, 26 Jun 2015 13:17:10 +0000 (15:17 +0200)
  maybed fixed both funtions, needs checking!!!

bk: 558d50d6s08Sw0Mxr8p3Xz0l3Mr0-Q

tests/sandbox/smeartest.c

index d23975d0c679e527e46e58fa9e2ee477ff0609a6..7e8c1f1ec2078aa76809aa22c86307c24aac11ab 100644 (file)
@@ -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;
 }