Code generation of parsing functions now working.
[virt-mem.git] / lib / kernel_net_device.ml
1 let warning =
2   "This code is automatically generated from the kernel database by kerneldb-to-parser program.  Any edits you make will be lost.";;
3 let zero = 0;;
4 exception ParseError of string * string * string;;
5 type t = { dev_addr : string; name : string };;
6 let parser_1 bits = bitmatch bits with
7   | { name : 128 : offset(0), string;
8     dev_addr : 256 : offset(2240), string } -> { name = name;
9     dev_addr = dev_addr }
10   | { _ } -> raise (ParseError ("net_device", "parser_1", "failed to match kernel structure"));;
11 let parser_2 bits = bitmatch bits with
12   | { name : 128 : offset(0), string;
13     dev_addr : 256 : offset(2496), string } -> { name = name;
14     dev_addr = dev_addr }
15   | { _ } -> raise (ParseError ("net_device", "parser_2", "failed to match kernel structure"));;
16 let parser_3 bits = bitmatch bits with
17   | { name : 128 : offset(0), string;
18     dev_addr : 256 : offset(2688), string } -> { name = name;
19     dev_addr = dev_addr }
20   | { _ } -> raise (ParseError ("net_device", "parser_3", "failed to match kernel structure"));;
21 let parser_4 bits = bitmatch bits with
22   | { name : 128 : offset(0), string;
23     dev_addr : 256 : offset(4416), string } -> { name = name;
24     dev_addr = dev_addr }
25   | { _ } -> raise (ParseError ("net_device", "parser_4", "failed to match kernel structure"));;
26 let parser_5 bits = bitmatch bits with
27   | { name : 128 : offset(0), string;
28     dev_addr : 256 : offset(3392), string } -> { name = name;
29     dev_addr = dev_addr }
30   | { _ } -> raise (ParseError ("net_device", "parser_5", "failed to match kernel structure"));;
31 let parser_6 bits = bitmatch bits with
32   | { name : 128 : offset(0), string;
33     dev_addr : 256 : offset(4416), string } -> { name = name;
34     dev_addr = dev_addr }
35   | { _ } -> raise (ParseError ("net_device", "parser_6", "failed to match kernel structure"));;
36 let parser_7 bits = bitmatch bits with
37   | { name : 128 : offset(0), string;
38     dev_addr : 256 : offset(3264), string } -> { name = name;
39     dev_addr = dev_addr }
40   | { _ } -> raise (ParseError ("net_device", "parser_7", "failed to match kernel structure"));;
41 let parser_8 bits = bitmatch bits with
42   | { name : 128 : offset(0), string;
43     dev_addr : 256 : offset(4288), string } -> { name = name;
44     dev_addr = dev_addr }
45   | { _ } -> raise (ParseError ("net_device", "parser_8", "failed to match kernel structure"));;
46 let parser_9 bits = bitmatch bits with
47   | { name : 128 : offset(0), string;
48     dev_addr : 256 : offset(1728), string } -> { name = name;
49     dev_addr = dev_addr }
50   | { _ } -> raise (ParseError ("net_device", "parser_9", "failed to match kernel structure"));;
51 let parser_10 bits = bitmatch bits with
52   | { name : 128 : offset(0), string;
53     dev_addr : 256 : offset(1728), string } -> { name = name;
54     dev_addr = dev_addr }
55   | { _ } -> raise (ParseError ("net_device", "parser_10", "failed to match kernel structure"));;
56 let parser_11 bits = bitmatch bits with
57   | { name : 128 : offset(0), string;
58     dev_addr : 256 : offset(2528), string } -> { name = name;
59     dev_addr = dev_addr }
60   | { _ } -> raise (ParseError ("net_device", "parser_11", "failed to match kernel structure"));;
61 let parser_12 bits = bitmatch bits with
62   | { name : 128 : offset(0), string;
63     dev_addr : 256 : offset(3392), string } -> { name = name;
64     dev_addr = dev_addr }
65   | { _ } -> raise (ParseError ("net_device", "parser_12", "failed to match kernel structure"));;
66 let parser_13 bits = bitmatch bits with
67   | { name : 128 : offset(0), string;
68     dev_addr : 256 : offset(2528), string } -> { name = name;
69     dev_addr = dev_addr }
70   | { _ } -> raise (ParseError ("net_device", "parser_13", "failed to match kernel structure"));;
71 let parser_14 bits = bitmatch bits with
72   | { name : 128 : offset(0), string;
73     dev_addr : 256 : offset(4288), string } -> { name = name;
74     dev_addr = dev_addr }
75   | { _ } -> raise (ParseError ("net_device", "parser_14", "failed to match kernel structure"));;
76 let parser_15 bits = bitmatch bits with
77   | { name : 128 : offset(0), string;
78     dev_addr : 256 : offset(1696), string } -> { name = name;
79     dev_addr = dev_addr }
80   | { _ } -> raise (ParseError ("net_device", "parser_15", "failed to match kernel structure"));;
81 let parser_16 bits = bitmatch bits with
82   | { name : 128 : offset(0), string;
83     dev_addr : 256 : offset(2624), string } -> { name = name;
84     dev_addr = dev_addr }
85   | { _ } -> raise (ParseError ("net_device", "parser_16", "failed to match kernel structure"));;
86 let parser_17 bits = bitmatch bits with
87   | { name : 128 : offset(0), string;
88     dev_addr : 256 : offset(1696), string } -> { name = name;
89     dev_addr = dev_addr }
90   | { _ } -> raise (ParseError ("net_device", "parser_17", "failed to match kernel structure"));;
91 module StringMap = Map.Make(String);;
92 let map = StringMap.empty;;
93 let v = (parser_1, 1284);;
94 let map = StringMap.add "2.6.21-1.3128.fc7.i586" v map;;
95 let v = (parser_2, 1092);;
96 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc" v map;;
97 let v = (parser_1, 1284);;
98 let map = StringMap.add "2.6.21-1.3128.fc7.i686" v map;;
99 let v = (parser_1, 1284);;
100 let map = StringMap.add "2.6.21-1.3132.fc7.i686" v map;;
101 let v = (parser_2, 1092);;
102 let map = StringMap.add "2.6.21-1.3236.fc8.ppc" v map;;
103 let v = (parser_1, 1116);;
104 let map = StringMap.add "2.6.21-1.3228.fc7.i586" v map;;
105 let v = (parser_3, 1108);;
106 let map = StringMap.add "2.6.18-1.2798.fc6.x86_64" v map;;
107 let v = (parser_4, 2316);;
108 let map = StringMap.add "2.6.21-1.3236.fc8.x86_64" v map;;
109 let v = (parser_5, 1684);;
110 let map = StringMap.add "2.6.21-1.3228.fc7.ppc64" v map;;
111 let v = (parser_3, 1404);;
112 let map = StringMap.add "2.6.21-1.3228.fc7.x86_64" v map;;
113 let v = (parser_4, 2316);;
114 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.x86_64" v map;;
115 let v = (parser_5, 1924);;
116 let map = StringMap.add "2.6.21-1.3144.fc7.ppc64" v map;;
117 let v = (parser_6, 2044);;
118 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc64" v map;;
119 let v = (parser_7, 1408);;
120 let map = StringMap.add "2.6.21-1.3236.fc8.i686" v map;;
121 let v = (parser_5, 1924);;
122 let map = StringMap.add "2.6.21-1.3132.fc7.ppc64" v map;;
123 let v = (parser_1, 1116);;
124 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
125 let v = (parser_8, 2288);;
126 let map = StringMap.add "2.6.24-9.fc9.x86_64" v map;;
127 let v = (parser_6, 2044);;
128 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc64" v map;;
129 let v = (parser_5, 1924);;
130 let map = StringMap.add "2.6.21-1.3132.fc7.ppc64" v map;;
131 let v = (parser_1, 912);;
132 let map = StringMap.add "2.6.18-1.2798.fc6.i586" v map;;
133 let v = (parser_9, 1020);;
134 let map = StringMap.add "2.6.21-1.3132.fc7.ppc" v map;;
135 let v = (parser_1, 912);;
136 let map = StringMap.add "2.6.18-1.2798.fc6.i686" v map;;
137 let v = (parser_8, 1752);;
138 let map = StringMap.add "2.6.25.11-97.fc9.x86_64" v map;;
139 let v = (parser_10, 672);;
140 let map = StringMap.add "2.6.18-1.2798.fc6.i686" v map;;
141 let v = (parser_11, 1244);;
142 let map = StringMap.add "2.6.24-9.fc9.i686" v map;;
143 let v = (parser_7, 1408);;
144 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.i686" v map;;
145 let v = (parser_6, 2044);;
146 let map = StringMap.add "2.6.21-1.3236.fc8.ppc64" v map;;
147 let v = (parser_2, 1116);;
148 let map = StringMap.add "2.6.21-1.3209.fc8.ppc" v map;;
149 let v = (parser_6, 2044);;
150 let map = StringMap.add "2.6.21-1.3236.fc8.ppc64" v map;;
151 let v = (parser_5, 1684);;
152 let map = StringMap.add "2.6.21-1.3228.fc7.ppc64" v map;;
153 let v = (parser_5, 1924);;
154 let map = StringMap.add "2.6.21-1.3128.fc7.ppc64" v map;;
155 let v = (parser_7, 1408);;
156 let map = StringMap.add "2.6.21-1.3209.fc8.i686" v map;;
157 let v = (parser_12, 2196);;
158 let map = StringMap.add "2.6.21-1.3132.fc7.x86_64" v map;;
159 let v = (parser_12, 2196);;
160 let map = StringMap.add "2.6.21-1.3228.fc7.x86_64" v map;;
161 let v = (parser_13, 1072);;
162 let map = StringMap.add "2.6.24-9.fc9.ppc" v map;;
163 let v = (parser_9, 672);;
164 let map = StringMap.add "2.6.18-1.2798.fc6.ppc" v map;;
165 let v = (parser_9, 1020);;
166 let map = StringMap.add "2.6.21-1.3128.fc7.ppc" v map;;
167 let v = (parser_7, 1408);;
168 let map = StringMap.add "2.6.21-1.3209.fc8.i686" v map;;
169 let v = (parser_12, 1540);;
170 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
171 let v = (parser_9, 1020);;
172 let map = StringMap.add "2.6.21-1.3144.fc7.ppc" v map;;
173 let v = (parser_5, 1924);;
174 let map = StringMap.add "2.6.21-1.3144.fc7.ppc64" v map;;
175 let v = (parser_14, 1984);;
176 let map = StringMap.add "2.6.24-9.fc9.ppc64" v map;;
177 let v = (parser_9, 996);;
178 let map = StringMap.add "2.6.21-1.3128.fc7.ppc" v map;;
179 let v = (parser_12, 1260);;
180 let map = StringMap.add "2.6.18-1.2798.fc6.x86_64" v map;;
181 let v = (parser_9, 996);;
182 let map = StringMap.add "2.6.21-1.3132.fc7.ppc" v map;;
183 let v = (parser_9, 936);;
184 let map = StringMap.add "2.6.21-1.3228.fc7.ppc" v map;;
185 let v = (parser_14, 1984);;
186 let map = StringMap.add "2.6.24-9.fc9.ppc64" v map;;
187 let v = (parser_5, 1260);;
188 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64" v map;;
189 let v = (parser_3, 2124);;
190 let map = StringMap.add "2.6.21-1.3128.fc7.x86_64" v map;;
191 let v = (parser_1, 912);;
192 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
193 let v = (parser_12, 2196);;
194 let map = StringMap.add "2.6.21-1.3144.fc7.x86_64" v map;;
195 let v = (parser_5, 1260);;
196 let map = StringMap.add "2.6.20-1.2933.fc6.ppc64" v map;;
197 let v = (parser_2, 1116);;
198 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc" v map;;
199 let v = (parser_2, 1092);;
200 let map = StringMap.add "2.6.21-1.3209.fc8.ppc" v map;;
201 let v = (parser_12, 1260);;
202 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
203 let v = (parser_1, 1284);;
204 let map = StringMap.add "2.6.21-1.3132.fc7.i586" v map;;
205 let v = (parser_1, 1284);;
206 let map = StringMap.add "2.6.21-1.3144.fc7.i586" v map;;
207 let v = (parser_12, 1660);;
208 let map = StringMap.add "2.6.21-1.3228.fc7.x86_64" v map;;
209 let v = (parser_5, 1260);;
210 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64iseries" v map;;
211 let v = (parser_15, 668);;
212 let map = StringMap.add "2.6.20-1.2933.fc6.ppc" v map;;
213 let v = (parser_1, 1284);;
214 let map = StringMap.add "2.6.21-1.3144.fc7.i686" v map;;
215 let v = (parser_1, 1116);;
216 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
217 let v = (parser_7, 1408);;
218 let map = StringMap.add "2.6.21-1.3209.fc8.i586" v map;;
219 let v = (parser_5, 1260);;
220 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64iseries" v map;;
221 let v = (parser_1, 1284);;
222 let map = StringMap.add "2.6.21-1.3144.fc7.i686" v map;;
223 let v = (parser_16, 1100);;
224 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
225 let v = (parser_12, 1260);;
226 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
227 let v = (parser_12, 1260);;
228 let map = StringMap.add "2.6.18-1.2798.fc6.x86_64" v map;;
229 let v = (parser_3, 2124);;
230 let map = StringMap.add "2.6.21-1.3144.fc7.x86_64" v map;;
231 let v = (parser_9, 688);;
232 let map = StringMap.add "2.6.20-1.2933.fc6.ppc" v map;;
233 let v = (parser_11, 1244);;
234 let map = StringMap.add "2.6.24-9.fc9.i686" v map;;
235 let v = (parser_1, 924);;
236 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
237 let v = (parser_11, 1212);;
238 let map = StringMap.add "2.6.25.11-97.fc9.i686" v map;;
239 let v = (parser_1, 1284);;
240 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
241 let v = (parser_1, 1284);;
242 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
243 let v = (parser_1, 1284);;
244 let map = StringMap.add "2.6.21-1.3128.fc7.i686" v map;;
245 let v = (parser_9, 996);;
246 let map = StringMap.add "2.6.21-1.3144.fc7.ppc" v map;;
247 let v = (parser_1, 912);;
248 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
249 let v = (parser_4, 2316);;
250 let map = StringMap.add "2.6.21-1.3209.fc8.x86_64" v map;;
251 let v = (parser_1, 912);;
252 let map = StringMap.add "2.6.20-1.2933.fc6.i586" v map;;
253 let v = (parser_3, 2124);;
254 let map = StringMap.add "2.6.21-1.3132.fc7.x86_64" v map;;
255 let v = (parser_1, 912);;
256 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
257 let v = (parser_5, 1260);;
258 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64" v map;;
259 let v = (parser_1, 912);;
260 let map = StringMap.add "2.6.18-1.2798.fc6.i686" v map;;
261 let v = (parser_9, 836);;
262 let map = StringMap.add "2.6.21-1.3228.fc7.ppc" v map;;
263 let v = (parser_7, 1408);;
264 let map = StringMap.add "2.6.21-1.3236.fc8.i686" v map;;
265 let v = (parser_2, 1116);;
266 let map = StringMap.add "2.6.21-1.3236.fc8.ppc" v map;;
267 let v = (parser_17, 668);;
268 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
269 let v = (parser_11, 1244);;
270 let map = StringMap.add "2.6.24-9.fc9.i586" v map;;
271 let v = (parser_12, 2196);;
272 let map = StringMap.add "2.6.21-1.3128.fc7.x86_64" v map;;
273 let v = (parser_5, 1260);;
274 let map = StringMap.add "2.6.20-1.2933.fc6.ppc64" v map;;
275 let v = (parser_13, 1048);;
276 let map = StringMap.add "2.6.24-9.fc9.ppc" v map;;
277 let v = (parser_5, 1924);;
278 let map = StringMap.add "2.6.21-1.3128.fc7.ppc64" v map;;
279 let v = (parser_6, 2044);;
280 let map = StringMap.add "2.6.21-1.3209.fc8.ppc64" v map;;
281 let v = (parser_9, 688);;
282 let map = StringMap.add "2.6.18-1.2798.fc6.ppc" v map;;
283 let v = (parser_7, 1408);;
284 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.i686" v map;;
285 let v = (parser_1, 924);;
286 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
287 let v = (parser_6, 2044);;
288 let map = StringMap.add "2.6.21-1.3209.fc8.ppc64" v map;;
289 type kernel_version = string;;
290 let known version = StringMap.mem version map;;
291 let size version = let (_, size) = StringMap.find version map in size;;
292 let of_bits version bits =
293   let (parsefn, _) = StringMap.find version map in parsefn bits;;
294 let get version mem addr =
295   let (parsefn, size) = StringMap.find version map in
296   let addr = Virt_mem_mmap.unsafe_addr_of_typed_addr addr in
297   let bytes = Virt_mem_mmap.get_bytes mem addr size in
298   let bits = Bitstring.bitstring_of_string bytes in parsefn bits;;