1 (* WARNING: This file and the corresponding mli (interface) are
2 * automatically generated by the extract/codegen/ program.
4 * Any edits you make to this file will be lost.
6 * To update this file from the latest kernel database, it is recommended
7 * that you do 'make update-kernel-structs'.
10 type ('a, 'b) task_struct =
11 { task_struct_shape : 'a; task_struct_content : 'b
13 type task_struct_shape_fields_2 =
14 { task_struct_shape_fields_2_tasks'next : Virt_mem_mmap.addr;
15 task_struct_shape_fields_2_tasks'prev : Virt_mem_mmap.addr
17 type task_struct_shape_fields_1 =
18 { task_struct_shape_fields_1_run_list'next : Virt_mem_mmap.addr;
19 task_struct_shape_fields_1_run_list'prev : Virt_mem_mmap.addr;
20 task_struct_shape_fields_1_tasks'next : Virt_mem_mmap.addr;
21 task_struct_shape_fields_1_tasks'prev : Virt_mem_mmap.addr
23 type task_struct_content_fields_3 =
24 { task_struct_content_fields_3_comm : string;
25 task_struct_content_fields_3_normal_prio : int64;
26 task_struct_content_fields_3_pid : int64;
27 task_struct_content_fields_3_prio : int64;
28 task_struct_content_fields_3_state : int64;
29 task_struct_content_fields_3_static_prio : int64
31 type ('a, 'b) net_device = { net_device_shape : 'a; net_device_content : 'b };;
32 type net_device_shape_fields_12 =
33 { net_device_shape_fields_12_ip6_ptr : Virt_mem_mmap.addr;
34 net_device_shape_fields_12_ip_ptr : Virt_mem_mmap.addr;
35 net_device_shape_fields_12_next : Virt_mem_mmap.addr
37 type net_device_shape_fields_13 =
38 { net_device_shape_fields_13_dev_list'next : Virt_mem_mmap.addr;
39 net_device_shape_fields_13_dev_list'prev : Virt_mem_mmap.addr;
40 net_device_shape_fields_13_ip6_ptr : Virt_mem_mmap.addr;
41 net_device_shape_fields_13_ip_ptr : Virt_mem_mmap.addr
43 type net_device_content_fields_14 =
44 { net_device_content_fields_14_addr_len : int64;
45 net_device_content_fields_14_flags : int64;
46 net_device_content_fields_14_mtu : int64;
47 net_device_content_fields_14_name : string;
48 net_device_content_fields_14_operstate : int64;
49 net_device_content_fields_14_perm_addr : string
51 type ('a, 'b) net = { net_shape : 'a; net_content : 'b };;
52 type net_shape_fields_22 =
53 { net_shape_fields_22_dev_base_head'next : Virt_mem_mmap.addr;
54 net_shape_fields_22_dev_base_head'prev : Virt_mem_mmap.addr
56 type net_content_fields_23 = unit;;
57 type ('a, 'b) in_device = { in_device_shape : 'a; in_device_content : 'b };;
58 type in_device_shape_fields_28 =
59 { in_device_shape_fields_28_ifa_list : Virt_mem_mmap.addr
61 type in_device_content_fields_29 = unit;;
62 type ('a, 'b) inet6_dev = { inet6_dev_shape : 'a; inet6_dev_content : 'b };;
63 type inet6_dev_shape_fields_34 =
64 { inet6_dev_shape_fields_34_addr_list : Virt_mem_mmap.addr
66 type inet6_dev_content_fields_35 = unit;;
67 type ('a, 'b) in_ifaddr = { in_ifaddr_shape : 'a; in_ifaddr_content : 'b };;
68 type in_ifaddr_shape_fields_40 =
69 { in_ifaddr_shape_fields_40_ifa_next : Virt_mem_mmap.addr
71 type in_ifaddr_content_fields_41 =
72 { in_ifaddr_content_fields_41_ifa_address : int64;
73 in_ifaddr_content_fields_41_ifa_broadcast : int64;
74 in_ifaddr_content_fields_41_ifa_local : int64;
75 in_ifaddr_content_fields_41_ifa_mask : int64
77 type ('a, 'b) inet6_ifaddr =
78 { inet6_ifaddr_shape : 'a; inet6_ifaddr_content : 'b
80 type inet6_ifaddr_shape_fields_46 =
81 { inet6_ifaddr_shape_fields_46_lst_next : Virt_mem_mmap.addr
83 type inet6_ifaddr_content_fields_47 =
84 { inet6_ifaddr_content_fields_47_prefix_len : int64
86 module StringMap = Map.Make(String);;
87 let offset_of_net_device_dev_list'next =
89 StringMap.add "2.6.27-0.226.rc1.git5.fc10.ppc" 48
90 (StringMap.add "2.6.26.1-9.fc9.ppc64" 72
91 (StringMap.add "2.6.25.14-69.fc8.x86_64" 72
92 (StringMap.add "2.6.24-0.167.rc8.git4.fc9.ppc64" 72
93 (StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc" 48 StringMap.
95 in fun kernel_version -> StringMap.find kernel_version map;;
96 let match_err = "failed to match kernel structure";;
98 let task_struct_parser_4 kernel_version bits =
100 | { state : zero+32 : offset(0), littleendian;
101 prio : zero+32 : offset(192), littleendian;
102 static_prio : zero+32 : offset(224), littleendian;
103 normal_prio : zero+32 : offset(256), littleendian;
104 run_list'next : zero+32 : offset(288), littleendian;
105 run_list'prev : zero+32 : offset(320), littleendian;
106 tasks'next : zero+32 : offset(992), littleendian;
107 tasks'prev : zero+32 : offset(1024), littleendian;
108 pid : zero+32 : offset(1344), littleendian;
109 comm : 128 : offset(3232), string } ->
111 { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L;
112 task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L;
113 task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L;
114 task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in
116 { task_struct_content_fields_3_comm = comm;
117 task_struct_content_fields_3_normal_prio = normal_prio;
118 task_struct_content_fields_3_pid = pid;
119 task_struct_content_fields_3_prio = prio;
120 task_struct_content_fields_3_state = state;
121 task_struct_content_fields_3_static_prio = static_prio } in
122 { task_struct_shape = shape; task_struct_content = content }
124 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_4", match_err));;
125 let task_struct_parser_5 kernel_version bits =
127 | { state : zero+64 : offset(0), bigendian;
128 prio : zero+32 : offset(320), bigendian;
129 static_prio : zero+32 : offset(352), bigendian;
130 normal_prio : zero+32 : offset(384), bigendian;
131 run_list'next : zero+64 : offset(448), bigendian;
132 run_list'prev : zero+64 : offset(512), bigendian;
133 tasks'next : zero+64 : offset(1600), bigendian;
134 tasks'prev : zero+64 : offset(1664), bigendian;
135 pid : zero+32 : offset(2208), bigendian;
136 comm : 128 : offset(5440), string } ->
138 { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L;
139 task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L;
140 task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L;
141 task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in
143 { task_struct_content_fields_3_comm = comm;
144 task_struct_content_fields_3_normal_prio = normal_prio;
145 task_struct_content_fields_3_pid = pid;
146 task_struct_content_fields_3_prio = prio;
147 task_struct_content_fields_3_state = state;
148 task_struct_content_fields_3_static_prio = static_prio } in
149 { task_struct_shape = shape; task_struct_content = content }
151 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_5", match_err));;
152 let task_struct_parser_6 kernel_version bits =
154 | { state : zero+64 : offset(0), littleendian;
155 prio : zero+32 : offset(320), littleendian;
156 static_prio : zero+32 : offset(352), littleendian;
157 normal_prio : zero+32 : offset(384), littleendian;
158 run_list'next : zero+64 : offset(448), littleendian;
159 run_list'prev : zero+64 : offset(512), littleendian;
160 tasks'next : zero+64 : offset(1536), littleendian;
161 tasks'prev : zero+64 : offset(1600), littleendian;
162 pid : zero+32 : offset(2144), littleendian;
163 comm : 128 : offset(5440), string } ->
165 { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L;
166 task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L;
167 task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L;
168 task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in
170 { task_struct_content_fields_3_comm = comm;
171 task_struct_content_fields_3_normal_prio = normal_prio;
172 task_struct_content_fields_3_pid = pid;
173 task_struct_content_fields_3_prio = prio;
174 task_struct_content_fields_3_state = state;
175 task_struct_content_fields_3_static_prio = static_prio } in
176 { task_struct_shape = shape; task_struct_content = content }
178 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_6", match_err));;
179 let task_struct_parser_7 kernel_version bits =
181 | { state : zero+32 : offset(0), bigendian;
182 prio : zero+32 : offset(160), bigendian;
183 static_prio : zero+32 : offset(192), bigendian;
184 normal_prio : zero+32 : offset(224), bigendian;
185 run_list'next : zero+32 : offset(256), bigendian;
186 run_list'prev : zero+32 : offset(288), bigendian;
187 tasks'next : zero+32 : offset(2176), bigendian;
188 tasks'prev : zero+32 : offset(2208), bigendian;
189 pid : zero+32 : offset(2528), bigendian;
190 comm : 128 : offset(4416), string } ->
192 { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L;
193 task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L;
194 task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L;
195 task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in
197 { task_struct_content_fields_3_comm = comm;
198 task_struct_content_fields_3_normal_prio = normal_prio;
199 task_struct_content_fields_3_pid = pid;
200 task_struct_content_fields_3_prio = prio;
201 task_struct_content_fields_3_state = state;
202 task_struct_content_fields_3_static_prio = static_prio } in
203 { task_struct_shape = shape; task_struct_content = content }
205 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_7", match_err));;
206 let task_struct_parser_8 kernel_version bits =
208 | { state : zero+64 : offset(0), bigendian;
209 prio : zero+32 : offset(224), bigendian;
210 static_prio : zero+32 : offset(256), bigendian;
211 normal_prio : zero+32 : offset(288), bigendian;
212 run_list'next : zero+64 : offset(320), bigendian;
213 run_list'prev : zero+64 : offset(384), bigendian;
214 tasks'next : zero+64 : offset(3648), bigendian;
215 tasks'prev : zero+64 : offset(3712), bigendian;
216 pid : zero+32 : offset(4160), bigendian;
217 comm : 128 : offset(7752), string } ->
219 { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L;
220 task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L;
221 task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L;
222 task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in
224 { task_struct_content_fields_3_comm = comm;
225 task_struct_content_fields_3_normal_prio = normal_prio;
226 task_struct_content_fields_3_pid = pid;
227 task_struct_content_fields_3_prio = prio;
228 task_struct_content_fields_3_state = state;
229 task_struct_content_fields_3_static_prio = static_prio } in
230 { task_struct_shape = shape; task_struct_content = content }
232 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_8", match_err));;
233 let task_struct_parser_9 kernel_version bits =
235 | { state : zero+64 : offset(0), littleendian;
236 prio : zero+32 : offset(224), littleendian;
237 static_prio : zero+32 : offset(256), littleendian;
238 normal_prio : zero+32 : offset(288), littleendian;
239 tasks'next : zero+64 : offset(3840), littleendian;
240 tasks'prev : zero+64 : offset(3904), littleendian;
241 pid : zero+32 : offset(4352), littleendian;
242 comm : 128 : offset(8392), string } ->
244 { task_struct_shape_fields_2_tasks'next = Int64.sub tasks'next 480L;
245 task_struct_shape_fields_2_tasks'prev = Int64.sub tasks'prev 488L } in
247 { task_struct_content_fields_3_comm = comm;
248 task_struct_content_fields_3_normal_prio = normal_prio;
249 task_struct_content_fields_3_pid = pid;
250 task_struct_content_fields_3_prio = prio;
251 task_struct_content_fields_3_state = state;
252 task_struct_content_fields_3_static_prio = static_prio } in
253 { task_struct_shape = shape; task_struct_content = content }
255 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_9", match_err));;
256 let task_struct_parser_10 kernel_version bits =
258 | { state : zero+64 : offset(0), bigendian;
259 prio : zero+32 : offset(256), bigendian;
260 static_prio : zero+32 : offset(288), bigendian;
261 normal_prio : zero+32 : offset(320), bigendian;
262 tasks'next : zero+64 : offset(4096), bigendian;
263 tasks'prev : zero+64 : offset(4160), bigendian;
264 pid : zero+32 : offset(4608), bigendian;
265 comm : 128 : offset(8712), string } ->
267 { task_struct_shape_fields_2_tasks'next = Int64.sub tasks'next 480L;
268 task_struct_shape_fields_2_tasks'prev = Int64.sub tasks'prev 488L } in
270 { task_struct_content_fields_3_comm = comm;
271 task_struct_content_fields_3_normal_prio = normal_prio;
272 task_struct_content_fields_3_pid = pid;
273 task_struct_content_fields_3_prio = prio;
274 task_struct_content_fields_3_state = state;
275 task_struct_content_fields_3_static_prio = static_prio } in
276 { task_struct_shape = shape; task_struct_content = content }
278 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_10", match_err));;
279 let task_struct_parser_11 kernel_version bits =
281 | { state : zero+32 : offset(0), bigendian;
282 prio : zero+32 : offset(192), bigendian;
283 static_prio : zero+32 : offset(224), bigendian;
284 normal_prio : zero+32 : offset(256), bigendian;
285 tasks'next : zero+32 : offset(3712), bigendian;
286 tasks'prev : zero+32 : offset(3744), bigendian;
287 pid : zero+32 : offset(4064), bigendian;
288 comm : 128 : offset(6464), string } ->
290 { task_struct_shape_fields_2_tasks'next = Int64.sub tasks'next 480L;
291 task_struct_shape_fields_2_tasks'prev = Int64.sub tasks'prev 488L } in
293 { task_struct_content_fields_3_comm = comm;
294 task_struct_content_fields_3_normal_prio = normal_prio;
295 task_struct_content_fields_3_pid = pid;
296 task_struct_content_fields_3_prio = prio;
297 task_struct_content_fields_3_state = state;
298 task_struct_content_fields_3_static_prio = static_prio } in
299 { task_struct_shape = shape; task_struct_content = content }
301 raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_11", match_err));;
302 let net_device_parser_15 kernel_version bits =
304 | { name : 128 : offset(0), string;
305 next : zero+32 : offset(384), littleendian;
306 flags : zero+32 : offset(704), littleendian;
307 operstate : zero+8 : offset(784), littleendian;
308 mtu : zero+32 : offset(800), littleendian;
309 perm_addr : 256 : offset(896), string;
310 addr_len : zero+8 : offset(1152), littleendian;
311 ip_ptr : zero+32 : offset(1344), littleendian;
312 ip6_ptr : zero+32 : offset(1408), littleendian } ->
314 { net_device_shape_fields_12_ip6_ptr = ip6_ptr;
315 net_device_shape_fields_12_ip_ptr = ip_ptr;
316 net_device_shape_fields_12_next = next } in
318 { net_device_content_fields_14_addr_len = addr_len;
319 net_device_content_fields_14_flags = flags;
320 net_device_content_fields_14_mtu = mtu;
321 net_device_content_fields_14_name = name;
322 net_device_content_fields_14_operstate = operstate;
323 net_device_content_fields_14_perm_addr = perm_addr } in
324 { net_device_shape = shape; net_device_content = content }
326 raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_15", match_err));;
327 let net_device_parser_16 kernel_version bits =
329 | { name : 128 : offset(0), string;
330 next : zero+64 : offset(576), bigendian;
331 flags : zero+32 : offset(1152), bigendian;
332 operstate : zero+8 : offset(1232), bigendian;
333 mtu : zero+32 : offset(1248), bigendian;
334 perm_addr : 256 : offset(1408), string;
335 addr_len : zero+8 : offset(1664), bigendian;
336 ip_ptr : zero+64 : offset(1984), bigendian;
337 ip6_ptr : zero+64 : offset(2112), bigendian } ->
339 { net_device_shape_fields_12_ip6_ptr = ip6_ptr;
340 net_device_shape_fields_12_ip_ptr = ip_ptr;
341 net_device_shape_fields_12_next = next } in
343 { net_device_content_fields_14_addr_len = addr_len;
344 net_device_content_fields_14_flags = flags;
345 net_device_content_fields_14_mtu = mtu;
346 net_device_content_fields_14_name = name;
347 net_device_content_fields_14_operstate = operstate;
348 net_device_content_fields_14_perm_addr = perm_addr } in
349 { net_device_shape = shape; net_device_content = content }
351 raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_16", match_err));;
352 let net_device_parser_17 kernel_version bits =
354 | { name : 128 : offset(0), string;
355 next : zero+64 : offset(576), littleendian;
356 flags : zero+32 : offset(1152), littleendian;
357 operstate : zero+8 : offset(1232), littleendian;
358 mtu : zero+32 : offset(1248), littleendian;
359 perm_addr : 256 : offset(1408), string;
360 addr_len : zero+8 : offset(1664), littleendian;
361 ip_ptr : zero+64 : offset(1984), littleendian;
362 ip6_ptr : zero+64 : offset(2112), littleendian } ->
364 { net_device_shape_fields_12_ip6_ptr = ip6_ptr;
365 net_device_shape_fields_12_ip_ptr = ip_ptr;
366 net_device_shape_fields_12_next = next } in
368 { net_device_content_fields_14_addr_len = addr_len;
369 net_device_content_fields_14_flags = flags;
370 net_device_content_fields_14_mtu = mtu;
371 net_device_content_fields_14_name = name;
372 net_device_content_fields_14_operstate = operstate;
373 net_device_content_fields_14_perm_addr = perm_addr } in
374 { net_device_shape = shape; net_device_content = content }
376 raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_17", match_err));;
377 let net_device_parser_18 kernel_version bits =
379 | { name : 128 : offset(0), string;
380 dev_list'next : zero+32 : offset(384), bigendian;
381 dev_list'prev : zero+32 : offset(416), bigendian;
382 flags : zero+32 : offset(1472), bigendian;
383 operstate : zero+8 : offset(1552), bigendian;
384 mtu : zero+32 : offset(1568), bigendian;
385 perm_addr : 256 : offset(1664), string;
386 addr_len : zero+8 : offset(1920), bigendian;
387 ip_ptr : zero+32 : offset(2112), bigendian;
388 ip6_ptr : zero+32 : offset(2176), bigendian } ->
390 { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L;
391 net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L;
392 net_device_shape_fields_13_ip6_ptr = ip6_ptr;
393 net_device_shape_fields_13_ip_ptr = ip_ptr } in
395 { net_device_content_fields_14_addr_len = addr_len;
396 net_device_content_fields_14_flags = flags;
397 net_device_content_fields_14_mtu = mtu;
398 net_device_content_fields_14_name = name;
399 net_device_content_fields_14_operstate = operstate;
400 net_device_content_fields_14_perm_addr = perm_addr } in
401 { net_device_shape = shape; net_device_content = content }
403 raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_18", match_err));;
404 let net_device_parser_19 kernel_version bits =
406 | { name : 128 : offset(0), string;
407 dev_list'next : zero+64 : offset(576), bigendian;
408 dev_list'prev : zero+64 : offset(640), bigendian;
409 flags : zero+32 : offset(2880), bigendian;
410 operstate : zero+8 : offset(2960), bigendian;
411 mtu : zero+32 : offset(2976), bigendian;
412 perm_addr : 256 : offset(3136), string;
413 addr_len : zero+8 : offset(3392), bigendian;
414 ip_ptr : zero+64 : offset(3840), bigendian;
415 ip6_ptr : zero+64 : offset(3968), bigendian } ->
417 { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L;
418 net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L;
419 net_device_shape_fields_13_ip6_ptr = ip6_ptr;
420 net_device_shape_fields_13_ip_ptr = ip_ptr } in
422 { net_device_content_fields_14_addr_len = addr_len;
423 net_device_content_fields_14_flags = flags;
424 net_device_content_fields_14_mtu = mtu;
425 net_device_content_fields_14_name = name;
426 net_device_content_fields_14_operstate = operstate;
427 net_device_content_fields_14_perm_addr = perm_addr } in
428 { net_device_shape = shape; net_device_content = content }
430 raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_19", match_err));;
431 let net_device_parser_20 kernel_version bits =
433 | { name : 128 : offset(0), string;
434 dev_list'next : zero+64 : offset(576), littleendian;
435 dev_list'prev : zero+64 : offset(640), littleendian;
436 flags : zero+32 : offset(2880), littleendian;
437 operstate : zero+8 : offset(2960), littleendian;
438 mtu : zero+32 : offset(2976), littleendian;
439 perm_addr : 256 : offset(3136), string;
440 addr_len : zero+8 : offset(3392), littleendian;
441 ip_ptr : zero+64 : offset(3840), littleendian;
442 ip6_ptr : zero+64 : offset(3968), littleendian } ->
444 { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L;
445 net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L;
446 net_device_shape_fields_13_ip6_ptr = ip6_ptr;
447 net_device_shape_fields_13_ip_ptr = ip_ptr } in
449 { net_device_content_fields_14_addr_len = addr_len;
450 net_device_content_fields_14_flags = flags;
451 net_device_content_fields_14_mtu = mtu;
452 net_device_content_fields_14_name = name;
453 net_device_content_fields_14_operstate = operstate;
454 net_device_content_fields_14_perm_addr = perm_addr } in
455 { net_device_shape = shape; net_device_content = content }
457 raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_20", match_err));;
458 let net_device_parser_21 kernel_version bits =
460 | { name : 128 : offset(0), string;
461 dev_list'next : zero+32 : offset(384), bigendian;
462 dev_list'prev : zero+32 : offset(416), bigendian;
463 flags : zero+32 : offset(1536), bigendian;
464 operstate : zero+8 : offset(1616), bigendian;
465 mtu : zero+32 : offset(1632), bigendian;
466 perm_addr : 256 : offset(1760), string;
467 addr_len : zero+8 : offset(2016), bigendian;
468 ip_ptr : zero+32 : offset(2432), bigendian;
469 ip6_ptr : zero+32 : offset(2496), bigendian } ->
471 { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L;
472 net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L;
473 net_device_shape_fields_13_ip6_ptr = ip6_ptr;
474 net_device_shape_fields_13_ip_ptr = ip_ptr } in
476 { net_device_content_fields_14_addr_len = addr_len;
477 net_device_content_fields_14_flags = flags;
478 net_device_content_fields_14_mtu = mtu;
479 net_device_content_fields_14_name = name;
480 net_device_content_fields_14_operstate = operstate;
481 net_device_content_fields_14_perm_addr = perm_addr } in
482 { net_device_shape = shape; net_device_content = content }
484 raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_21", match_err));;
485 let net_parser_24 kernel_version bits =
487 | { dev_base_head'next : zero+64 : offset(704), bigendian;
488 dev_base_head'prev : zero+64 : offset(768), bigendian } ->
490 { net_shape_fields_22_dev_base_head'next = (
491 let offset = offset_of_net_device_dev_list'next kernel_version in
492 let offset = Int64.of_int offset in
493 Int64.sub dev_base_head'next offset
495 net_shape_fields_22_dev_base_head'prev = (
496 let offset = offset_of_net_device_dev_list'next kernel_version in
497 let offset = Int64.of_int offset in
498 Int64.sub dev_base_head'prev offset
502 { net_shape = shape; net_content = content }
504 raise (Virt_mem_types.ParseError ("net", "net_parser_24", match_err));;
505 let net_parser_25 kernel_version bits =
507 | { dev_base_head'next : zero+64 : offset(768), littleendian;
508 dev_base_head'prev : zero+64 : offset(832), littleendian } ->
510 { net_shape_fields_22_dev_base_head'next = (
511 let offset = offset_of_net_device_dev_list'next kernel_version in
512 let offset = Int64.of_int offset in
513 Int64.sub dev_base_head'next offset
515 net_shape_fields_22_dev_base_head'prev = (
516 let offset = offset_of_net_device_dev_list'next kernel_version in
517 let offset = Int64.of_int offset in
518 Int64.sub dev_base_head'prev offset
522 { net_shape = shape; net_content = content }
524 raise (Virt_mem_types.ParseError ("net", "net_parser_25", match_err));;
525 let net_parser_26 kernel_version bits =
527 | { dev_base_head'next : zero+64 : offset(768), bigendian;
528 dev_base_head'prev : zero+64 : offset(832), bigendian } ->
530 { net_shape_fields_22_dev_base_head'next = (
531 let offset = offset_of_net_device_dev_list'next kernel_version in
532 let offset = Int64.of_int offset in
533 Int64.sub dev_base_head'next offset
535 net_shape_fields_22_dev_base_head'prev = (
536 let offset = offset_of_net_device_dev_list'next kernel_version in
537 let offset = Int64.of_int offset in
538 Int64.sub dev_base_head'prev offset
542 { net_shape = shape; net_content = content }
544 raise (Virt_mem_types.ParseError ("net", "net_parser_26", match_err));;
545 let net_parser_27 kernel_version bits =
547 | { dev_base_head'next : zero+32 : offset(448), bigendian;
548 dev_base_head'prev : zero+32 : offset(480), bigendian } ->
550 { net_shape_fields_22_dev_base_head'next = (
551 let offset = offset_of_net_device_dev_list'next kernel_version in
552 let offset = Int64.of_int offset in
553 Int64.sub dev_base_head'next offset
555 net_shape_fields_22_dev_base_head'prev = (
556 let offset = offset_of_net_device_dev_list'next kernel_version in
557 let offset = Int64.of_int offset in
558 Int64.sub dev_base_head'prev offset
562 { net_shape = shape; net_content = content }
564 raise (Virt_mem_types.ParseError ("net", "net_parser_27", match_err));;
565 let in_device_parser_30 kernel_version bits =
567 | { ifa_list : zero+32 : offset(96), littleendian } ->
569 { in_device_shape_fields_28_ifa_list = ifa_list } in
572 { in_device_shape = shape; in_device_content = content }
574 raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_30", match_err));;
575 let in_device_parser_33 kernel_version bits =
577 | { ifa_list : zero+32 : offset(96), bigendian } ->
579 { in_device_shape_fields_28_ifa_list = ifa_list } in
582 { in_device_shape = shape; in_device_content = content }
584 raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_33", match_err));;
585 let in_device_parser_32 kernel_version bits =
587 | { ifa_list : zero+64 : offset(128), littleendian } ->
589 { in_device_shape_fields_28_ifa_list = ifa_list } in
592 { in_device_shape = shape; in_device_content = content }
594 raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_32", match_err));;
595 let in_device_parser_31 kernel_version bits =
597 | { ifa_list : zero+64 : offset(128), bigendian } ->
599 { in_device_shape_fields_28_ifa_list = ifa_list } in
602 { in_device_shape = shape; in_device_content = content }
604 raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_31", match_err));;
605 let inet6_dev_parser_36 kernel_version bits =
607 | { addr_list : zero+32 : offset(32), littleendian } ->
609 { inet6_dev_shape_fields_34_addr_list = addr_list } in
612 { inet6_dev_shape = shape; inet6_dev_content = content }
614 raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_36", match_err));;
615 let inet6_dev_parser_39 kernel_version bits =
617 | { addr_list : zero+32 : offset(32), bigendian } ->
619 { inet6_dev_shape_fields_34_addr_list = addr_list } in
622 { inet6_dev_shape = shape; inet6_dev_content = content }
624 raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_39", match_err));;
625 let inet6_dev_parser_38 kernel_version bits =
627 | { addr_list : zero+64 : offset(64), littleendian } ->
629 { inet6_dev_shape_fields_34_addr_list = addr_list } in
632 { inet6_dev_shape = shape; inet6_dev_content = content }
634 raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_38", match_err));;
635 let inet6_dev_parser_37 kernel_version bits =
637 | { addr_list : zero+64 : offset(64), bigendian } ->
639 { inet6_dev_shape_fields_34_addr_list = addr_list } in
642 { inet6_dev_shape = shape; inet6_dev_content = content }
644 raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_37", match_err));;
645 let in_ifaddr_parser_42 kernel_version bits =
647 | { ifa_next : zero+32 : offset(0), littleendian;
648 ifa_local : zero+32 : offset(128), littleendian;
649 ifa_address : zero+32 : offset(160), littleendian;
650 ifa_mask : zero+32 : offset(192), littleendian;
651 ifa_broadcast : zero+32 : offset(224), littleendian } ->
653 { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in
655 { in_ifaddr_content_fields_41_ifa_address = ifa_address;
656 in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast;
657 in_ifaddr_content_fields_41_ifa_local = ifa_local;
658 in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in
659 { in_ifaddr_shape = shape; in_ifaddr_content = content }
661 raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_42", match_err));;
662 let in_ifaddr_parser_45 kernel_version bits =
664 | { ifa_next : zero+32 : offset(0), bigendian;
665 ifa_local : zero+32 : offset(128), bigendian;
666 ifa_address : zero+32 : offset(160), bigendian;
667 ifa_mask : zero+32 : offset(192), bigendian;
668 ifa_broadcast : zero+32 : offset(224), bigendian } ->
670 { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in
672 { in_ifaddr_content_fields_41_ifa_address = ifa_address;
673 in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast;
674 in_ifaddr_content_fields_41_ifa_local = ifa_local;
675 in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in
676 { in_ifaddr_shape = shape; in_ifaddr_content = content }
678 raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_45", match_err));;
679 let in_ifaddr_parser_43 kernel_version bits =
681 | { ifa_next : zero+64 : offset(0), bigendian;
682 ifa_local : zero+32 : offset(256), bigendian;
683 ifa_address : zero+32 : offset(288), bigendian;
684 ifa_mask : zero+32 : offset(320), bigendian;
685 ifa_broadcast : zero+32 : offset(352), bigendian } ->
687 { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in
689 { in_ifaddr_content_fields_41_ifa_address = ifa_address;
690 in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast;
691 in_ifaddr_content_fields_41_ifa_local = ifa_local;
692 in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in
693 { in_ifaddr_shape = shape; in_ifaddr_content = content }
695 raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_43", match_err));;
696 let in_ifaddr_parser_44 kernel_version bits =
698 | { ifa_next : zero+64 : offset(0), littleendian;
699 ifa_local : zero+32 : offset(256), littleendian;
700 ifa_address : zero+32 : offset(288), littleendian;
701 ifa_mask : zero+32 : offset(320), littleendian;
702 ifa_broadcast : zero+32 : offset(352), littleendian } ->
704 { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in
706 { in_ifaddr_content_fields_41_ifa_address = ifa_address;
707 in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast;
708 in_ifaddr_content_fields_41_ifa_local = ifa_local;
709 in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in
710 { in_ifaddr_shape = shape; in_ifaddr_content = content }
712 raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_44", match_err));;
713 let inet6_ifaddr_parser_48 kernel_version bits =
715 | { prefix_len : zero+32 : offset(128), littleendian;
716 lst_next : zero+32 : offset(1024), littleendian } ->
718 { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in
720 { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in
721 { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
723 raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_48", match_err));;
724 let inet6_ifaddr_parser_50 kernel_version bits =
726 | { prefix_len : zero+32 : offset(128), littleendian;
727 lst_next : zero+64 : offset(1856), littleendian } ->
729 { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in
731 { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in
732 { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
734 raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_50", match_err));;
735 let inet6_ifaddr_parser_49 kernel_version bits =
737 | { prefix_len : zero+32 : offset(128), bigendian;
738 lst_next : zero+64 : offset(1472), bigendian } ->
740 { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in
742 { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in
743 { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
745 raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_49", match_err));;
746 let inet6_ifaddr_parser_51 kernel_version bits =
748 | { prefix_len : zero+32 : offset(128), littleendian;
749 lst_next : zero+64 : offset(1472), littleendian } ->
751 { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in
753 { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in
754 { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
756 raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_51", match_err));;
757 let inet6_ifaddr_parser_52 kernel_version bits =
759 | { prefix_len : zero+32 : offset(128), bigendian;
760 lst_next : zero+32 : offset(928), bigendian } ->
762 { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in
764 { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in
765 { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
767 raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_52", match_err));;
768 let inet6_ifaddr_parser_53 kernel_version bits =
770 | { prefix_len : zero+32 : offset(128), littleendian;
771 lst_next : zero+64 : offset(1280), littleendian } ->
773 { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in
775 { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in
776 { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
778 raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_53", match_err));;
779 let inet6_ifaddr_parser_54 kernel_version bits =
781 | { prefix_len : zero+32 : offset(128), bigendian;
782 lst_next : zero+64 : offset(1280), bigendian } ->
784 { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in
786 { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in
787 { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
789 raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_54", match_err));;