a13e5373936e524489807c6ae25b2481ee8aa766
[virt-mem.git] / lib / kernel_task_struct.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 =
6   { task_struct_active_mm : Virt_mem_mmap.addr; task_struct_comm : string;
7     task_struct_mm : Virt_mem_mmap.addr; task_struct_normal_prio : int64;
8     task_struct_pid : int64; task_struct_prio : int64;
9     task_struct_state : int64; task_struct_static_prio : int64;
10     task_struct_tasks'next : Virt_mem_mmap.addr;
11     task_struct_tasks'prev : Virt_mem_mmap.addr
12   };;
13 let parser_1 bits = bitmatch bits with
14   | { task_struct_state : zero+32 : offset(0), littleendian;
15     task_struct_prio : zero+32 : offset(192), littleendian;
16     task_struct_static_prio : zero+32 : offset(224), littleendian;
17     task_struct_normal_prio : zero+32 : offset(256), littleendian;
18     task_struct_tasks'next : zero+32 : offset(992), littleendian;
19     task_struct_tasks'prev : zero+32 : offset(1024), littleendian;
20     task_struct_mm : zero+32 : offset(1056), littleendian;
21     task_struct_active_mm : zero+32 : offset(1088), littleendian;
22     task_struct_pid : zero+32 : offset(1344), littleendian;
23     task_struct_comm : 128 : offset(3232), string } -> { task_struct_state = task_struct_state;
24     task_struct_prio = task_struct_prio;
25     task_struct_static_prio = task_struct_static_prio;
26     task_struct_normal_prio = task_struct_normal_prio;
27     task_struct_tasks'next = Int64.sub task_struct_tasks'next 124L;
28     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 128L;
29     task_struct_mm = task_struct_mm;
30     task_struct_active_mm = task_struct_active_mm;
31     task_struct_pid = task_struct_pid;
32     task_struct_comm = task_struct_comm }
33   | { _ } -> raise (ParseError ("task_struct", "parser_1", "failed to match kernel structure"));;
34 let parser_2 bits = bitmatch bits with
35   | { task_struct_state : zero+32 : offset(0), bigendian;
36     task_struct_prio : zero+32 : offset(160), bigendian;
37     task_struct_static_prio : zero+32 : offset(192), bigendian;
38     task_struct_normal_prio : zero+32 : offset(224), bigendian;
39     task_struct_tasks'next : zero+32 : offset(2176), bigendian;
40     task_struct_tasks'prev : zero+32 : offset(2208), bigendian;
41     task_struct_mm : zero+32 : offset(2240), bigendian;
42     task_struct_active_mm : zero+32 : offset(2272), bigendian;
43     task_struct_pid : zero+32 : offset(2528), bigendian;
44     task_struct_comm : 128 : offset(4416), string } -> { task_struct_state = task_struct_state;
45     task_struct_prio = task_struct_prio;
46     task_struct_static_prio = task_struct_static_prio;
47     task_struct_normal_prio = task_struct_normal_prio;
48     task_struct_tasks'next = Int64.sub task_struct_tasks'next 272L;
49     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 276L;
50     task_struct_mm = task_struct_mm;
51     task_struct_active_mm = task_struct_active_mm;
52     task_struct_pid = task_struct_pid;
53     task_struct_comm = task_struct_comm }
54   | { _ } -> raise (ParseError ("task_struct", "parser_2", "failed to match kernel structure"));;
55 let parser_3 bits = bitmatch bits with
56   | { task_struct_state : zero+32 : offset(0), bigendian;
57     task_struct_prio : zero+32 : offset(192), bigendian;
58     task_struct_static_prio : zero+32 : offset(224), bigendian;
59     task_struct_normal_prio : zero+32 : offset(256), bigendian;
60     task_struct_tasks'next : zero+32 : offset(2304), bigendian;
61     task_struct_tasks'prev : zero+32 : offset(2336), bigendian;
62     task_struct_mm : zero+32 : offset(2496), bigendian;
63     task_struct_active_mm : zero+32 : offset(2528), bigendian;
64     task_struct_pid : zero+32 : offset(2784), bigendian;
65     task_struct_comm : 128 : offset(4736), string } -> { task_struct_state = task_struct_state;
66     task_struct_prio = task_struct_prio;
67     task_struct_static_prio = task_struct_static_prio;
68     task_struct_normal_prio = task_struct_normal_prio;
69     task_struct_tasks'next = Int64.sub task_struct_tasks'next 288L;
70     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 292L;
71     task_struct_mm = task_struct_mm;
72     task_struct_active_mm = task_struct_active_mm;
73     task_struct_pid = task_struct_pid;
74     task_struct_comm = task_struct_comm }
75   | { _ } -> raise (ParseError ("task_struct", "parser_3", "failed to match kernel structure"));;
76 let parser_4 bits = bitmatch bits with
77   | { task_struct_state : zero+64 : offset(0), littleendian;
78     task_struct_prio : zero+32 : offset(320), littleendian;
79     task_struct_static_prio : zero+32 : offset(352), littleendian;
80     task_struct_normal_prio : zero+32 : offset(384), littleendian;
81     task_struct_tasks'next : zero+64 : offset(1536), littleendian;
82     task_struct_tasks'prev : zero+64 : offset(1600), littleendian;
83     task_struct_mm : zero+64 : offset(1664), littleendian;
84     task_struct_active_mm : zero+64 : offset(1728), littleendian;
85     task_struct_pid : zero+32 : offset(2144), littleendian;
86     task_struct_comm : 128 : offset(5376), string } -> { task_struct_state = task_struct_state;
87     task_struct_prio = task_struct_prio;
88     task_struct_static_prio = task_struct_static_prio;
89     task_struct_normal_prio = task_struct_normal_prio;
90     task_struct_tasks'next = Int64.sub task_struct_tasks'next 192L;
91     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 200L;
92     task_struct_mm = task_struct_mm;
93     task_struct_active_mm = task_struct_active_mm;
94     task_struct_pid = task_struct_pid;
95     task_struct_comm = task_struct_comm }
96   | { _ } -> raise (ParseError ("task_struct", "parser_4", "failed to match kernel structure"));;
97 let parser_5 bits = bitmatch bits with
98   | { task_struct_state : zero+64 : offset(0), littleendian;
99     task_struct_prio : zero+32 : offset(256), littleendian;
100     task_struct_static_prio : zero+32 : offset(288), littleendian;
101     task_struct_normal_prio : zero+32 : offset(320), littleendian;
102     task_struct_tasks'next : zero+64 : offset(2816), littleendian;
103     task_struct_tasks'prev : zero+64 : offset(2880), littleendian;
104     task_struct_mm : zero+64 : offset(3200), littleendian;
105     task_struct_active_mm : zero+64 : offset(3264), littleendian;
106     task_struct_pid : zero+32 : offset(3584), littleendian;
107     task_struct_comm : 128 : offset(6912), string } -> { task_struct_state = task_struct_state;
108     task_struct_prio = task_struct_prio;
109     task_struct_static_prio = task_struct_static_prio;
110     task_struct_normal_prio = task_struct_normal_prio;
111     task_struct_tasks'next = Int64.sub task_struct_tasks'next 352L;
112     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 360L;
113     task_struct_mm = task_struct_mm;
114     task_struct_active_mm = task_struct_active_mm;
115     task_struct_pid = task_struct_pid;
116     task_struct_comm = task_struct_comm }
117   | { _ } -> raise (ParseError ("task_struct", "parser_5", "failed to match kernel structure"));;
118 let parser_6 bits = bitmatch bits with
119   | { task_struct_state : zero+64 : offset(0), bigendian;
120     task_struct_prio : zero+32 : offset(256), bigendian;
121     task_struct_static_prio : zero+32 : offset(288), bigendian;
122     task_struct_normal_prio : zero+32 : offset(320), bigendian;
123     task_struct_tasks'next : zero+64 : offset(1472), bigendian;
124     task_struct_tasks'prev : zero+64 : offset(1536), bigendian;
125     task_struct_mm : zero+64 : offset(1600), bigendian;
126     task_struct_active_mm : zero+64 : offset(1664), bigendian;
127     task_struct_pid : zero+32 : offset(1984), bigendian;
128     task_struct_comm : 128 : offset(5184), string } -> { task_struct_state = task_struct_state;
129     task_struct_prio = task_struct_prio;
130     task_struct_static_prio = task_struct_static_prio;
131     task_struct_normal_prio = task_struct_normal_prio;
132     task_struct_tasks'next = Int64.sub task_struct_tasks'next 184L;
133     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 192L;
134     task_struct_mm = task_struct_mm;
135     task_struct_active_mm = task_struct_active_mm;
136     task_struct_pid = task_struct_pid;
137     task_struct_comm = task_struct_comm }
138   | { _ } -> raise (ParseError ("task_struct", "parser_6", "failed to match kernel structure"));;
139 let parser_7 bits = bitmatch bits with
140   | { task_struct_state : zero+64 : offset(0), bigendian;
141     task_struct_prio : zero+32 : offset(320), bigendian;
142     task_struct_static_prio : zero+32 : offset(352), bigendian;
143     task_struct_normal_prio : zero+32 : offset(384), bigendian;
144     task_struct_tasks'next : zero+64 : offset(1600), bigendian;
145     task_struct_tasks'prev : zero+64 : offset(1664), bigendian;
146     task_struct_mm : zero+64 : offset(1728), bigendian;
147     task_struct_active_mm : zero+64 : offset(1792), bigendian;
148     task_struct_pid : zero+32 : offset(2208), bigendian;
149     task_struct_comm : 128 : offset(5440), string } -> { task_struct_state = task_struct_state;
150     task_struct_prio = task_struct_prio;
151     task_struct_static_prio = task_struct_static_prio;
152     task_struct_normal_prio = task_struct_normal_prio;
153     task_struct_tasks'next = Int64.sub task_struct_tasks'next 200L;
154     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 208L;
155     task_struct_mm = task_struct_mm;
156     task_struct_active_mm = task_struct_active_mm;
157     task_struct_pid = task_struct_pid;
158     task_struct_comm = task_struct_comm }
159   | { _ } -> raise (ParseError ("task_struct", "parser_7", "failed to match kernel structure"));;
160 let parser_8 bits = bitmatch bits with
161   | { task_struct_state : zero+64 : offset(0), littleendian;
162     task_struct_prio : zero+32 : offset(320), littleendian;
163     task_struct_static_prio : zero+32 : offset(352), littleendian;
164     task_struct_normal_prio : zero+32 : offset(384), littleendian;
165     task_struct_tasks'next : zero+64 : offset(1536), littleendian;
166     task_struct_tasks'prev : zero+64 : offset(1600), littleendian;
167     task_struct_mm : zero+64 : offset(1664), littleendian;
168     task_struct_active_mm : zero+64 : offset(1728), littleendian;
169     task_struct_pid : zero+32 : offset(2144), littleendian;
170     task_struct_comm : 128 : offset(5440), string } -> { task_struct_state = task_struct_state;
171     task_struct_prio = task_struct_prio;
172     task_struct_static_prio = task_struct_static_prio;
173     task_struct_normal_prio = task_struct_normal_prio;
174     task_struct_tasks'next = Int64.sub task_struct_tasks'next 192L;
175     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 200L;
176     task_struct_mm = task_struct_mm;
177     task_struct_active_mm = task_struct_active_mm;
178     task_struct_pid = task_struct_pid;
179     task_struct_comm = task_struct_comm }
180   | { _ } -> raise (ParseError ("task_struct", "parser_8", "failed to match kernel structure"));;
181 let parser_9 bits = bitmatch bits with
182   | { task_struct_state : zero+64 : offset(0), littleendian;
183     task_struct_prio : zero+32 : offset(224), littleendian;
184     task_struct_static_prio : zero+32 : offset(256), littleendian;
185     task_struct_normal_prio : zero+32 : offset(288), littleendian;
186     task_struct_tasks'next : zero+64 : offset(2816), littleendian;
187     task_struct_tasks'prev : zero+64 : offset(2880), littleendian;
188     task_struct_mm : zero+64 : offset(2944), littleendian;
189     task_struct_active_mm : zero+64 : offset(3008), littleendian;
190     task_struct_pid : zero+32 : offset(3328), littleendian;
191     task_struct_comm : 128 : offset(6592), string } -> { task_struct_state = task_struct_state;
192     task_struct_prio = task_struct_prio;
193     task_struct_static_prio = task_struct_static_prio;
194     task_struct_normal_prio = task_struct_normal_prio;
195     task_struct_tasks'next = Int64.sub task_struct_tasks'next 352L;
196     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 360L;
197     task_struct_mm = task_struct_mm;
198     task_struct_active_mm = task_struct_active_mm;
199     task_struct_pid = task_struct_pid;
200     task_struct_comm = task_struct_comm }
201   | { _ } -> raise (ParseError ("task_struct", "parser_9", "failed to match kernel structure"));;
202 let parser_10 bits = bitmatch bits with
203   | { task_struct_state : zero+64 : offset(0), bigendian;
204     task_struct_prio : zero+32 : offset(224), bigendian;
205     task_struct_static_prio : zero+32 : offset(256), bigendian;
206     task_struct_normal_prio : zero+32 : offset(288), bigendian;
207     task_struct_tasks'next : zero+64 : offset(2816), bigendian;
208     task_struct_tasks'prev : zero+64 : offset(2880), bigendian;
209     task_struct_mm : zero+64 : offset(2944), bigendian;
210     task_struct_active_mm : zero+64 : offset(3008), bigendian;
211     task_struct_pid : zero+32 : offset(3328), bigendian;
212     task_struct_comm : 128 : offset(6528), string } -> { task_struct_state = task_struct_state;
213     task_struct_prio = task_struct_prio;
214     task_struct_static_prio = task_struct_static_prio;
215     task_struct_normal_prio = task_struct_normal_prio;
216     task_struct_tasks'next = Int64.sub task_struct_tasks'next 352L;
217     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 360L;
218     task_struct_mm = task_struct_mm;
219     task_struct_active_mm = task_struct_active_mm;
220     task_struct_pid = task_struct_pid;
221     task_struct_comm = task_struct_comm }
222   | { _ } -> raise (ParseError ("task_struct", "parser_10", "failed to match kernel structure"));;
223 let parser_11 bits = bitmatch bits with
224   | { task_struct_state : zero+32 : offset(0), bigendian;
225     task_struct_prio : zero+32 : offset(192), bigendian;
226     task_struct_static_prio : zero+32 : offset(224), bigendian;
227     task_struct_normal_prio : zero+32 : offset(256), bigendian;
228     task_struct_tasks'next : zero+32 : offset(1024), bigendian;
229     task_struct_tasks'prev : zero+32 : offset(1056), bigendian;
230     task_struct_mm : zero+32 : offset(1088), bigendian;
231     task_struct_active_mm : zero+32 : offset(1120), bigendian;
232     task_struct_pid : zero+32 : offset(1376), bigendian;
233     task_struct_comm : 128 : offset(3264), string } -> { task_struct_state = task_struct_state;
234     task_struct_prio = task_struct_prio;
235     task_struct_static_prio = task_struct_static_prio;
236     task_struct_normal_prio = task_struct_normal_prio;
237     task_struct_tasks'next = Int64.sub task_struct_tasks'next 128L;
238     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 132L;
239     task_struct_mm = task_struct_mm;
240     task_struct_active_mm = task_struct_active_mm;
241     task_struct_pid = task_struct_pid;
242     task_struct_comm = task_struct_comm }
243   | { _ } -> raise (ParseError ("task_struct", "parser_11", "failed to match kernel structure"));;
244 let parser_12 bits = bitmatch bits with
245   | { task_struct_state : zero+64 : offset(0), bigendian;
246     task_struct_prio : zero+32 : offset(224), bigendian;
247     task_struct_static_prio : zero+32 : offset(256), bigendian;
248     task_struct_normal_prio : zero+32 : offset(288), bigendian;
249     task_struct_tasks'next : zero+64 : offset(2880), bigendian;
250     task_struct_tasks'prev : zero+64 : offset(2944), bigendian;
251     task_struct_mm : zero+64 : offset(3008), bigendian;
252     task_struct_active_mm : zero+64 : offset(3072), bigendian;
253     task_struct_pid : zero+32 : offset(3392), bigendian;
254     task_struct_comm : 128 : offset(6592), string } -> { task_struct_state = task_struct_state;
255     task_struct_prio = task_struct_prio;
256     task_struct_static_prio = task_struct_static_prio;
257     task_struct_normal_prio = task_struct_normal_prio;
258     task_struct_tasks'next = Int64.sub task_struct_tasks'next 360L;
259     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 368L;
260     task_struct_mm = task_struct_mm;
261     task_struct_active_mm = task_struct_active_mm;
262     task_struct_pid = task_struct_pid;
263     task_struct_comm = task_struct_comm }
264   | { _ } -> raise (ParseError ("task_struct", "parser_12", "failed to match kernel structure"));;
265 let parser_13 bits = bitmatch bits with
266   | { task_struct_state : zero+32 : offset(0), littleendian;
267     task_struct_prio : zero+32 : offset(192), littleendian;
268     task_struct_static_prio : zero+32 : offset(224), littleendian;
269     task_struct_normal_prio : zero+32 : offset(256), littleendian;
270     task_struct_tasks'next : zero+32 : offset(2208), littleendian;
271     task_struct_tasks'prev : zero+32 : offset(2240), littleendian;
272     task_struct_mm : zero+32 : offset(2400), littleendian;
273     task_struct_active_mm : zero+32 : offset(2432), littleendian;
274     task_struct_pid : zero+32 : offset(2688), littleendian;
275     task_struct_comm : 128 : offset(4608), string } -> { task_struct_state = task_struct_state;
276     task_struct_prio = task_struct_prio;
277     task_struct_static_prio = task_struct_static_prio;
278     task_struct_normal_prio = task_struct_normal_prio;
279     task_struct_tasks'next = Int64.sub task_struct_tasks'next 276L;
280     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 280L;
281     task_struct_mm = task_struct_mm;
282     task_struct_active_mm = task_struct_active_mm;
283     task_struct_pid = task_struct_pid;
284     task_struct_comm = task_struct_comm }
285   | { _ } -> raise (ParseError ("task_struct", "parser_13", "failed to match kernel structure"));;
286 let parser_14 bits = bitmatch bits with
287   | { task_struct_state : zero+64 : offset(0), littleendian;
288     task_struct_prio : zero+32 : offset(224), littleendian;
289     task_struct_static_prio : zero+32 : offset(256), littleendian;
290     task_struct_normal_prio : zero+32 : offset(288), littleendian;
291     task_struct_tasks'next : zero+64 : offset(3648), littleendian;
292     task_struct_tasks'prev : zero+64 : offset(3712), littleendian;
293     task_struct_mm : zero+64 : offset(3776), littleendian;
294     task_struct_active_mm : zero+64 : offset(3840), littleendian;
295     task_struct_pid : zero+32 : offset(4160), littleendian;
296     task_struct_comm : 128 : offset(7816), string } -> { task_struct_state = task_struct_state;
297     task_struct_prio = task_struct_prio;
298     task_struct_static_prio = task_struct_static_prio;
299     task_struct_normal_prio = task_struct_normal_prio;
300     task_struct_tasks'next = Int64.sub task_struct_tasks'next 456L;
301     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 464L;
302     task_struct_mm = task_struct_mm;
303     task_struct_active_mm = task_struct_active_mm;
304     task_struct_pid = task_struct_pid;
305     task_struct_comm = task_struct_comm }
306   | { _ } -> raise (ParseError ("task_struct", "parser_14", "failed to match kernel structure"));;
307 let parser_15 bits = bitmatch bits with
308   | { task_struct_state : zero+64 : offset(0), bigendian;
309     task_struct_prio : zero+32 : offset(256), bigendian;
310     task_struct_static_prio : zero+32 : offset(288), bigendian;
311     task_struct_normal_prio : zero+32 : offset(320), bigendian;
312     task_struct_tasks'next : zero+64 : offset(2688), bigendian;
313     task_struct_tasks'prev : zero+64 : offset(2752), bigendian;
314     task_struct_mm : zero+64 : offset(3072), bigendian;
315     task_struct_active_mm : zero+64 : offset(3136), bigendian;
316     task_struct_pid : zero+32 : offset(3456), bigendian;
317     task_struct_comm : 128 : offset(6720), string } -> { task_struct_state = task_struct_state;
318     task_struct_prio = task_struct_prio;
319     task_struct_static_prio = task_struct_static_prio;
320     task_struct_normal_prio = task_struct_normal_prio;
321     task_struct_tasks'next = Int64.sub task_struct_tasks'next 336L;
322     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 344L;
323     task_struct_mm = task_struct_mm;
324     task_struct_active_mm = task_struct_active_mm;
325     task_struct_pid = task_struct_pid;
326     task_struct_comm = task_struct_comm }
327   | { _ } -> raise (ParseError ("task_struct", "parser_15", "failed to match kernel structure"));;
328 let parser_16 bits = bitmatch bits with
329   | { task_struct_state : zero+64 : offset(0), littleendian;
330     task_struct_prio : zero+32 : offset(224), littleendian;
331     task_struct_static_prio : zero+32 : offset(256), littleendian;
332     task_struct_normal_prio : zero+32 : offset(288), littleendian;
333     task_struct_tasks'next : zero+64 : offset(3840), littleendian;
334     task_struct_tasks'prev : zero+64 : offset(3904), littleendian;
335     task_struct_mm : zero+64 : offset(3968), littleendian;
336     task_struct_active_mm : zero+64 : offset(4032), littleendian;
337     task_struct_pid : zero+32 : offset(4352), littleendian;
338     task_struct_comm : 128 : offset(8392), string } -> { task_struct_state = task_struct_state;
339     task_struct_prio = task_struct_prio;
340     task_struct_static_prio = task_struct_static_prio;
341     task_struct_normal_prio = task_struct_normal_prio;
342     task_struct_tasks'next = Int64.sub task_struct_tasks'next 480L;
343     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 488L;
344     task_struct_mm = task_struct_mm;
345     task_struct_active_mm = task_struct_active_mm;
346     task_struct_pid = task_struct_pid;
347     task_struct_comm = task_struct_comm }
348   | { _ } -> raise (ParseError ("task_struct", "parser_16", "failed to match kernel structure"));;
349 let parser_17 bits = bitmatch bits with
350   | { task_struct_state : zero+32 : offset(0), bigendian;
351     task_struct_prio : zero+32 : offset(160), bigendian;
352     task_struct_static_prio : zero+32 : offset(192), bigendian;
353     task_struct_normal_prio : zero+32 : offset(224), bigendian;
354     task_struct_tasks'next : zero+32 : offset(2240), bigendian;
355     task_struct_tasks'prev : zero+32 : offset(2272), bigendian;
356     task_struct_mm : zero+32 : offset(2304), bigendian;
357     task_struct_active_mm : zero+32 : offset(2336), bigendian;
358     task_struct_pid : zero+32 : offset(2592), bigendian;
359     task_struct_comm : 128 : offset(4480), string } -> { task_struct_state = task_struct_state;
360     task_struct_prio = task_struct_prio;
361     task_struct_static_prio = task_struct_static_prio;
362     task_struct_normal_prio = task_struct_normal_prio;
363     task_struct_tasks'next = Int64.sub task_struct_tasks'next 280L;
364     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 284L;
365     task_struct_mm = task_struct_mm;
366     task_struct_active_mm = task_struct_active_mm;
367     task_struct_pid = task_struct_pid;
368     task_struct_comm = task_struct_comm }
369   | { _ } -> raise (ParseError ("task_struct", "parser_17", "failed to match kernel structure"));;
370 let parser_18 bits = bitmatch bits with
371   | { task_struct_state : zero+32 : offset(0), littleendian;
372     task_struct_prio : zero+32 : offset(160), littleendian;
373     task_struct_static_prio : zero+32 : offset(192), littleendian;
374     task_struct_normal_prio : zero+32 : offset(224), littleendian;
375     task_struct_tasks'next : zero+32 : offset(3008), littleendian;
376     task_struct_tasks'prev : zero+32 : offset(3040), littleendian;
377     task_struct_mm : zero+32 : offset(3072), littleendian;
378     task_struct_active_mm : zero+32 : offset(3104), littleendian;
379     task_struct_pid : zero+32 : offset(3360), littleendian;
380     task_struct_comm : 128 : offset(5416), string } -> { task_struct_state = task_struct_state;
381     task_struct_prio = task_struct_prio;
382     task_struct_static_prio = task_struct_static_prio;
383     task_struct_normal_prio = task_struct_normal_prio;
384     task_struct_tasks'next = Int64.sub task_struct_tasks'next 376L;
385     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 380L;
386     task_struct_mm = task_struct_mm;
387     task_struct_active_mm = task_struct_active_mm;
388     task_struct_pid = task_struct_pid;
389     task_struct_comm = task_struct_comm }
390   | { _ } -> raise (ParseError ("task_struct", "parser_18", "failed to match kernel structure"));;
391 let parser_19 bits = bitmatch bits with
392   | { task_struct_state : zero+64 : offset(0), bigendian;
393     task_struct_prio : zero+32 : offset(224), bigendian;
394     task_struct_static_prio : zero+32 : offset(256), bigendian;
395     task_struct_normal_prio : zero+32 : offset(288), bigendian;
396     task_struct_tasks'next : zero+64 : offset(3648), bigendian;
397     task_struct_tasks'prev : zero+64 : offset(3712), bigendian;
398     task_struct_mm : zero+64 : offset(3776), bigendian;
399     task_struct_active_mm : zero+64 : offset(3840), bigendian;
400     task_struct_pid : zero+32 : offset(4160), bigendian;
401     task_struct_comm : 128 : offset(7752), string } -> { task_struct_state = task_struct_state;
402     task_struct_prio = task_struct_prio;
403     task_struct_static_prio = task_struct_static_prio;
404     task_struct_normal_prio = task_struct_normal_prio;
405     task_struct_tasks'next = Int64.sub task_struct_tasks'next 456L;
406     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 464L;
407     task_struct_mm = task_struct_mm;
408     task_struct_active_mm = task_struct_active_mm;
409     task_struct_pid = task_struct_pid;
410     task_struct_comm = task_struct_comm }
411   | { _ } -> raise (ParseError ("task_struct", "parser_19", "failed to match kernel structure"));;
412 let parser_20 bits = bitmatch bits with
413   | { task_struct_state : zero+32 : offset(0), littleendian;
414     task_struct_prio : zero+32 : offset(160), littleendian;
415     task_struct_static_prio : zero+32 : offset(192), littleendian;
416     task_struct_normal_prio : zero+32 : offset(224), littleendian;
417     task_struct_tasks'next : zero+32 : offset(2144), littleendian;
418     task_struct_tasks'prev : zero+32 : offset(2176), littleendian;
419     task_struct_mm : zero+32 : offset(2208), littleendian;
420     task_struct_active_mm : zero+32 : offset(2240), littleendian;
421     task_struct_pid : zero+32 : offset(2496), littleendian;
422     task_struct_comm : 128 : offset(4384), string } -> { task_struct_state = task_struct_state;
423     task_struct_prio = task_struct_prio;
424     task_struct_static_prio = task_struct_static_prio;
425     task_struct_normal_prio = task_struct_normal_prio;
426     task_struct_tasks'next = Int64.sub task_struct_tasks'next 268L;
427     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 272L;
428     task_struct_mm = task_struct_mm;
429     task_struct_active_mm = task_struct_active_mm;
430     task_struct_pid = task_struct_pid;
431     task_struct_comm = task_struct_comm }
432   | { _ } -> raise (ParseError ("task_struct", "parser_20", "failed to match kernel structure"));;
433 let parser_21 bits = bitmatch bits with
434   | { task_struct_state : zero+64 : offset(0), bigendian;
435     task_struct_prio : zero+32 : offset(256), bigendian;
436     task_struct_static_prio : zero+32 : offset(288), bigendian;
437     task_struct_normal_prio : zero+32 : offset(320), bigendian;
438     task_struct_tasks'next : zero+64 : offset(2880), bigendian;
439     task_struct_tasks'prev : zero+64 : offset(2944), bigendian;
440     task_struct_mm : zero+64 : offset(3264), bigendian;
441     task_struct_active_mm : zero+64 : offset(3328), bigendian;
442     task_struct_pid : zero+32 : offset(3648), bigendian;
443     task_struct_comm : 128 : offset(6912), string } -> { task_struct_state = task_struct_state;
444     task_struct_prio = task_struct_prio;
445     task_struct_static_prio = task_struct_static_prio;
446     task_struct_normal_prio = task_struct_normal_prio;
447     task_struct_tasks'next = Int64.sub task_struct_tasks'next 360L;
448     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 368L;
449     task_struct_mm = task_struct_mm;
450     task_struct_active_mm = task_struct_active_mm;
451     task_struct_pid = task_struct_pid;
452     task_struct_comm = task_struct_comm }
453   | { _ } -> raise (ParseError ("task_struct", "parser_21", "failed to match kernel structure"));;
454 let parser_22 bits = bitmatch bits with
455   | { task_struct_state : zero+32 : offset(0), bigendian;
456     task_struct_prio : zero+32 : offset(160), bigendian;
457     task_struct_static_prio : zero+32 : offset(192), bigendian;
458     task_struct_normal_prio : zero+32 : offset(224), bigendian;
459     task_struct_tasks'next : zero+32 : offset(3136), bigendian;
460     task_struct_tasks'prev : zero+32 : offset(3168), bigendian;
461     task_struct_mm : zero+32 : offset(3200), bigendian;
462     task_struct_active_mm : zero+32 : offset(3232), bigendian;
463     task_struct_pid : zero+32 : offset(3488), bigendian;
464     task_struct_comm : 128 : offset(5576), string } -> { task_struct_state = task_struct_state;
465     task_struct_prio = task_struct_prio;
466     task_struct_static_prio = task_struct_static_prio;
467     task_struct_normal_prio = task_struct_normal_prio;
468     task_struct_tasks'next = Int64.sub task_struct_tasks'next 392L;
469     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 396L;
470     task_struct_mm = task_struct_mm;
471     task_struct_active_mm = task_struct_active_mm;
472     task_struct_pid = task_struct_pid;
473     task_struct_comm = task_struct_comm }
474   | { _ } -> raise (ParseError ("task_struct", "parser_22", "failed to match kernel structure"));;
475 let parser_23 bits = bitmatch bits with
476   | { task_struct_state : zero+32 : offset(0), littleendian;
477     task_struct_prio : zero+32 : offset(192), littleendian;
478     task_struct_static_prio : zero+32 : offset(224), littleendian;
479     task_struct_normal_prio : zero+32 : offset(256), littleendian;
480     task_struct_tasks'next : zero+32 : offset(2144), littleendian;
481     task_struct_tasks'prev : zero+32 : offset(2176), littleendian;
482     task_struct_mm : zero+32 : offset(2336), littleendian;
483     task_struct_active_mm : zero+32 : offset(2368), littleendian;
484     task_struct_pid : zero+32 : offset(2624), littleendian;
485     task_struct_comm : 128 : offset(4544), string } -> { task_struct_state = task_struct_state;
486     task_struct_prio = task_struct_prio;
487     task_struct_static_prio = task_struct_static_prio;
488     task_struct_normal_prio = task_struct_normal_prio;
489     task_struct_tasks'next = Int64.sub task_struct_tasks'next 268L;
490     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 272L;
491     task_struct_mm = task_struct_mm;
492     task_struct_active_mm = task_struct_active_mm;
493     task_struct_pid = task_struct_pid;
494     task_struct_comm = task_struct_comm }
495   | { _ } -> raise (ParseError ("task_struct", "parser_23", "failed to match kernel structure"));;
496 let parser_24 bits = bitmatch bits with
497   | { task_struct_state : zero+64 : offset(0), littleendian;
498     task_struct_prio : zero+32 : offset(320), littleendian;
499     task_struct_static_prio : zero+32 : offset(352), littleendian;
500     task_struct_normal_prio : zero+32 : offset(384), littleendian;
501     task_struct_tasks'next : zero+64 : offset(1728), littleendian;
502     task_struct_tasks'prev : zero+64 : offset(1792), littleendian;
503     task_struct_mm : zero+64 : offset(1856), littleendian;
504     task_struct_active_mm : zero+64 : offset(1920), littleendian;
505     task_struct_pid : zero+32 : offset(2336), littleendian;
506     task_struct_comm : 128 : offset(5568), string } -> { task_struct_state = task_struct_state;
507     task_struct_prio = task_struct_prio;
508     task_struct_static_prio = task_struct_static_prio;
509     task_struct_normal_prio = task_struct_normal_prio;
510     task_struct_tasks'next = Int64.sub task_struct_tasks'next 216L;
511     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 224L;
512     task_struct_mm = task_struct_mm;
513     task_struct_active_mm = task_struct_active_mm;
514     task_struct_pid = task_struct_pid;
515     task_struct_comm = task_struct_comm }
516   | { _ } -> raise (ParseError ("task_struct", "parser_24", "failed to match kernel structure"));;
517 let parser_25 bits = bitmatch bits with
518   | { task_struct_state : zero+64 : offset(0), littleendian;
519     task_struct_prio : zero+32 : offset(224), littleendian;
520     task_struct_static_prio : zero+32 : offset(256), littleendian;
521     task_struct_normal_prio : zero+32 : offset(288), littleendian;
522     task_struct_tasks'next : zero+64 : offset(2752), littleendian;
523     task_struct_tasks'prev : zero+64 : offset(2816), littleendian;
524     task_struct_mm : zero+64 : offset(2880), littleendian;
525     task_struct_active_mm : zero+64 : offset(2944), littleendian;
526     task_struct_pid : zero+32 : offset(3264), littleendian;
527     task_struct_comm : 128 : offset(6528), string } -> { task_struct_state = task_struct_state;
528     task_struct_prio = task_struct_prio;
529     task_struct_static_prio = task_struct_static_prio;
530     task_struct_normal_prio = task_struct_normal_prio;
531     task_struct_tasks'next = Int64.sub task_struct_tasks'next 344L;
532     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 352L;
533     task_struct_mm = task_struct_mm;
534     task_struct_active_mm = task_struct_active_mm;
535     task_struct_pid = task_struct_pid;
536     task_struct_comm = task_struct_comm }
537   | { _ } -> raise (ParseError ("task_struct", "parser_25", "failed to match kernel structure"));;
538 let parser_26 bits = bitmatch bits with
539   | { task_struct_state : zero+32 : offset(0), littleendian;
540     task_struct_prio : zero+32 : offset(160), littleendian;
541     task_struct_static_prio : zero+32 : offset(192), littleendian;
542     task_struct_normal_prio : zero+32 : offset(224), littleendian;
543     task_struct_tasks'next : zero+32 : offset(2176), littleendian;
544     task_struct_tasks'prev : zero+32 : offset(2208), littleendian;
545     task_struct_mm : zero+32 : offset(2240), littleendian;
546     task_struct_active_mm : zero+32 : offset(2272), littleendian;
547     task_struct_pid : zero+32 : offset(2528), littleendian;
548     task_struct_comm : 128 : offset(4416), string } -> { task_struct_state = task_struct_state;
549     task_struct_prio = task_struct_prio;
550     task_struct_static_prio = task_struct_static_prio;
551     task_struct_normal_prio = task_struct_normal_prio;
552     task_struct_tasks'next = Int64.sub task_struct_tasks'next 272L;
553     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 276L;
554     task_struct_mm = task_struct_mm;
555     task_struct_active_mm = task_struct_active_mm;
556     task_struct_pid = task_struct_pid;
557     task_struct_comm = task_struct_comm }
558   | { _ } -> raise (ParseError ("task_struct", "parser_26", "failed to match kernel structure"));;
559 let parser_27 bits = bitmatch bits with
560   | { task_struct_state : zero+64 : offset(0), littleendian;
561     task_struct_prio : zero+32 : offset(256), littleendian;
562     task_struct_static_prio : zero+32 : offset(288), littleendian;
563     task_struct_normal_prio : zero+32 : offset(320), littleendian;
564     task_struct_tasks'next : zero+64 : offset(1408), littleendian;
565     task_struct_tasks'prev : zero+64 : offset(1472), littleendian;
566     task_struct_mm : zero+64 : offset(1536), littleendian;
567     task_struct_active_mm : zero+64 : offset(1600), littleendian;
568     task_struct_pid : zero+32 : offset(1920), littleendian;
569     task_struct_comm : 128 : offset(5184), string } -> { task_struct_state = task_struct_state;
570     task_struct_prio = task_struct_prio;
571     task_struct_static_prio = task_struct_static_prio;
572     task_struct_normal_prio = task_struct_normal_prio;
573     task_struct_tasks'next = Int64.sub task_struct_tasks'next 176L;
574     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 184L;
575     task_struct_mm = task_struct_mm;
576     task_struct_active_mm = task_struct_active_mm;
577     task_struct_pid = task_struct_pid;
578     task_struct_comm = task_struct_comm }
579   | { _ } -> raise (ParseError ("task_struct", "parser_27", "failed to match kernel structure"));;
580 let parser_28 bits = bitmatch bits with
581   | { task_struct_state : zero+32 : offset(0), bigendian;
582     task_struct_prio : zero+32 : offset(192), bigendian;
583     task_struct_static_prio : zero+32 : offset(224), bigendian;
584     task_struct_normal_prio : zero+32 : offset(256), bigendian;
585     task_struct_tasks'next : zero+32 : offset(2240), bigendian;
586     task_struct_tasks'prev : zero+32 : offset(2272), bigendian;
587     task_struct_mm : zero+32 : offset(2432), bigendian;
588     task_struct_active_mm : zero+32 : offset(2464), bigendian;
589     task_struct_pid : zero+32 : offset(2720), bigendian;
590     task_struct_comm : 128 : offset(4672), string } -> { task_struct_state = task_struct_state;
591     task_struct_prio = task_struct_prio;
592     task_struct_static_prio = task_struct_static_prio;
593     task_struct_normal_prio = task_struct_normal_prio;
594     task_struct_tasks'next = Int64.sub task_struct_tasks'next 280L;
595     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 284L;
596     task_struct_mm = task_struct_mm;
597     task_struct_active_mm = task_struct_active_mm;
598     task_struct_pid = task_struct_pid;
599     task_struct_comm = task_struct_comm }
600   | { _ } -> raise (ParseError ("task_struct", "parser_28", "failed to match kernel structure"));;
601 let parser_29 bits = bitmatch bits with
602   | { task_struct_state : zero+32 : offset(0), littleendian;
603     task_struct_prio : zero+32 : offset(160), littleendian;
604     task_struct_static_prio : zero+32 : offset(192), littleendian;
605     task_struct_normal_prio : zero+32 : offset(224), littleendian;
606     task_struct_tasks'next : zero+32 : offset(3232), littleendian;
607     task_struct_tasks'prev : zero+32 : offset(3264), littleendian;
608     task_struct_mm : zero+32 : offset(3296), littleendian;
609     task_struct_active_mm : zero+32 : offset(3328), littleendian;
610     task_struct_pid : zero+32 : offset(3584), littleendian;
611     task_struct_comm : 128 : offset(5928), string } -> { task_struct_state = task_struct_state;
612     task_struct_prio = task_struct_prio;
613     task_struct_static_prio = task_struct_static_prio;
614     task_struct_normal_prio = task_struct_normal_prio;
615     task_struct_tasks'next = Int64.sub task_struct_tasks'next 404L;
616     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 408L;
617     task_struct_mm = task_struct_mm;
618     task_struct_active_mm = task_struct_active_mm;
619     task_struct_pid = task_struct_pid;
620     task_struct_comm = task_struct_comm }
621   | { _ } -> raise (ParseError ("task_struct", "parser_29", "failed to match kernel structure"));;
622 let parser_30 bits = bitmatch bits with
623   | { task_struct_state : zero+64 : offset(0), littleendian;
624     task_struct_prio : zero+32 : offset(256), littleendian;
625     task_struct_static_prio : zero+32 : offset(288), littleendian;
626     task_struct_normal_prio : zero+32 : offset(320), littleendian;
627     task_struct_tasks'next : zero+64 : offset(2624), littleendian;
628     task_struct_tasks'prev : zero+64 : offset(2688), littleendian;
629     task_struct_mm : zero+64 : offset(3008), littleendian;
630     task_struct_active_mm : zero+64 : offset(3072), littleendian;
631     task_struct_pid : zero+32 : offset(3392), littleendian;
632     task_struct_comm : 128 : offset(6720), string } -> { task_struct_state = task_struct_state;
633     task_struct_prio = task_struct_prio;
634     task_struct_static_prio = task_struct_static_prio;
635     task_struct_normal_prio = task_struct_normal_prio;
636     task_struct_tasks'next = Int64.sub task_struct_tasks'next 328L;
637     task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 336L;
638     task_struct_mm = task_struct_mm;
639     task_struct_active_mm = task_struct_active_mm;
640     task_struct_pid = task_struct_pid;
641     task_struct_comm = task_struct_comm }
642   | { _ } -> raise (ParseError ("task_struct", "parser_30", "failed to match kernel structure"));;
643 module StringMap = Map.Make(String);;
644 let map = StringMap.empty;;
645 let v = (parser_1, 2704);;
646 let map = StringMap.add "2.6.21-1.3128.fc7.i586" v map;;
647 let v = (parser_2, 1756);;
648 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc" v map;;
649 let v = (parser_1, 2704);;
650 let map = StringMap.add "2.6.21-1.3128.fc7.i686" v map;;
651 let v = (parser_1, 2704);;
652 let map = StringMap.add "2.6.21-1.3132.fc7.i686" v map;;
653 let v = (parser_3, 1780);;
654 let map = StringMap.add "2.6.21-1.3236.fc8.ppc" v map;;
655 let v = (parser_1, 1376);;
656 let map = StringMap.add "2.6.21-1.3228.fc7.i586" v map;;
657 let v = (parser_4, 1856);;
658 let map = StringMap.add "2.6.18-1.2798.fc6.x86_64" v map;;
659 let v = (parser_5, 3948);;
660 let map = StringMap.add "2.6.21-1.3236.fc8.x86_64" v map;;
661 let v = (parser_6, 2116);;
662 let map = StringMap.add "2.6.21-1.3218.fc8.ppc64" v map;;
663 let v = (parser_7, 2072);;
664 let map = StringMap.add "2.6.21-1.3228.fc7.ppc64" v map;;
665 let v = (parser_8, 1832);;
666 let map = StringMap.add "2.6.21-1.3228.fc7.x86_64" v map;;
667 let v = (parser_1, 2712);;
668 let map = StringMap.add "2.6.21-1.3218.fc8.i586" v map;;
669 let v = (parser_9, 3932);;
670 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.x86_64" v map;;
671 let v = (parser_10, 2276);;
672 let map = StringMap.add "2.6.21-1.3242.fc8.ppc64" v map;;
673 let v = (parser_7, 2132);;
674 let map = StringMap.add "2.6.21-1.3144.fc7.ppc64" v map;;
675 let v = (parser_11, 1612);;
676 let map = StringMap.add "2.6.21-1.3218.fc8.ppc" v map;;
677 let v = (parser_12, 2292);;
678 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc64" v map;;
679 let v = (parser_13, 2880);;
680 let map = StringMap.add "2.6.21-1.3236.fc8.i686" v map;;
681 let v = (parser_7, 2132);;
682 let map = StringMap.add "2.6.21-1.3132.fc7.ppc64" v map;;
683 let v = (parser_1, 1376);;
684 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
685 let v = (parser_14, 4684);;
686 let map = StringMap.add "2.6.24-9.fc9.x86_64" v map;;
687 let v = (parser_12, 2292);;
688 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc64" v map;;
689 let v = (parser_7, 2132);;
690 let map = StringMap.add "2.6.21-1.3132.fc7.ppc64" v map;;
691 let v = (parser_14, 4684);;
692 let map = StringMap.add "2.6.24-7.fc9.x86_64" v map;;
693 let v = (parser_10, 2276);;
694 let map = StringMap.add "2.6.21-1.3238.fc8.ppc64" v map;;
695 let v = (parser_1, 1384);;
696 let map = StringMap.add "2.6.18-1.2798.fc6.i586" v map;;
697 let v = (parser_11, 1620);;
698 let map = StringMap.add "2.6.21-1.3132.fc7.ppc" v map;;
699 let v = (parser_15, 2292);;
700 let map = StringMap.add "2.6.21-1.3234.fc8.ppc64" v map;;
701 let v = (parser_1, 1384);;
702 let map = StringMap.add "2.6.18-1.2798.fc6.i686" v map;;
703 let v = (parser_16, 2496);;
704 let map = StringMap.add "2.6.25.11-97.fc9.x86_64" v map;;
705 let v = (parser_1, 1368);;
706 let map = StringMap.add "2.6.18-1.2798.fc6.i686" v map;;
707 let v = (parser_17, 1772);;
708 let map = StringMap.add "2.6.21-1.3242.fc8.ppc" v map;;
709 let v = (parser_18, 3540);;
710 let map = StringMap.add "2.6.24-9.fc9.i686" v map;;
711 let v = (parser_19, 2492);;
712 let map = StringMap.add "2.6.24-7.fc9.ppc64" v map;;
713 let v = (parser_20, 2856);;
714 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.i686" v map;;
715 let v = (parser_21, 2308);;
716 let map = StringMap.add "2.6.21-1.3236.fc8.ppc64" v map;;
717 let v = (parser_11, 1628);;
718 let map = StringMap.add "2.6.21-1.3209.fc8.ppc" v map;;
719 let v = (parser_21, 2308);;
720 let map = StringMap.add "2.6.21-1.3236.fc8.ppc64" v map;;
721 let v = (parser_7, 2072);;
722 let map = StringMap.add "2.6.21-1.3228.fc7.ppc64" v map;;
723 let v = (parser_7, 2132);;
724 let map = StringMap.add "2.6.21-1.3128.fc7.ppc64" v map;;
725 let v = (parser_10, 2276);;
726 let map = StringMap.add "2.6.21-1.3238.fc8.ppc64" v map;;
727 let v = (parser_1, 2712);;
728 let map = StringMap.add "2.6.21-1.3209.fc8.i686" v map;;
729 let v = (parser_8, 3772);;
730 let map = StringMap.add "2.6.21-1.3132.fc7.x86_64" v map;;
731 let v = (parser_19, 2492);;
732 let map = StringMap.add "2.6.24-7.fc9.ppc64" v map;;
733 let v = (parser_8, 3772);;
734 let map = StringMap.add "2.6.21-1.3228.fc7.x86_64" v map;;
735 let v = (parser_22, 1948);;
736 let map = StringMap.add "2.6.24-9.fc9.ppc" v map;;
737 let v = (parser_11, 1576);;
738 let map = StringMap.add "2.6.18-1.2798.fc6.ppc" v map;;
739 let v = (parser_11, 1620);;
740 let map = StringMap.add "2.6.21-1.3128.fc7.ppc" v map;;
741 let v = (parser_1, 2712);;
742 let map = StringMap.add "2.6.21-1.3209.fc8.i686" v map;;
743 let v = (parser_8, 3772);;
744 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
745 let v = (parser_23, 2880);;
746 let map = StringMap.add "2.6.21-1.3234.fc8.i686" v map;;
747 let v = (parser_11, 1620);;
748 let map = StringMap.add "2.6.21-1.3144.fc7.ppc" v map;;
749 let v = (parser_7, 2132);;
750 let map = StringMap.add "2.6.21-1.3144.fc7.ppc64" v map;;
751 let v = (parser_19, 2492);;
752 let map = StringMap.add "2.6.24-9.fc9.ppc64" v map;;
753 let v = (parser_11, 1628);;
754 let map = StringMap.add "2.6.21-1.3218.fc8.ppc" v map;;
755 let v = (parser_11, 1604);;
756 let map = StringMap.add "2.6.21-1.3128.fc7.ppc" v map;;
757 let v = (parser_24, 1928);;
758 let map = StringMap.add "2.6.18-1.2798.fc6.x86_64" v map;;
759 let v = (parser_11, 1604);;
760 let map = StringMap.add "2.6.21-1.3132.fc7.ppc" v map;;
761 let v = (parser_11, 1584);;
762 let map = StringMap.add "2.6.21-1.3228.fc7.ppc" v map;;
763 let v = (parser_25, 3916);;
764 let map = StringMap.add "2.6.21-1.3242.fc8.x86_64" v map;;
765 let v = (parser_19, 2492);;
766 let map = StringMap.add "2.6.24-9.fc9.ppc64" v map;;
767 let v = (parser_6, 2116);;
768 let map = StringMap.add "2.6.21-1.3218.fc8.ppc64" v map;;
769 let v = (parser_7, 2104);;
770 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64" v map;;
771 let v = (parser_8, 3780);;
772 let map = StringMap.add "2.6.21-1.3128.fc7.x86_64" v map;;
773 let v = (parser_1, 1400);;
774 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
775 let v = (parser_8, 3772);;
776 let map = StringMap.add "2.6.21-1.3144.fc7.x86_64" v map;;
777 let v = (parser_7, 2112);;
778 let map = StringMap.add "2.6.20-1.2933.fc6.ppc64" v map;;
779 let v = (parser_2, 1772);;
780 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc" v map;;
781 let v = (parser_22, 1936);;
782 let map = StringMap.add "2.6.24-7.fc9.ppc" v map;;
783 let v = (parser_11, 1612);;
784 let map = StringMap.add "2.6.21-1.3209.fc8.ppc" v map;;
785 let v = (parser_8, 1920);;
786 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
787 let v = (parser_17, 1756);;
788 let map = StringMap.add "2.6.21-1.3242.fc8.ppc" v map;;
789 let v = (parser_1, 2704);;
790 let map = StringMap.add "2.6.21-1.3132.fc7.i586" v map;;
791 let v = (parser_1, 2704);;
792 let map = StringMap.add "2.6.21-1.3144.fc7.i586" v map;;
793 let v = (parser_8, 1880);;
794 let map = StringMap.add "2.6.21-1.3228.fc7.x86_64" v map;;
795 let v = (parser_7, 2088);;
796 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64iseries" v map;;
797 let v = (parser_26, 2872);;
798 let map = StringMap.add "2.6.21-1.3238.fc8.i686" v map;;
799 let v = (parser_18, 3540);;
800 let map = StringMap.add "2.6.24-7.fc9.i586" v map;;
801 let v = (parser_11, 1592);;
802 let map = StringMap.add "2.6.20-1.2933.fc6.ppc" v map;;
803 let v = (parser_10, 2276);;
804 let map = StringMap.add "2.6.21-1.3242.fc8.ppc64" v map;;
805 let v = (parser_1, 2712);;
806 let map = StringMap.add "2.6.21-1.3218.fc8.i686" v map;;
807 let v = (parser_1, 2704);;
808 let map = StringMap.add "2.6.21-1.3144.fc7.i686" v map;;
809 let v = (parser_1, 1376);;
810 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
811 let v = (parser_1, 2712);;
812 let map = StringMap.add "2.6.21-1.3209.fc8.i586" v map;;
813 let v = (parser_27, 3756);;
814 let map = StringMap.add "2.6.21-1.3218.fc8.x86_64" v map;;
815 let v = (parser_7, 2088);;
816 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64iseries" v map;;
817 let v = (parser_1, 2704);;
818 let map = StringMap.add "2.6.21-1.3144.fc7.i686" v map;;
819 let v = (parser_8, 1880);;
820 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
821 let v = (parser_28, 1796);;
822 let map = StringMap.add "2.6.21-1.3234.fc8.ppc" v map;;
823 let v = (parser_25, 3916);;
824 let map = StringMap.add "2.6.21-1.3238.fc8.x86_64" v map;;
825 let v = (parser_8, 1920);;
826 let map = StringMap.add "2.6.20-1.2933.fc6.x86_64" v map;;
827 let v = (parser_24, 1928);;
828 let map = StringMap.add "2.6.18-1.2798.fc6.x86_64" v map;;
829 let v = (parser_18, 3540);;
830 let map = StringMap.add "2.6.24-7.fc9.i686" v map;;
831 let v = (parser_17, 1772);;
832 let map = StringMap.add "2.6.21-1.3238.fc8.ppc" v map;;
833 let v = (parser_8, 3780);;
834 let map = StringMap.add "2.6.21-1.3144.fc7.x86_64" v map;;
835 let v = (parser_11, 1608);;
836 let map = StringMap.add "2.6.20-1.2933.fc6.ppc" v map;;
837 let v = (parser_18, 3540);;
838 let map = StringMap.add "2.6.24-7.fc9.i686" v map;;
839 let v = (parser_18, 3540);;
840 let map = StringMap.add "2.6.24-9.fc9.i686" v map;;
841 let v = (parser_1, 2704);;
842 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
843 let v = (parser_29, 1832);;
844 let map = StringMap.add "2.6.25.11-97.fc9.i686" v map;;
845 let v = (parser_1, 2704);;
846 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
847 let v = (parser_1, 2704);;
848 let map = StringMap.add "2.6.21-1.3228.fc7.i686" v map;;
849 let v = (parser_1, 2704);;
850 let map = StringMap.add "2.6.21-1.3128.fc7.i686" v map;;
851 let v = (parser_11, 1604);;
852 let map = StringMap.add "2.6.21-1.3144.fc7.ppc" v map;;
853 let v = (parser_1, 1400);;
854 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
855 let v = (parser_27, 3756);;
856 let map = StringMap.add "2.6.21-1.3209.fc8.x86_64" v map;;
857 let v = (parser_17, 1756);;
858 let map = StringMap.add "2.6.21-1.3238.fc8.ppc" v map;;
859 let v = (parser_30, 3932);;
860 let map = StringMap.add "2.6.21-1.3234.fc8.x86_64" v map;;
861 let v = (parser_28, 1780);;
862 let map = StringMap.add "2.6.21-1.3234.fc8.ppc" v map;;
863 let v = (parser_15, 2292);;
864 let map = StringMap.add "2.6.21-1.3234.fc8.ppc64" v map;;
865 let v = (parser_1, 1400);;
866 let map = StringMap.add "2.6.20-1.2933.fc6.i586" v map;;
867 let v = (parser_8, 3780);;
868 let map = StringMap.add "2.6.21-1.3132.fc7.x86_64" v map;;
869 let v = (parser_1, 1400);;
870 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
871 let v = (parser_7, 2104);;
872 let map = StringMap.add "2.6.18-1.2798.fc6.ppc64" v map;;
873 let v = (parser_1, 1384);;
874 let map = StringMap.add "2.6.18-1.2798.fc6.i686" v map;;
875 let v = (parser_26, 2872);;
876 let map = StringMap.add "2.6.21-1.3238.fc8.i686" v map;;
877 let v = (parser_11, 1560);;
878 let map = StringMap.add "2.6.21-1.3228.fc7.ppc" v map;;
879 let v = (parser_13, 2880);;
880 let map = StringMap.add "2.6.21-1.3236.fc8.i686" v map;;
881 let v = (parser_3, 1796);;
882 let map = StringMap.add "2.6.21-1.3236.fc8.ppc" v map;;
883 let v = (parser_1, 1384);;
884 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
885 let v = (parser_1, 2712);;
886 let map = StringMap.add "2.6.21-1.3218.fc8.i686" v map;;
887 let v = (parser_18, 3540);;
888 let map = StringMap.add "2.6.24-9.fc9.i586" v map;;
889 let v = (parser_8, 3772);;
890 let map = StringMap.add "2.6.21-1.3128.fc7.x86_64" v map;;
891 let v = (parser_23, 2880);;
892 let map = StringMap.add "2.6.21-1.3234.fc8.i686" v map;;
893 let v = (parser_7, 2112);;
894 let map = StringMap.add "2.6.20-1.2933.fc6.ppc64" v map;;
895 let v = (parser_22, 1936);;
896 let map = StringMap.add "2.6.24-9.fc9.ppc" v map;;
897 let v = (parser_26, 2872);;
898 let map = StringMap.add "2.6.21-1.3242.fc8.i686" v map;;
899 let v = (parser_7, 2132);;
900 let map = StringMap.add "2.6.21-1.3128.fc7.ppc64" v map;;
901 let v = (parser_22, 1948);;
902 let map = StringMap.add "2.6.24-7.fc9.ppc" v map;;
903 let v = (parser_6, 2116);;
904 let map = StringMap.add "2.6.21-1.3209.fc8.ppc64" v map;;
905 let v = (parser_11, 1592);;
906 let map = StringMap.add "2.6.18-1.2798.fc6.ppc" v map;;
907 let v = (parser_20, 2856);;
908 let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.i686" v map;;
909 let v = (parser_1, 2704);;
910 let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
911 let v = (parser_6, 2116);;
912 let map = StringMap.add "2.6.21-1.3209.fc8.ppc64" v map;;
913 let v = (parser_1, 2704);;
914 let map = StringMap.add "2.6.21-1.3132.fc7.i686" v map;;
915 type kernel_version = string;;
916 let task_struct_known version = StringMap.mem version map;;
917 let task_struct_size version =
918   let (_, size) = StringMap.find version map in size;;
919 let task_struct_of_bits version bits =
920   let (parsefn, _) = StringMap.find version map in parsefn bits;;
921 let get_task_struct version mem addr =
922   let (parsefn, size) = StringMap.find version map in
923   let bytes = Virt_mem_mmap.get_bytes mem addr size in
924   let bits = Bitstring.bitstring_of_string bytes in parsefn bits;;