1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #include <sys/param.h>
36 #include <ufs/ffs/fs.h>
37
38
39
40
41
42 const int around[9] = {
43 0x3, 0x7, 0xf, 0x1f, 0x3f, 0x7f, 0xff, 0x1ff, 0x3ff
44 };
45 const int inside[9] = {
46 0x0, 0x2, 0x6, 0xe, 0x1e, 0x3e, 0x7e, 0xfe, 0x1fe
47 };
48
49
50
51
52
53
54
55
56
57
58
59
60
61 const u_char fragtbl124[256] = {
62 0x00, 0x16, 0x16, 0x2a, 0x16, 0x16, 0x26, 0x4e,
63 0x16, 0x16, 0x16, 0x3e, 0x2a, 0x3e, 0x4e, 0x8a,
64 0x16, 0x16, 0x16, 0x3e, 0x16, 0x16, 0x36, 0x5e,
65 0x16, 0x16, 0x16, 0x3e, 0x3e, 0x3e, 0x5e, 0x9e,
66 0x16, 0x16, 0x16, 0x3e, 0x16, 0x16, 0x36, 0x5e,
67 0x16, 0x16, 0x16, 0x3e, 0x3e, 0x3e, 0x5e, 0x9e,
68 0x2a, 0x3e, 0x3e, 0x2a, 0x3e, 0x3e, 0x2e, 0x6e,
69 0x3e, 0x3e, 0x3e, 0x3e, 0x2a, 0x3e, 0x6e, 0xaa,
70 0x16, 0x16, 0x16, 0x3e, 0x16, 0x16, 0x36, 0x5e,
71 0x16, 0x16, 0x16, 0x3e, 0x3e, 0x3e, 0x5e, 0x9e,
72 0x16, 0x16, 0x16, 0x3e, 0x16, 0x16, 0x36, 0x5e,
73 0x16, 0x16, 0x16, 0x3e, 0x3e, 0x3e, 0x5e, 0x9e,
74 0x26, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x26, 0x6e,
75 0x36, 0x36, 0x36, 0x3e, 0x2e, 0x3e, 0x6e, 0xae,
76 0x4e, 0x5e, 0x5e, 0x6e, 0x5e, 0x5e, 0x6e, 0x4e,
77 0x5e, 0x5e, 0x5e, 0x7e, 0x6e, 0x7e, 0x4e, 0xce,
78 0x16, 0x16, 0x16, 0x3e, 0x16, 0x16, 0x36, 0x5e,
79 0x16, 0x16, 0x16, 0x3e, 0x3e, 0x3e, 0x5e, 0x9e,
80 0x16, 0x16, 0x16, 0x3e, 0x16, 0x16, 0x36, 0x5e,
81 0x16, 0x16, 0x16, 0x3e, 0x3e, 0x3e, 0x5e, 0x9e,
82 0x16, 0x16, 0x16, 0x3e, 0x16, 0x16, 0x36, 0x5e,
83 0x16, 0x16, 0x16, 0x3e, 0x3e, 0x3e, 0x5e, 0x9e,
84 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x7e,
85 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x7e, 0xbe,
86 0x2a, 0x3e, 0x3e, 0x2a, 0x3e, 0x3e, 0x2e, 0x6e,
87 0x3e, 0x3e, 0x3e, 0x3e, 0x2a, 0x3e, 0x6e, 0xaa,
88 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x7e,
89 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x7e, 0xbe,
90 0x4e, 0x5e, 0x5e, 0x6e, 0x5e, 0x5e, 0x6e, 0x4e,
91 0x5e, 0x5e, 0x5e, 0x7e, 0x6e, 0x7e, 0x4e, 0xce,
92 0x8a, 0x9e, 0x9e, 0xaa, 0x9e, 0x9e, 0xae, 0xce,
93 0x9e, 0x9e, 0x9e, 0xbe, 0xaa, 0xbe, 0xce, 0x8a,
94 };
95
96 const u_char fragtbl8[256] = {
97 0x00, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x04,
98 0x01, 0x01, 0x01, 0x03, 0x02, 0x03, 0x04, 0x08,
99 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x05,
100 0x02, 0x03, 0x03, 0x02, 0x04, 0x05, 0x08, 0x10,
101 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x05,
102 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x05, 0x09,
103 0x02, 0x03, 0x03, 0x02, 0x03, 0x03, 0x02, 0x06,
104 0x04, 0x05, 0x05, 0x06, 0x08, 0x09, 0x10, 0x20,
105 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x05,
106 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x05, 0x09,
107 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x05,
108 0x03, 0x03, 0x03, 0x03, 0x05, 0x05, 0x09, 0x11,
109 0x02, 0x03, 0x03, 0x02, 0x03, 0x03, 0x02, 0x06,
110 0x03, 0x03, 0x03, 0x03, 0x02, 0x03, 0x06, 0x0a,
111 0x04, 0x05, 0x05, 0x06, 0x05, 0x05, 0x06, 0x04,
112 0x08, 0x09, 0x09, 0x0a, 0x10, 0x11, 0x20, 0x40,
113 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x05,
114 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x05, 0x09,
115 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x05,
116 0x03, 0x03, 0x03, 0x03, 0x05, 0x05, 0x09, 0x11,
117 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x05,
118 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x05, 0x09,
119 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07,
120 0x05, 0x05, 0x05, 0x07, 0x09, 0x09, 0x11, 0x21,
121 0x02, 0x03, 0x03, 0x02, 0x03, 0x03, 0x02, 0x06,
122 0x03, 0x03, 0x03, 0x03, 0x02, 0x03, 0x06, 0x0a,
123 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07,
124 0x02, 0x03, 0x03, 0x02, 0x06, 0x07, 0x0a, 0x12,
125 0x04, 0x05, 0x05, 0x06, 0x05, 0x05, 0x06, 0x04,
126 0x05, 0x05, 0x05, 0x07, 0x06, 0x07, 0x04, 0x0c,
127 0x08, 0x09, 0x09, 0x0a, 0x09, 0x09, 0x0a, 0x0c,
128 0x10, 0x11, 0x11, 0x12, 0x20, 0x21, 0x40, 0x80,
129 };
130
131
132
133
134 const u_char *fragtbl[MAXFRAG + 1] = {
135 0, fragtbl124, fragtbl124, 0, fragtbl124, 0, 0, 0, fragtbl8,
136 };