xref: /freebsd/contrib/ntp/libntp/timevalops.c (revision dd41de95a84d979615a2ef11df6850622bf6184e)
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