xref: /f-stack/freebsd/libkern/bcd.c (revision 22ce4aff)
1a9643ea8Slogwang /*-
2a9643ea8Slogwang  * Some data-tables that are often used.
3a9643ea8Slogwang  * Cannot be copyrighted.
4a9643ea8Slogwang  */
5a9643ea8Slogwang 
6a9643ea8Slogwang #include <sys/cdefs.h>
7a9643ea8Slogwang __FBSDID("$FreeBSD$");
8a9643ea8Slogwang 
9*22ce4affSfengbojiang #include <sys/param.h>
10a9643ea8Slogwang #include <sys/libkern.h>
11a9643ea8Slogwang 
12a9643ea8Slogwang u_char const bcd2bin_data[] = {
13a9643ea8Slogwang 	 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 0, 0, 0, 0, 0, 0,
14a9643ea8Slogwang 	10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
15a9643ea8Slogwang 	20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
16a9643ea8Slogwang 	30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0,
17a9643ea8Slogwang 	40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, 0,
18a9643ea8Slogwang 	50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 0,
19a9643ea8Slogwang 	60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0,
20a9643ea8Slogwang 	70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
21a9643ea8Slogwang 	80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 0, 0, 0, 0, 0, 0,
22a9643ea8Slogwang 	90, 91, 92, 93, 94, 95, 96, 97, 98, 99
23a9643ea8Slogwang };
24*22ce4affSfengbojiang CTASSERT(nitems(bcd2bin_data) == LIBKERN_LEN_BCD2BIN);
25a9643ea8Slogwang 
26a9643ea8Slogwang u_char const bin2bcd_data[] = {
27a9643ea8Slogwang 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
28a9643ea8Slogwang 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
29a9643ea8Slogwang 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
30a9643ea8Slogwang 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
31a9643ea8Slogwang 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
32a9643ea8Slogwang 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
33a9643ea8Slogwang 	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
34a9643ea8Slogwang 	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
35a9643ea8Slogwang 	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
36a9643ea8Slogwang 	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99
37a9643ea8Slogwang };
38*22ce4affSfengbojiang CTASSERT(nitems(bin2bcd_data) == LIBKERN_LEN_BIN2BCD);
39a9643ea8Slogwang 
40a9643ea8Slogwang /* This is actually used with radix [2..36] */
41a9643ea8Slogwang char const hex2ascii_data[] = "0123456789abcdefghijklmnopqrstuvwxyz";
42*22ce4affSfengbojiang CTASSERT(nitems(hex2ascii_data) == LIBKERN_LEN_HEX2ASCII + 1);
43