- raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_43", match_err));;
-let task_struct_shape_fields_1_follower load followers map addr shape =
- let (_, _, _, _, _, _, f) = followers in
- let offset = shape.task_struct_shape_fields_1_tasks'next_offset
- and adj = shape.task_struct_shape_fields_1_tasks'next_adjustment in
- let offset = Int64.of_int offset and adj = Int64.of_int adj in
- let addr = Int64.sub (Int64.add addr offset) adj in
- let map = AddrMap.add addr ("task_struct", 0) map in
- let out_addr = Int64.sub shape.task_struct_shape_fields_1_tasks'next adj in
- let map = f load followers map out_addr in map;;
-let net_device_shape_fields_8_follower load followers map addr shape =
- let (_, _, _, _, _, f, _) = followers in
- let offset = shape.net_device_shape_fields_8_dev_list'next_offset
- and adj = shape.net_device_shape_fields_8_dev_list'next_adjustment in
- let offset = Int64.of_int offset and adj = Int64.of_int adj in
- let addr = Int64.sub (Int64.add addr offset) adj in
- let map = AddrMap.add addr ("net_device", 0) map in
- let out_addr =
- Int64.sub shape.net_device_shape_fields_8_dev_list'next adj in
- let map = f load followers map out_addr in
- let (_, _, f, _, _, _, _) = followers in
- let map = f load followers map shape.net_device_shape_fields_8_ip6_ptr in
- let (_, _, _, f, _, _, _) = followers in
- let map = f load followers map shape.net_device_shape_fields_8_ip_ptr
- in map;;
-let net_shape_fields_14_follower load followers map addr shape =
- let (_, _, _, _, _, f, _) = followers in
- let offset = shape.net_shape_fields_14_dev_base_head'next_offset
- and adj = shape.net_shape_fields_14_dev_base_head'next_adjustment in
- let offset = Int64.of_int offset and adj = Int64.of_int adj in
- let addr = Int64.sub (Int64.add addr offset) adj in
- let map = AddrMap.add addr ("net_device", 0) map in
- let out_addr =
- Int64.sub shape.net_shape_fields_14_dev_base_head'next adj in
- let map = f load followers map out_addr in
- let (_, _, _, _, _, f, _) = followers in
- let offset = shape.net_shape_fields_14_dev_base_head'prev_offset
- and adj = shape.net_shape_fields_14_dev_base_head'prev_adjustment in
- let offset = Int64.of_int offset and adj = Int64.of_int adj in
- let addr = Int64.sub (Int64.add addr offset) adj in
- let map = AddrMap.add addr ("net_device", 0) map in
- let out_addr =
- Int64.sub shape.net_shape_fields_14_dev_base_head'prev adj in
- let map = f load followers map out_addr in map;;
-let in_device_shape_fields_20_follower load followers map addr shape =
- let (_, f, _, _, _, _, _) = followers in
- let map = f load followers map shape.in_device_shape_fields_20_ifa_list
- in map;;
-let inet6_dev_shape_fields_26_follower load followers map addr shape =
- let (f, _, _, _, _, _, _) = followers in
- let map = f load followers map shape.inet6_dev_shape_fields_26_addr_list
- in map;;
-let in_ifaddr_shape_fields_32_follower load followers map addr shape =
- let (_, f, _, _, _, _, _) = followers in
- let map = f load followers map shape.in_ifaddr_shape_fields_32_ifa_next
- in map;;
-let inet6_ifaddr_shape_fields_38_follower load followers map addr shape =
- let (f, _, _, _, _, _, _) = followers in
- let map = f load followers map shape.inet6_ifaddr_shape_fields_38_lst_next
- in map;;
-let kv_follower kernel_version struct_name total_size parserfn followerfn
- load followers map addr =
+ raise (ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_37", match_err));;
+let inet6_ifaddr_parser_39 kernel_version bits =
+ bitmatch bits with
+ | { prefix_len : zero+32 : offset(128), littleendian;
+ lst_next : zero+64 : offset(1216), littleendian } ->
+ { inet6_ifaddr_lst_next = lst_next;
+ inet6_ifaddr_prefix_len = prefix_len }
+ | { _ } ->
+ raise (ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_39", match_err));;
+let inet6_ifaddr_parser_41 kernel_version bits =
+ bitmatch bits with
+ | { prefix_len : zero+32 : offset(128), bigendian;
+ lst_next : zero+64 : offset(1216), bigendian } ->
+ { inet6_ifaddr_lst_next = lst_next;
+ inet6_ifaddr_prefix_len = prefix_len }
+ | { _ } ->
+ raise (ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_41", match_err));;
+let inet6_ifaddr_parser_38 kernel_version bits =
+ bitmatch bits with
+ | { prefix_len : zero+32 : offset(128), bigendian;
+ lst_next : zero+32 : offset(736), bigendian } ->
+ { inet6_ifaddr_lst_next = lst_next;
+ inet6_ifaddr_prefix_len = prefix_len }
+ | { _ } ->
+ raise (ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_38", match_err));;
+let inet6_ifaddr_parser_40 kernel_version bits =
+ bitmatch bits with
+ | { prefix_len : zero+32 : offset(128), littleendian;
+ lst_next : zero+32 : offset(736), littleendian } ->
+ { inet6_ifaddr_lst_next = lst_next;
+ inet6_ifaddr_prefix_len = prefix_len }
+ | { _ } ->
+ raise (ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_40", match_err));;
+let size_of_task_struct =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" 2496
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" 2524
+ (StringMap.add "2.6.25.14-108.fc9.i586" 1832
+ (StringMap.add "2.6.25.14-108.fc9.i686" 1832
+ (StringMap.add "2.6.25.14-69.fc8.ppc" 1952
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" 2496
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" 2496
+ (StringMap.add "2.6.25.14-69.fc8.i586" 1832
+ (StringMap.add "2.6.20-1.2933.fc6.ppc" 1592
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64" 1920
+ (StringMap.add "2.6.25.14-69.fc8.ppc64" 2524
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ 1832
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686" 1400
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586" 1400
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc" 1952
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ 2112
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ 1832 StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "task_struct";;
+let size_of_net_device =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" 1752
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" 1776
+ (StringMap.add "2.6.25.14-108.fc9.i586" 1212
+ (StringMap.add "2.6.25.14-108.fc9.i686" 1212
+ (StringMap.add "2.6.25.14-69.fc8.ppc" 904
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" 1752
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" 1752
+ (StringMap.add "2.6.25.14-69.fc8.i586" 1212
+ (StringMap.add "2.6.20-1.2933.fc6.ppc" 668
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64" 1260
+ (StringMap.add "2.6.25.14-69.fc8.ppc64" 1776
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ 1212
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686" 912
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586" 912
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc" 904
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ 1260
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ 1212 StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "net_device";;
+let size_of_net =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" 488
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" 488
+ (StringMap.add "2.6.25.14-108.fc9.i586" 284
+ (StringMap.add "2.6.25.14-108.fc9.i686" 284
+ (StringMap.add "2.6.25.14-69.fc8.ppc" 276
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" 488
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" 488
+ (StringMap.add "2.6.25.14-69.fc8.i586" 284
+ (StringMap.add "2.6.25.14-69.fc8.ppc64" 488
+ (StringMap.add "2.6.25.11-97.fc9.i686" 284
+ (StringMap.add "2.6.25.14-108.fc9.ppc" 276
+ (StringMap.add "2.6.25.14-69.fc8.i686"
+ 284 StringMap.empty)))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "net";;
+let size_of_in_device =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" 368
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" 368
+ (StringMap.add "2.6.25.14-108.fc9.i586" 244
+ (StringMap.add "2.6.25.14-108.fc9.i686" 244
+ (StringMap.add "2.6.25.14-69.fc8.ppc" 236
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" 368
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" 368
+ (StringMap.add "2.6.25.14-69.fc8.i586" 244
+ (StringMap.add "2.6.20-1.2933.fc6.ppc" 212
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64" 328
+ (StringMap.add "2.6.25.14-69.fc8.ppc64" 368
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ 244
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686" 216
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586" 216
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc" 236
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ 328
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ 244 StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "in_device";;
+let size_of_inet6_dev =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" 536
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" 536
+ (StringMap.add "2.6.25.14-108.fc9.i586" 356
+ (StringMap.add "2.6.25.14-108.fc9.i686" 356
+ (StringMap.add "2.6.25.14-69.fc8.ppc" 348
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" 536
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" 536
+ (StringMap.add "2.6.25.14-69.fc8.i586" 356
+ (StringMap.add "2.6.20-1.2933.fc6.ppc" 284
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64" 464
+ (StringMap.add "2.6.25.14-69.fc8.ppc64" 536
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ 356
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686" 292
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586" 292
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc" 348
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ 464
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ 356 StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "inet6_dev";;
+let size_of_in_ifaddr =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" 71
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" 71
+ (StringMap.add "2.6.25.14-108.fc9.i586" 55
+ (StringMap.add "2.6.25.14-108.fc9.i686" 55
+ (StringMap.add "2.6.25.14-69.fc8.ppc" 55
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" 71
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" 71
+ (StringMap.add "2.6.25.14-69.fc8.i586" 55
+ (StringMap.add "2.6.20-1.2933.fc6.ppc" 55
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64" 71
+ (StringMap.add "2.6.25.14-69.fc8.ppc64" 71
+ (StringMap.add "2.6.25.11-97.fc9.i686" 55
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686" 55
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586" 55
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc" 55
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ 71
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ 55 StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "in_ifaddr";;
+let size_of_inet6_ifaddr =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" 200
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" 200
+ (StringMap.add "2.6.25.14-108.fc9.i586" 128
+ (StringMap.add "2.6.25.14-108.fc9.i686" 128
+ (StringMap.add "2.6.25.14-69.fc8.ppc" 124
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" 200
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" 200
+ (StringMap.add "2.6.25.14-69.fc8.i586" 128
+ (StringMap.add "2.6.20-1.2933.fc6.ppc" 116
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64" 192
+ (StringMap.add "2.6.25.14-69.fc8.ppc64" 200
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ 128
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686" 116
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586" 116
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc" 124
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ 192
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ 128 StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with
+ | Not_found -> unknown_kernel_version kernel_version "inet6_ifaddr";;
+let parser_of_task_struct =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" task_struct_parser_1
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" task_struct_parser_2
+ (StringMap.add "2.6.25.14-108.fc9.i586" task_struct_parser_3
+ (StringMap.add "2.6.25.14-108.fc9.i686" task_struct_parser_4
+ (StringMap.add "2.6.25.14-69.fc8.ppc" task_struct_parser_5
+ (StringMap.add "2.6.25.14-108.fc9.x86_64"
+ task_struct_parser_1
+ (StringMap.add "2.6.25.11-97.fc9.x86_64"
+ task_struct_parser_1
+ (StringMap.add "2.6.25.14-69.fc8.i586"
+ task_struct_parser_3
+ (StringMap.add "2.6.20-1.2933.fc6.ppc"
+ task_struct_parser_6
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64"
+ task_struct_parser_7
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ task_struct_parser_2
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ task_struct_parser_4
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686"
+ task_struct_parser_8
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586"
+ task_struct_parser_8
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc"
+ task_struct_parser_5
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ task_struct_parser_9
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ task_struct_parser_4
+ StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "task_struct";;
+let parser_of_net_device =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" net_device_parser_10
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" net_device_parser_11
+ (StringMap.add "2.6.25.14-108.fc9.i586" net_device_parser_12
+ (StringMap.add "2.6.25.14-108.fc9.i686" net_device_parser_12
+ (StringMap.add "2.6.25.14-69.fc8.ppc" net_device_parser_13
+ (StringMap.add "2.6.25.14-108.fc9.x86_64"
+ net_device_parser_10
+ (StringMap.add "2.6.25.11-97.fc9.x86_64"
+ net_device_parser_10
+ (StringMap.add "2.6.25.14-69.fc8.i586"
+ net_device_parser_12
+ (StringMap.add "2.6.20-1.2933.fc6.ppc"
+ net_device_parser_14
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64"
+ net_device_parser_15
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ net_device_parser_11
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ net_device_parser_12
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686"
+ net_device_parser_16
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586"
+ net_device_parser_16
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc"
+ net_device_parser_13
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ net_device_parser_17
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ net_device_parser_12
+ StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "net_device";;
+let parser_of_net =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" net_parser_18
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" net_parser_19
+ (StringMap.add "2.6.25.14-108.fc9.i586" net_parser_20
+ (StringMap.add "2.6.25.14-108.fc9.i686" net_parser_20
+ (StringMap.add "2.6.25.14-69.fc8.ppc" net_parser_21
+ (StringMap.add "2.6.25.14-108.fc9.x86_64" net_parser_18
+ (StringMap.add "2.6.25.11-97.fc9.x86_64" net_parser_18
+ (StringMap.add "2.6.25.14-69.fc8.i586" net_parser_20
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ net_parser_19
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ net_parser_20
+ (StringMap.add "2.6.25.14-108.fc9.ppc"
+ net_parser_21
+ (StringMap.add "2.6.25.14-69.fc8.i686"
+ net_parser_20 StringMap.empty)))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "net";;
+let parser_of_in_device =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" in_device_parser_22
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" in_device_parser_23
+ (StringMap.add "2.6.25.14-108.fc9.i586" in_device_parser_24
+ (StringMap.add "2.6.25.14-108.fc9.i686" in_device_parser_24
+ (StringMap.add "2.6.25.14-69.fc8.ppc" in_device_parser_25
+ (StringMap.add "2.6.25.14-108.fc9.x86_64"
+ in_device_parser_22
+ (StringMap.add "2.6.25.11-97.fc9.x86_64"
+ in_device_parser_22
+ (StringMap.add "2.6.25.14-69.fc8.i586"
+ in_device_parser_24
+ (StringMap.add "2.6.20-1.2933.fc6.ppc"
+ in_device_parser_25
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64"
+ in_device_parser_22
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ in_device_parser_23
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ in_device_parser_24
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686"
+ in_device_parser_24
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586"
+ in_device_parser_24
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc"
+ in_device_parser_25
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ in_device_parser_23
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ in_device_parser_24
+ StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "in_device";;
+let parser_of_inet6_dev =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" inet6_dev_parser_26
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" inet6_dev_parser_27
+ (StringMap.add "2.6.25.14-108.fc9.i586" inet6_dev_parser_28
+ (StringMap.add "2.6.25.14-108.fc9.i686" inet6_dev_parser_28
+ (StringMap.add "2.6.25.14-69.fc8.ppc" inet6_dev_parser_29
+ (StringMap.add "2.6.25.14-108.fc9.x86_64"
+ inet6_dev_parser_26
+ (StringMap.add "2.6.25.11-97.fc9.x86_64"
+ inet6_dev_parser_26
+ (StringMap.add "2.6.25.14-69.fc8.i586"
+ inet6_dev_parser_28
+ (StringMap.add "2.6.20-1.2933.fc6.ppc"
+ inet6_dev_parser_29
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64"
+ inet6_dev_parser_26
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ inet6_dev_parser_27
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ inet6_dev_parser_28
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686"
+ inet6_dev_parser_28
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586"
+ inet6_dev_parser_28
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc"
+ inet6_dev_parser_29
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ inet6_dev_parser_27
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ inet6_dev_parser_28
+ StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "inet6_dev";;
+let parser_of_in_ifaddr =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" in_ifaddr_parser_30
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" in_ifaddr_parser_31
+ (StringMap.add "2.6.25.14-108.fc9.i586" in_ifaddr_parser_32
+ (StringMap.add "2.6.25.14-108.fc9.i686" in_ifaddr_parser_32
+ (StringMap.add "2.6.25.14-69.fc8.ppc" in_ifaddr_parser_33
+ (StringMap.add "2.6.25.14-108.fc9.x86_64"
+ in_ifaddr_parser_30
+ (StringMap.add "2.6.25.11-97.fc9.x86_64"
+ in_ifaddr_parser_30
+ (StringMap.add "2.6.25.14-69.fc8.i586"
+ in_ifaddr_parser_32
+ (StringMap.add "2.6.20-1.2933.fc6.ppc"
+ in_ifaddr_parser_33
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64"
+ in_ifaddr_parser_30
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ in_ifaddr_parser_31
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ in_ifaddr_parser_32
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686"
+ in_ifaddr_parser_32
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586"
+ in_ifaddr_parser_32
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc"
+ in_ifaddr_parser_33
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ in_ifaddr_parser_31
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ in_ifaddr_parser_32
+ StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with | Not_found -> unknown_kernel_version kernel_version "in_ifaddr";;
+let parser_of_inet6_ifaddr =
+ let map =
+ StringMap.add "2.6.25.14-69.fc8.x86_64" inet6_ifaddr_parser_34
+ (StringMap.add "2.6.25.14-108.fc9.ppc64" inet6_ifaddr_parser_35
+ (StringMap.add "2.6.25.14-108.fc9.i586" inet6_ifaddr_parser_36
+ (StringMap.add "2.6.25.14-108.fc9.i686" inet6_ifaddr_parser_36
+ (StringMap.add "2.6.25.14-69.fc8.ppc" inet6_ifaddr_parser_37
+ (StringMap.add "2.6.25.14-108.fc9.x86_64"
+ inet6_ifaddr_parser_34
+ (StringMap.add "2.6.25.11-97.fc9.x86_64"
+ inet6_ifaddr_parser_34
+ (StringMap.add "2.6.25.14-69.fc8.i586"
+ inet6_ifaddr_parser_36
+ (StringMap.add "2.6.20-1.2933.fc6.ppc"
+ inet6_ifaddr_parser_38
+ (StringMap.add "2.6.20-1.2933.fc6.x86_64"
+ inet6_ifaddr_parser_39
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ inet6_ifaddr_parser_35
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ inet6_ifaddr_parser_36
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i686"
+ inet6_ifaddr_parser_40
+ (StringMap.add
+ "2.6.20-1.2933.fc6.i586"
+ inet6_ifaddr_parser_40
+ (StringMap.add
+ "2.6.25.14-108.fc9.ppc"
+ inet6_ifaddr_parser_37
+ (StringMap.add
+ "2.6.20-1.2933.fc6.ppc64"
+ inet6_ifaddr_parser_41
+ (StringMap.add
+ "2.6.25.14-69.fc8.i686"
+ inet6_ifaddr_parser_36
+ StringMap.empty))))))))))))))))
+ in
+ fun kernel_version ->
+ try StringMap.find kernel_version map
+ with
+ | Not_found -> unknown_kernel_version kernel_version "inet6_ifaddr";;
+let rec task_struct_follower kernel_version load map addr =
+ if (addr <> 0L) && (not (AddrMap.mem addr map))
+ then
+ (let parser_ = parser_of_task_struct kernel_version in
+ let total_size = size_of_task_struct kernel_version in
+ let bits = load "task_struct" addr total_size in
+ let data = parser_ kernel_version bits in
+ let map =
+ AddrMap.add addr
+ ("task_struct", (Some (total_size, bits, Task_struct data))) map in
+ let map =
+ match data.task_struct_run_list'next with
+ | None -> map
+ | Some dest_addr ->
+ let offset = data.task_struct_run_list'next_offset
+ and adj = data.task_struct_run_list'next_adjustment in
+ let offset = Int64.of_int offset and adj = Int64.of_int adj in
+ let map =
+ if offset <> adj
+ then
+ (let addr = Int64.sub (Int64.add addr offset) adj
+ in AddrMap.add addr ("task_struct", None) map)
+ else map in
+ let dest_addr = Int64.sub dest_addr adj in
+ let map = task_struct_follower kernel_version load map dest_addr
+ in map in
+ let dest_addr = data.task_struct_tasks'next in
+ let map =
+ let offset = data.task_struct_tasks'next_offset
+ and adj = data.task_struct_tasks'next_adjustment in
+ let offset = Int64.of_int offset and adj = Int64.of_int adj in
+ let map =
+ if offset <> adj
+ then
+ (let addr = Int64.sub (Int64.add addr offset) adj
+ in AddrMap.add addr ("task_struct", None) map)
+ else map in
+ let dest_addr = Int64.sub dest_addr adj in
+ let map = task_struct_follower kernel_version load map dest_addr
+ in map
+ in map)
+ else map
+and net_device_follower kernel_version load map addr =
+ if (addr <> 0L) && (not (AddrMap.mem addr map))
+ then
+ (let parser_ = parser_of_net_device kernel_version in
+ let total_size = size_of_net_device kernel_version in
+ let bits = load "net_device" addr total_size in
+ let data = parser_ kernel_version bits in
+ let map =
+ AddrMap.add addr
+ ("net_device", (Some (total_size, bits, Net_device data))) map in
+ let map =
+ match data.net_device_dev_list'next with
+ | None -> map
+ | Some dest_addr ->
+ let offset = data.net_device_dev_list'next_offset
+ and adj = data.net_device_dev_list'next_adjustment in
+ let offset = Int64.of_int offset and adj = Int64.of_int adj in
+ let map =
+ if offset <> adj
+ then
+ (let addr = Int64.sub (Int64.add addr offset) adj
+ in AddrMap.add addr ("net_device", None) map)
+ else map in
+ let dest_addr = Int64.sub dest_addr adj in
+ let map = net_device_follower kernel_version load map dest_addr
+ in map in
+ let dest_addr = data.net_device_ip6_ptr in
+ let map =
+ let map = inet6_dev_follower kernel_version load map dest_addr in map in
+ let dest_addr = data.net_device_ip_ptr in
+ let map =
+ let map = in_device_follower kernel_version load map dest_addr in map in
+ let map =
+ match data.net_device_next with
+ | None -> map
+ | Some dest_addr ->
+ let map = net_device_follower kernel_version load map dest_addr
+ in map
+ in map)
+ else map
+and net_follower kernel_version load map addr =
+ if (addr <> 0L) && (not (AddrMap.mem addr map))
+ then
+ (let parser_ = parser_of_net kernel_version in
+ let total_size = size_of_net kernel_version in
+ let bits = load "net" addr total_size in
+ let data = parser_ kernel_version bits in
+ let map =
+ AddrMap.add addr ("net", (Some (total_size, bits, Net data))) map in
+ let dest_addr = data.net_dev_base_head'next in
+ let map =
+ let offset = data.net_dev_base_head'next_offset
+ and adj = data.net_dev_base_head'next_adjustment in
+ let offset = Int64.of_int offset and adj = Int64.of_int adj in
+ let map =
+ if offset <> adj
+ then
+ (let addr = Int64.sub (Int64.add addr offset) adj
+ in AddrMap.add addr ("net_device", None) map)
+ else map in
+ let dest_addr = Int64.sub dest_addr adj in
+ let map = net_device_follower kernel_version load map dest_addr in map in
+ let dest_addr = data.net_dev_base_head'prev in
+ let map =
+ let offset = data.net_dev_base_head'prev_offset
+ and adj = data.net_dev_base_head'prev_adjustment in
+ let offset = Int64.of_int offset and adj = Int64.of_int adj in
+ let map =
+ if offset <> adj
+ then
+ (let addr = Int64.sub (Int64.add addr offset) adj
+ in AddrMap.add addr ("net_device", None) map)
+ else map in
+ let dest_addr = Int64.sub dest_addr adj in
+ let map = net_device_follower kernel_version load map dest_addr in map
+ in map)
+ else map
+and in_device_follower kernel_version load map addr =
+ if (addr <> 0L) && (not (AddrMap.mem addr map))
+ then
+ (let parser_ = parser_of_in_device kernel_version in
+ let total_size = size_of_in_device kernel_version in
+ let bits = load "in_device" addr total_size in
+ let data = parser_ kernel_version bits in
+ let map =
+ AddrMap.add addr
+ ("in_device", (Some (total_size, bits, In_device data))) map in
+ let dest_addr = data.in_device_ifa_list in
+ let map =
+ let map = in_ifaddr_follower kernel_version load map dest_addr in map
+ in map)
+ else map
+and inet6_dev_follower kernel_version load map addr =
+ if (addr <> 0L) && (not (AddrMap.mem addr map))
+ then
+ (let parser_ = parser_of_inet6_dev kernel_version in
+ let total_size = size_of_inet6_dev kernel_version in
+ let bits = load "inet6_dev" addr total_size in
+ let data = parser_ kernel_version bits in
+ let map =
+ AddrMap.add addr
+ ("inet6_dev", (Some (total_size, bits, Inet6_dev data))) map in
+ let dest_addr = data.inet6_dev_addr_list in
+ let map =
+ let map = inet6_ifaddr_follower kernel_version load map dest_addr
+ in map
+ in map)
+ else map
+and in_ifaddr_follower kernel_version load map addr =
+ if (addr <> 0L) && (not (AddrMap.mem addr map))
+ then
+ (let parser_ = parser_of_in_ifaddr kernel_version in
+ let total_size = size_of_in_ifaddr kernel_version in
+ let bits = load "in_ifaddr" addr total_size in
+ let data = parser_ kernel_version bits in
+ let map =
+ AddrMap.add addr
+ ("in_ifaddr", (Some (total_size, bits, In_ifaddr data))) map in
+ let dest_addr = data.in_ifaddr_ifa_next in
+ let map =
+ let map = in_ifaddr_follower kernel_version load map dest_addr in map
+ in map)
+ else map
+and inet6_ifaddr_follower kernel_version load map addr =