1/* $NetBSD: timevalops.c,v 1.5 2020/05/25 20:47:24 christos Exp $ */ 2 3/* 4 * timevalops.c -- calculations on 'struct timeval' values 5 * 6 * Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project. 7 * The contents of 'html/copyright.html' apply. 8 */ 9 10#include <config.h> 11 12#include "timevalops.h" 13 14#ifdef USE_TSF_USEC_TABLES 15/* 16 * Tables to calculate time stamp fractions from usecs. The entries 17 * in these tables are offset into using each of the two low order 18 * bytes plus the next 4 bits in a usec value (from a struct timeval). 19 * These are summed to produce the time stamp fraction. 20 * 21 * Note that these tables are rounded (not truncated) to the nearest 22 * low order bit in the fraction. The timestamp computed should be 23 * +- 1.5 low order bits. 24 */ 25 26const u_int32 ustotslo[256] = { 27 0x00000000, 0x000010c7, 0x0000218e, 0x00003255, 28 0x0000431c, 0x000053e3, 0x000064aa, 0x00007571, 29 0x00008638, 0x000096ff, 0x0000a7c6, 0x0000b88d, 30 0x0000c954, 0x0000da1b, 0x0000eae2, 0x0000fba9, 31 0x00010c6f, 0x00011d36, 0x00012dfd, 0x00013ec4, 32 0x00014f8b, 0x00016052, 0x00017119, 0x000181e0, 33 0x000192a7, 0x0001a36e, 0x0001b435, 0x0001c4fc, 34 0x0001d5c3, 0x0001e68a, 0x0001f751, 0x00020818, 35 0x000218df, 0x000229a6, 0x00023a6d, 0x00024b34, 36 0x00025bfb, 0x00026cc2, 0x00027d89, 0x00028e50, 37 0x00029f17, 0x0002afde, 0x0002c0a5, 0x0002d16c, 38 0x0002e233, 0x0002f2fa, 0x000303c0, 0x00031487, 39 0x0003254e, 0x00033615, 0x000346dc, 0x000357a3, 40 0x0003686a, 0x00037931, 0x000389f8, 0x00039abf, 41 0x0003ab86, 0x0003bc4d, 0x0003cd14, 0x0003dddb, 42 0x0003eea2, 0x0003ff69, 0x00041030, 0x000420f7, 43 0x000431be, 0x00044285, 0x0004534c, 0x00046413, 44 0x000474da, 0x000485a1, 0x00049668, 0x0004a72f, 45 0x0004b7f6, 0x0004c8bd, 0x0004d984, 0x0004ea4b, 46 0x0004fb12, 0x00050bd8, 0x00051c9f, 0x00052d66, 47 0x00053e2d, 0x00054ef4, 0x00055fbb, 0x00057082, 48 0x00058149, 0x00059210, 0x0005a2d7, 0x0005b39e, 49 0x0005c465, 0x0005d52c, 0x0005e5f3, 0x0005f6ba, 50 0x00060781, 0x00061848, 0x0006290f, 0x000639d6, 51 0x00064a9d, 0x00065b64, 0x00066c2b, 0x00067cf2, 52 0x00068db9, 0x00069e80, 0x0006af47, 0x0006c00e, 53 0x0006d0d5, 0x0006e19c, 0x0006f263, 0x0007032a, 54 0x000713f0, 0x000724b7, 0x0007357e, 0x00074645, 55 0x0007570c, 0x000767d3, 0x0007789a, 0x00078961, 56 0x00079a28, 0x0007aaef, 0x0007bbb6, 0x0007cc7d, 57 0x0007dd44, 0x0007ee0b, 0x0007fed2, 0x00080f99, 58 0x00082060, 0x00083127, 0x000841ee, 0x000852b5, 59 0x0008637c, 0x00087443, 0x0008850a, 0x000895d1, 60 0x0008a698, 0x0008b75f, 0x0008c826, 0x0008d8ed, 61 0x0008e9b4, 0x0008fa7b, 0x00090b41, 0x00091c08, 62 0x00092ccf, 0x00093d96, 0x00094e5d, 0x00095f24, 63 0x00096feb, 0x000980b2, 0x00099179, 0x0009a240, 64 0x0009b307, 0x0009c3ce, 0x0009d495, 0x0009e55c, 65 0x0009f623, 0x000a06ea, 0x000a17b1, 0x000a2878, 66 0x000a393f, 0x000a4a06, 0x000a5acd, 0x000a6b94, 67 0x000a7c5b, 0x000a8d22, 0x000a9de9, 0x000aaeb0, 68 0x000abf77, 0x000ad03e, 0x000ae105, 0x000af1cc, 69 0x000b0293, 0x000b1359, 0x000b2420, 0x000b34e7, 70 0x000b45ae, 0x000b5675, 0x000b673c, 0x000b7803, 71 0x000b88ca, 0x000b9991, 0x000baa58, 0x000bbb1f, 72 0x000bcbe6, 0x000bdcad, 0x000bed74, 0x000bfe3b, 73 0x000c0f02, 0x000c1fc9, 0x000c3090, 0x000c4157, 74 0x000c521e, 0x000c62e5, 0x000c73ac, 0x000c8473, 75 0x000c953a, 0x000ca601, 0x000cb6c8, 0x000cc78f, 76 0x000cd856, 0x000ce91d, 0x000cf9e4, 0x000d0aaa, 77 0x000d1b71, 0x000d2c38, 0x000d3cff, 0x000d4dc6, 78 0x000d5e8d, 0x000d6f54, 0x000d801b, 0x000d90e2, 79 0x000da1a9, 0x000db270, 0x000dc337, 0x000dd3fe, 80 0x000de4c5, 0x000df58c, 0x000e0653, 0x000e171a, 81 0x000e27e1, 0x000e38a8, 0x000e496f, 0x000e5a36, 82 0x000e6afd, 0x000e7bc4, 0x000e8c8b, 0x000e9d52, 83 0x000eae19, 0x000ebee0, 0x000ecfa7, 0x000ee06e, 84 0x000ef135, 0x000f01fc, 0x000f12c2, 0x000f2389, 85 0x000f3450, 0x000f4517, 0x000f55de, 0x000f66a5, 86 0x000f776c, 0x000f8833, 0x000f98fa, 0x000fa9c1, 87 0x000fba88, 0x000fcb4f, 0x000fdc16, 0x000fecdd, 88 0x000ffda4, 0x00100e6b, 0x00101f32, 0x00102ff9, 89 0x001040c0, 0x00105187, 0x0010624e, 0x00107315, 90 0x001083dc, 0x001094a3, 0x0010a56a, 0x0010b631 91}; 92 93const u_int32 ustotsmid[256] = { 94 0x00000000, 0x0010c6f8, 0x00218def, 0x003254e7, 95 0x00431bdf, 0x0053e2d6, 0x0064a9ce, 0x007570c5, 96 0x008637bd, 0x0096feb5, 0x00a7c5ac, 0x00b88ca4, 97 0x00c9539c, 0x00da1a93, 0x00eae18b, 0x00fba882, 98 0x010c6f7a, 0x011d3672, 0x012dfd69, 0x013ec461, 99 0x014f8b59, 0x01605250, 0x01711948, 0x0181e03f, 100 0x0192a737, 0x01a36e2f, 0x01b43526, 0x01c4fc1e, 101 0x01d5c316, 0x01e68a0d, 0x01f75105, 0x020817fc, 102 0x0218def4, 0x0229a5ec, 0x023a6ce3, 0x024b33db, 103 0x025bfad3, 0x026cc1ca, 0x027d88c2, 0x028e4fb9, 104 0x029f16b1, 0x02afdda9, 0x02c0a4a0, 0x02d16b98, 105 0x02e23290, 0x02f2f987, 0x0303c07f, 0x03148777, 106 0x03254e6e, 0x03361566, 0x0346dc5d, 0x0357a355, 107 0x03686a4d, 0x03793144, 0x0389f83c, 0x039abf34, 108 0x03ab862b, 0x03bc4d23, 0x03cd141a, 0x03dddb12, 109 0x03eea20a, 0x03ff6901, 0x04102ff9, 0x0420f6f1, 110 0x0431bde8, 0x044284e0, 0x04534bd7, 0x046412cf, 111 0x0474d9c7, 0x0485a0be, 0x049667b6, 0x04a72eae, 112 0x04b7f5a5, 0x04c8bc9d, 0x04d98394, 0x04ea4a8c, 113 0x04fb1184, 0x050bd87b, 0x051c9f73, 0x052d666b, 114 0x053e2d62, 0x054ef45a, 0x055fbb51, 0x05708249, 115 0x05814941, 0x05921038, 0x05a2d730, 0x05b39e28, 116 0x05c4651f, 0x05d52c17, 0x05e5f30e, 0x05f6ba06, 117 0x060780fe, 0x061847f5, 0x06290eed, 0x0639d5e5, 118 0x064a9cdc, 0x065b63d4, 0x066c2acc, 0x067cf1c3, 119 0x068db8bb, 0x069e7fb2, 0x06af46aa, 0x06c00da2, 120 0x06d0d499, 0x06e19b91, 0x06f26289, 0x07032980, 121 0x0713f078, 0x0724b76f, 0x07357e67, 0x0746455f, 122 0x07570c56, 0x0767d34e, 0x07789a46, 0x0789613d, 123 0x079a2835, 0x07aaef2c, 0x07bbb624, 0x07cc7d1c, 124 0x07dd4413, 0x07ee0b0b, 0x07fed203, 0x080f98fa, 125 0x08205ff2, 0x083126e9, 0x0841ede1, 0x0852b4d9, 126 0x08637bd0, 0x087442c8, 0x088509c0, 0x0895d0b7, 127 0x08a697af, 0x08b75ea6, 0x08c8259e, 0x08d8ec96, 128 0x08e9b38d, 0x08fa7a85, 0x090b417d, 0x091c0874, 129 0x092ccf6c, 0x093d9664, 0x094e5d5b, 0x095f2453, 130 0x096feb4a, 0x0980b242, 0x0991793a, 0x09a24031, 131 0x09b30729, 0x09c3ce21, 0x09d49518, 0x09e55c10, 132 0x09f62307, 0x0a06e9ff, 0x0a17b0f7, 0x0a2877ee, 133 0x0a393ee6, 0x0a4a05de, 0x0a5accd5, 0x0a6b93cd, 134 0x0a7c5ac4, 0x0a8d21bc, 0x0a9de8b4, 0x0aaeafab, 135 0x0abf76a3, 0x0ad03d9b, 0x0ae10492, 0x0af1cb8a, 136 0x0b029281, 0x0b135979, 0x0b242071, 0x0b34e768, 137 0x0b45ae60, 0x0b567558, 0x0b673c4f, 0x0b780347, 138 0x0b88ca3e, 0x0b999136, 0x0baa582e, 0x0bbb1f25, 139 0x0bcbe61d, 0x0bdcad15, 0x0bed740c, 0x0bfe3b04, 140 0x0c0f01fc, 0x0c1fc8f3, 0x0c308feb, 0x0c4156e2, 141 0x0c521dda, 0x0c62e4d2, 0x0c73abc9, 0x0c8472c1, 142 0x0c9539b9, 0x0ca600b0, 0x0cb6c7a8, 0x0cc78e9f, 143 0x0cd85597, 0x0ce91c8f, 0x0cf9e386, 0x0d0aaa7e, 144 0x0d1b7176, 0x0d2c386d, 0x0d3cff65, 0x0d4dc65c, 145 0x0d5e8d54, 0x0d6f544c, 0x0d801b43, 0x0d90e23b, 146 0x0da1a933, 0x0db2702a, 0x0dc33722, 0x0dd3fe19, 147 0x0de4c511, 0x0df58c09, 0x0e065300, 0x0e1719f8, 148 0x0e27e0f0, 0x0e38a7e7, 0x0e496edf, 0x0e5a35d6, 149 0x0e6afcce, 0x0e7bc3c6, 0x0e8c8abd, 0x0e9d51b5, 150 0x0eae18ad, 0x0ebedfa4, 0x0ecfa69c, 0x0ee06d94, 151 0x0ef1348b, 0x0f01fb83, 0x0f12c27a, 0x0f238972, 152 0x0f34506a, 0x0f451761, 0x0f55de59, 0x0f66a551, 153 0x0f776c48, 0x0f883340, 0x0f98fa37, 0x0fa9c12f, 154 0x0fba8827, 0x0fcb4f1e, 0x0fdc1616, 0x0fecdd0e, 155 0x0ffda405, 0x100e6afd, 0x101f31f4, 0x102ff8ec, 156 0x1040bfe4, 0x105186db, 0x10624dd3, 0x107314cb, 157 0x1083dbc2, 0x1094a2ba, 0x10a569b1, 0x10b630a9 158}; 159 160const u_int32 ustotshi[16] = { 161 0x00000000, 0x10c6f7a1, 0x218def41, 0x3254e6e2, 162 0x431bde83, 0x53e2d624, 0x64a9cdc4, 0x7570c565, 163 0x8637bd06, 0x96feb4a6, 0xa7c5ac47, 0xb88ca3e8, 164 0xc9539b89, 0xda1a9329, 0xeae18aca, 0xfba8826b 165}; 166 167/* 168 * Tables to convert from a time stamp fraction to usecs. Note that 169 * the units of these tables are actually (usec<<3). We carry three 170 * guard bits so that the result can be properly truncated (or rounded) 171 * to be correct to the least significant bit. 172 * 173 * These tables are rounded. 174 */ 175 176const u_int32 tstoushi[256] = { 177 0x000000, 0x007a12, 0x00f424, 0x016e36, 178 0x01e848, 0x02625a, 0x02dc6c, 0x03567e, 179 0x03d090, 0x044aa2, 0x04c4b4, 0x053ec6, 180 0x05b8d8, 0x0632ea, 0x06acfc, 0x07270e, 181 0x07a120, 0x081b32, 0x089544, 0x090f56, 182 0x098968, 0x0a037a, 0x0a7d8c, 0x0af79e, 183 0x0b71b0, 0x0bebc2, 0x0c65d4, 0x0cdfe6, 184 0x0d59f8, 0x0dd40a, 0x0e4e1c, 0x0ec82e, 185 0x0f4240, 0x0fbc52, 0x103664, 0x10b076, 186 0x112a88, 0x11a49a, 0x121eac, 0x1298be, 187 0x1312d0, 0x138ce2, 0x1406f4, 0x148106, 188 0x14fb18, 0x15752a, 0x15ef3c, 0x16694e, 189 0x16e360, 0x175d72, 0x17d784, 0x185196, 190 0x18cba8, 0x1945ba, 0x19bfcc, 0x1a39de, 191 0x1ab3f0, 0x1b2e02, 0x1ba814, 0x1c2226, 192 0x1c9c38, 0x1d164a, 0x1d905c, 0x1e0a6e, 193 0x1e8480, 0x1efe92, 0x1f78a4, 0x1ff2b6, 194 0x206cc8, 0x20e6da, 0x2160ec, 0x21dafe, 195 0x225510, 0x22cf22, 0x234934, 0x23c346, 196 0x243d58, 0x24b76a, 0x25317c, 0x25ab8e, 197 0x2625a0, 0x269fb2, 0x2719c4, 0x2793d6, 198 0x280de8, 0x2887fa, 0x29020c, 0x297c1e, 199 0x29f630, 0x2a7042, 0x2aea54, 0x2b6466, 200 0x2bde78, 0x2c588a, 0x2cd29c, 0x2d4cae, 201 0x2dc6c0, 0x2e40d2, 0x2ebae4, 0x2f34f6, 202 0x2faf08, 0x30291a, 0x30a32c, 0x311d3e, 203 0x319750, 0x321162, 0x328b74, 0x330586, 204 0x337f98, 0x33f9aa, 0x3473bc, 0x34edce, 205 0x3567e0, 0x35e1f2, 0x365c04, 0x36d616, 206 0x375028, 0x37ca3a, 0x38444c, 0x38be5e, 207 0x393870, 0x39b282, 0x3a2c94, 0x3aa6a6, 208 0x3b20b8, 0x3b9aca, 0x3c14dc, 0x3c8eee, 209 0x3d0900, 0x3d8312, 0x3dfd24, 0x3e7736, 210 0x3ef148, 0x3f6b5a, 0x3fe56c, 0x405f7e, 211 0x40d990, 0x4153a2, 0x41cdb4, 0x4247c6, 212 0x42c1d8, 0x433bea, 0x43b5fc, 0x44300e, 213 0x44aa20, 0x452432, 0x459e44, 0x461856, 214 0x469268, 0x470c7a, 0x47868c, 0x48009e, 215 0x487ab0, 0x48f4c2, 0x496ed4, 0x49e8e6, 216 0x4a62f8, 0x4add0a, 0x4b571c, 0x4bd12e, 217 0x4c4b40, 0x4cc552, 0x4d3f64, 0x4db976, 218 0x4e3388, 0x4ead9a, 0x4f27ac, 0x4fa1be, 219 0x501bd0, 0x5095e2, 0x510ff4, 0x518a06, 220 0x520418, 0x527e2a, 0x52f83c, 0x53724e, 221 0x53ec60, 0x546672, 0x54e084, 0x555a96, 222 0x55d4a8, 0x564eba, 0x56c8cc, 0x5742de, 223 0x57bcf0, 0x583702, 0x58b114, 0x592b26, 224 0x59a538, 0x5a1f4a, 0x5a995c, 0x5b136e, 225 0x5b8d80, 0x5c0792, 0x5c81a4, 0x5cfbb6, 226 0x5d75c8, 0x5defda, 0x5e69ec, 0x5ee3fe, 227 0x5f5e10, 0x5fd822, 0x605234, 0x60cc46, 228 0x614658, 0x61c06a, 0x623a7c, 0x62b48e, 229 0x632ea0, 0x63a8b2, 0x6422c4, 0x649cd6, 230 0x6516e8, 0x6590fa, 0x660b0c, 0x66851e, 231 0x66ff30, 0x677942, 0x67f354, 0x686d66, 232 0x68e778, 0x69618a, 0x69db9c, 0x6a55ae, 233 0x6acfc0, 0x6b49d2, 0x6bc3e4, 0x6c3df6, 234 0x6cb808, 0x6d321a, 0x6dac2c, 0x6e263e, 235 0x6ea050, 0x6f1a62, 0x6f9474, 0x700e86, 236 0x708898, 0x7102aa, 0x717cbc, 0x71f6ce, 237 0x7270e0, 0x72eaf2, 0x736504, 0x73df16, 238 0x745928, 0x74d33a, 0x754d4c, 0x75c75e, 239 0x764170, 0x76bb82, 0x773594, 0x77afa6, 240 0x7829b8, 0x78a3ca, 0x791ddc, 0x7997ee 241}; 242 243const u_int32 tstousmid[256] = { 244 0x0000, 0x007a, 0x00f4, 0x016e, 0x01e8, 0x0262, 0x02dc, 0x0356, 245 0x03d1, 0x044b, 0x04c5, 0x053f, 0x05b9, 0x0633, 0x06ad, 0x0727, 246 0x07a1, 0x081b, 0x0895, 0x090f, 0x0989, 0x0a03, 0x0a7e, 0x0af8, 247 0x0b72, 0x0bec, 0x0c66, 0x0ce0, 0x0d5a, 0x0dd4, 0x0e4e, 0x0ec8, 248 0x0f42, 0x0fbc, 0x1036, 0x10b0, 0x112b, 0x11a5, 0x121f, 0x1299, 249 0x1313, 0x138d, 0x1407, 0x1481, 0x14fb, 0x1575, 0x15ef, 0x1669, 250 0x16e3, 0x175d, 0x17d8, 0x1852, 0x18cc, 0x1946, 0x19c0, 0x1a3a, 251 0x1ab4, 0x1b2e, 0x1ba8, 0x1c22, 0x1c9c, 0x1d16, 0x1d90, 0x1e0a, 252 0x1e84, 0x1eff, 0x1f79, 0x1ff3, 0x206d, 0x20e7, 0x2161, 0x21db, 253 0x2255, 0x22cf, 0x2349, 0x23c3, 0x243d, 0x24b7, 0x2531, 0x25ac, 254 0x2626, 0x26a0, 0x271a, 0x2794, 0x280e, 0x2888, 0x2902, 0x297c, 255 0x29f6, 0x2a70, 0x2aea, 0x2b64, 0x2bde, 0x2c59, 0x2cd3, 0x2d4d, 256 0x2dc7, 0x2e41, 0x2ebb, 0x2f35, 0x2faf, 0x3029, 0x30a3, 0x311d, 257 0x3197, 0x3211, 0x328b, 0x3306, 0x3380, 0x33fa, 0x3474, 0x34ee, 258 0x3568, 0x35e2, 0x365c, 0x36d6, 0x3750, 0x37ca, 0x3844, 0x38be, 259 0x3938, 0x39b3, 0x3a2d, 0x3aa7, 0x3b21, 0x3b9b, 0x3c15, 0x3c8f, 260 0x3d09, 0x3d83, 0x3dfd, 0x3e77, 0x3ef1, 0x3f6b, 0x3fe5, 0x405f, 261 0x40da, 0x4154, 0x41ce, 0x4248, 0x42c2, 0x433c, 0x43b6, 0x4430, 262 0x44aa, 0x4524, 0x459e, 0x4618, 0x4692, 0x470c, 0x4787, 0x4801, 263 0x487b, 0x48f5, 0x496f, 0x49e9, 0x4a63, 0x4add, 0x4b57, 0x4bd1, 264 0x4c4b, 0x4cc5, 0x4d3f, 0x4db9, 0x4e34, 0x4eae, 0x4f28, 0x4fa2, 265 0x501c, 0x5096, 0x5110, 0x518a, 0x5204, 0x527e, 0x52f8, 0x5372, 266 0x53ec, 0x5466, 0x54e1, 0x555b, 0x55d5, 0x564f, 0x56c9, 0x5743, 267 0x57bd, 0x5837, 0x58b1, 0x592b, 0x59a5, 0x5a1f, 0x5a99, 0x5b13, 268 0x5b8d, 0x5c08, 0x5c82, 0x5cfc, 0x5d76, 0x5df0, 0x5e6a, 0x5ee4, 269 0x5f5e, 0x5fd8, 0x6052, 0x60cc, 0x6146, 0x61c0, 0x623a, 0x62b5, 270 0x632f, 0x63a9, 0x6423, 0x649d, 0x6517, 0x6591, 0x660b, 0x6685, 271 0x66ff, 0x6779, 0x67f3, 0x686d, 0x68e7, 0x6962, 0x69dc, 0x6a56, 272 0x6ad0, 0x6b4a, 0x6bc4, 0x6c3e, 0x6cb8, 0x6d32, 0x6dac, 0x6e26, 273 0x6ea0, 0x6f1a, 0x6f94, 0x700f, 0x7089, 0x7103, 0x717d, 0x71f7, 274 0x7271, 0x72eb, 0x7365, 0x73df, 0x7459, 0x74d3, 0x754d, 0x75c7, 275 0x7641, 0x76bc, 0x7736, 0x77b0, 0x782a, 0x78a4, 0x791e, 0x7998 276}; 277 278const u_int32 tstouslo[128] = { 279 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 280 0x08, 0x09, 0x0a, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 281 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 282 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 283 0x1f, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 284 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 285 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x33, 0x34, 286 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 287 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 288 0x45, 0x46, 0x47, 0x48, 0x48, 0x49, 0x4a, 0x4b, 289 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 290 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 291 0x5c, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 292 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 293 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x71, 294 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79 295}; 296#else /* !USE_TSF_USEC_TABLES follows */ 297NONEMPTY_TRANSLATION_UNIT 298#endif /* !USE_TSF_USEC_TABLES */ 299/* -*- EOF -*- */ 300