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