+ raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_41", match_err));;
+let inet6_ifaddr_parser_43 kernel_version bits =
+ bitmatch bits with
+ | { prefix_len : zero+32 : offset(128), bigendian;
+ lst_next : zero+32 : offset(800), bigendian } ->
+ let s =
+ { inet6_ifaddr_shape_fields_38_lst_next = lst_next } in
+ let c =
+ { inet6_ifaddr_content_fields_39_prefix_len = prefix_len } in
+ (s, c)
+ | { _ } ->
+ raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_43", match_err));;
+let task_struct_shape_fields_1_follower load followers map shape =
+ let (_, _, _, _, _, _, f) = followers in
+ let map = f load followers map shape.task_struct_shape_fields_1_tasks'next
+ in map;;
+let net_device_shape_fields_8_follower load followers map shape =
+ let (_, _, _, _, _, f, _) = followers in
+ let map =
+ f load followers map shape.net_device_shape_fields_8_dev_list'next 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 shape =
+ let (_, _, _, _, _, f, _) = followers in
+ let map =
+ f load followers map shape.net_shape_fields_14_dev_base_head'next in
+ let (_, _, _, _, _, f, _) = followers in
+ let map = f load followers map shape.net_shape_fields_14_dev_base_head'prev
+ in map;;
+let in_device_shape_fields_20_follower load followers map 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 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 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 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 =
+ if (addr <> 0L) && (not (AddrMap.mem addr map))
+ then
+ (let map = AddrMap.add addr (struct_name, total_size) map in
+ let bits = load struct_name addr total_size in
+ let (shape, _) = parserfn kernel_version bits
+ in followerfn load followers map shape)
+ else map;;
+let task_struct_kv0_follower =
+ kv_follower "2.6.25.14-69.fc8.x86_64" "task_struct" 2496
+ task_struct_parser_3 task_struct_shape_fields_1_follower;;
+let task_struct_kv1_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc64" "task_struct" 2524
+ task_struct_parser_4 task_struct_shape_fields_1_follower;;
+let task_struct_kv2_follower =
+ kv_follower "2.6.25.14-108.fc9.i586" "task_struct" 1832
+ task_struct_parser_5 task_struct_shape_fields_1_follower;;
+let task_struct_kv3_follower =
+ kv_follower "2.6.25.14-108.fc9.i686" "task_struct" 1832
+ task_struct_parser_6 task_struct_shape_fields_1_follower;;
+let task_struct_kv4_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc" "task_struct" 1952 task_struct_parser_7
+ task_struct_shape_fields_1_follower;;
+let task_struct_kv5_follower =
+ kv_follower "2.6.25.14-108.fc9.x86_64" "task_struct" 2496
+ task_struct_parser_3 task_struct_shape_fields_1_follower;;
+let task_struct_kv6_follower =
+ kv_follower "2.6.25.11-97.fc9.x86_64" "task_struct" 2496
+ task_struct_parser_3 task_struct_shape_fields_1_follower;;
+let task_struct_kv7_follower =
+ kv_follower "2.6.25.14-69.fc8.i586" "task_struct" 1832 task_struct_parser_5
+ task_struct_shape_fields_1_follower;;
+let task_struct_kv8_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc64" "task_struct" 2524
+ task_struct_parser_4 task_struct_shape_fields_1_follower;;
+let task_struct_kv9_follower =
+ kv_follower "2.6.25.11-97.fc9.i686" "task_struct" 1832 task_struct_parser_6
+ task_struct_shape_fields_1_follower;;
+let task_struct_kv10_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc" "task_struct" 1952 task_struct_parser_7
+ task_struct_shape_fields_1_follower;;
+let task_struct_kv11_follower =
+ kv_follower "2.6.25.14-69.fc8.i686" "task_struct" 1832 task_struct_parser_6
+ task_struct_shape_fields_1_follower;;
+let net_device_kv0_follower =
+ kv_follower "2.6.25.14-69.fc8.x86_64" "net_device" 1752
+ net_device_parser_10 net_device_shape_fields_8_follower;;
+let net_device_kv1_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc64" "net_device" 1776
+ net_device_parser_11 net_device_shape_fields_8_follower;;
+let net_device_kv2_follower =
+ kv_follower "2.6.25.14-108.fc9.i586" "net_device" 1212 net_device_parser_12
+ net_device_shape_fields_8_follower;;
+let net_device_kv3_follower =
+ kv_follower "2.6.25.14-108.fc9.i686" "net_device" 1212 net_device_parser_12
+ net_device_shape_fields_8_follower;;
+let net_device_kv4_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc" "net_device" 904 net_device_parser_13
+ net_device_shape_fields_8_follower;;
+let net_device_kv5_follower =
+ kv_follower "2.6.25.14-108.fc9.x86_64" "net_device" 1752
+ net_device_parser_10 net_device_shape_fields_8_follower;;
+let net_device_kv6_follower =
+ kv_follower "2.6.25.11-97.fc9.x86_64" "net_device" 1752
+ net_device_parser_10 net_device_shape_fields_8_follower;;
+let net_device_kv7_follower =
+ kv_follower "2.6.25.14-69.fc8.i586" "net_device" 1212 net_device_parser_12
+ net_device_shape_fields_8_follower;;
+let net_device_kv8_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc64" "net_device" 1776 net_device_parser_11
+ net_device_shape_fields_8_follower;;
+let net_device_kv9_follower =
+ kv_follower "2.6.25.11-97.fc9.i686" "net_device" 1212 net_device_parser_12
+ net_device_shape_fields_8_follower;;
+let net_device_kv10_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc" "net_device" 904 net_device_parser_13
+ net_device_shape_fields_8_follower;;
+let net_device_kv11_follower =
+ kv_follower "2.6.25.14-69.fc8.i686" "net_device" 1212 net_device_parser_12
+ net_device_shape_fields_8_follower;;
+let net_kv0_follower =
+ kv_follower "2.6.25.14-69.fc8.x86_64" "net" 488 net_parser_16
+ net_shape_fields_14_follower;;
+let net_kv1_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc64" "net" 488 net_parser_17
+ net_shape_fields_14_follower;;
+let net_kv2_follower =
+ kv_follower "2.6.25.14-108.fc9.i586" "net" 284 net_parser_18
+ net_shape_fields_14_follower;;
+let net_kv3_follower =
+ kv_follower "2.6.25.14-108.fc9.i686" "net" 284 net_parser_18
+ net_shape_fields_14_follower;;
+let net_kv4_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc" "net" 276 net_parser_19
+ net_shape_fields_14_follower;;
+let net_kv5_follower =
+ kv_follower "2.6.25.14-108.fc9.x86_64" "net" 488 net_parser_16
+ net_shape_fields_14_follower;;
+let net_kv6_follower =
+ kv_follower "2.6.25.11-97.fc9.x86_64" "net" 488 net_parser_16
+ net_shape_fields_14_follower;;
+let net_kv7_follower =
+ kv_follower "2.6.25.14-69.fc8.i586" "net" 284 net_parser_18
+ net_shape_fields_14_follower;;
+let net_kv8_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc64" "net" 488 net_parser_17
+ net_shape_fields_14_follower;;
+let net_kv9_follower =
+ kv_follower "2.6.25.11-97.fc9.i686" "net" 284 net_parser_18
+ net_shape_fields_14_follower;;
+let net_kv10_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc" "net" 276 net_parser_19
+ net_shape_fields_14_follower;;
+let net_kv11_follower =
+ kv_follower "2.6.25.14-69.fc8.i686" "net" 284 net_parser_18
+ net_shape_fields_14_follower;;
+let in_device_kv0_follower =
+ kv_follower "2.6.25.14-69.fc8.x86_64" "in_device" 368 in_device_parser_22
+ in_device_shape_fields_20_follower;;
+let in_device_kv1_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc64" "in_device" 368 in_device_parser_23
+ in_device_shape_fields_20_follower;;
+let in_device_kv2_follower =
+ kv_follower "2.6.25.14-108.fc9.i586" "in_device" 244 in_device_parser_24
+ in_device_shape_fields_20_follower;;
+let in_device_kv3_follower =
+ kv_follower "2.6.25.14-108.fc9.i686" "in_device" 244 in_device_parser_24
+ in_device_shape_fields_20_follower;;
+let in_device_kv4_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc" "in_device" 236 in_device_parser_25
+ in_device_shape_fields_20_follower;;
+let in_device_kv5_follower =
+ kv_follower "2.6.25.14-108.fc9.x86_64" "in_device" 368 in_device_parser_22
+ in_device_shape_fields_20_follower;;
+let in_device_kv6_follower =
+ kv_follower "2.6.25.11-97.fc9.x86_64" "in_device" 368 in_device_parser_22
+ in_device_shape_fields_20_follower;;
+let in_device_kv7_follower =
+ kv_follower "2.6.25.14-69.fc8.i586" "in_device" 244 in_device_parser_24
+ in_device_shape_fields_20_follower;;
+let in_device_kv8_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc64" "in_device" 368 in_device_parser_23
+ in_device_shape_fields_20_follower;;
+let in_device_kv9_follower =
+ kv_follower "2.6.25.11-97.fc9.i686" "in_device" 244 in_device_parser_24
+ in_device_shape_fields_20_follower;;
+let in_device_kv10_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc" "in_device" 236 in_device_parser_25
+ in_device_shape_fields_20_follower;;
+let in_device_kv11_follower =
+ kv_follower "2.6.25.14-69.fc8.i686" "in_device" 244 in_device_parser_24
+ in_device_shape_fields_20_follower;;
+let inet6_dev_kv0_follower =
+ kv_follower "2.6.25.14-69.fc8.x86_64" "inet6_dev" 536 inet6_dev_parser_28
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv1_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc64" "inet6_dev" 536 inet6_dev_parser_29
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv2_follower =
+ kv_follower "2.6.25.14-108.fc9.i586" "inet6_dev" 356 inet6_dev_parser_30
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv3_follower =
+ kv_follower "2.6.25.14-108.fc9.i686" "inet6_dev" 356 inet6_dev_parser_30
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv4_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc" "inet6_dev" 348 inet6_dev_parser_31
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv5_follower =
+ kv_follower "2.6.25.14-108.fc9.x86_64" "inet6_dev" 536 inet6_dev_parser_28
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv6_follower =
+ kv_follower "2.6.25.11-97.fc9.x86_64" "inet6_dev" 536 inet6_dev_parser_28
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv7_follower =
+ kv_follower "2.6.25.14-69.fc8.i586" "inet6_dev" 356 inet6_dev_parser_30
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv8_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc64" "inet6_dev" 536 inet6_dev_parser_29
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv9_follower =
+ kv_follower "2.6.25.11-97.fc9.i686" "inet6_dev" 356 inet6_dev_parser_30
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv10_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc" "inet6_dev" 348 inet6_dev_parser_31
+ inet6_dev_shape_fields_26_follower;;
+let inet6_dev_kv11_follower =
+ kv_follower "2.6.25.14-69.fc8.i686" "inet6_dev" 356 inet6_dev_parser_30
+ inet6_dev_shape_fields_26_follower;;
+let in_ifaddr_kv0_follower =
+ kv_follower "2.6.25.14-69.fc8.x86_64" "in_ifaddr" 71 in_ifaddr_parser_34
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv1_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc64" "in_ifaddr" 71 in_ifaddr_parser_35
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv2_follower =
+ kv_follower "2.6.25.14-108.fc9.i586" "in_ifaddr" 55 in_ifaddr_parser_36
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv3_follower =
+ kv_follower "2.6.25.14-108.fc9.i686" "in_ifaddr" 55 in_ifaddr_parser_36
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv4_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc" "in_ifaddr" 55 in_ifaddr_parser_37
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv5_follower =
+ kv_follower "2.6.25.14-108.fc9.x86_64" "in_ifaddr" 71 in_ifaddr_parser_34
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv6_follower =
+ kv_follower "2.6.25.11-97.fc9.x86_64" "in_ifaddr" 71 in_ifaddr_parser_34
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv7_follower =
+ kv_follower "2.6.25.14-69.fc8.i586" "in_ifaddr" 55 in_ifaddr_parser_36
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv8_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc64" "in_ifaddr" 71 in_ifaddr_parser_35
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv9_follower =
+ kv_follower "2.6.25.11-97.fc9.i686" "in_ifaddr" 55 in_ifaddr_parser_36
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv10_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc" "in_ifaddr" 55 in_ifaddr_parser_37
+ in_ifaddr_shape_fields_32_follower;;
+let in_ifaddr_kv11_follower =
+ kv_follower "2.6.25.14-69.fc8.i686" "in_ifaddr" 55 in_ifaddr_parser_36
+ in_ifaddr_shape_fields_32_follower;;
+let inet6_ifaddr_kv0_follower =
+ kv_follower "2.6.25.14-69.fc8.x86_64" "inet6_ifaddr" 200
+ inet6_ifaddr_parser_40 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv1_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc64" "inet6_ifaddr" 200
+ inet6_ifaddr_parser_41 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv2_follower =
+ kv_follower "2.6.25.14-108.fc9.i586" "inet6_ifaddr" 128
+ inet6_ifaddr_parser_42 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv3_follower =
+ kv_follower "2.6.25.14-108.fc9.i686" "inet6_ifaddr" 128
+ inet6_ifaddr_parser_42 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv4_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc" "inet6_ifaddr" 124
+ inet6_ifaddr_parser_43 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv5_follower =
+ kv_follower "2.6.25.14-108.fc9.x86_64" "inet6_ifaddr" 200
+ inet6_ifaddr_parser_40 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv6_follower =
+ kv_follower "2.6.25.11-97.fc9.x86_64" "inet6_ifaddr" 200
+ inet6_ifaddr_parser_40 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv7_follower =
+ kv_follower "2.6.25.14-69.fc8.i586" "inet6_ifaddr" 128
+ inet6_ifaddr_parser_42 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv8_follower =
+ kv_follower "2.6.25.14-69.fc8.ppc64" "inet6_ifaddr" 200
+ inet6_ifaddr_parser_41 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv9_follower =
+ kv_follower "2.6.25.11-97.fc9.i686" "inet6_ifaddr" 128
+ inet6_ifaddr_parser_42 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv10_follower =
+ kv_follower "2.6.25.14-108.fc9.ppc" "inet6_ifaddr" 124
+ inet6_ifaddr_parser_43 inet6_ifaddr_shape_fields_38_follower;;
+let inet6_ifaddr_kv11_follower =
+ kv_follower "2.6.25.14-69.fc8.i686" "inet6_ifaddr" 128
+ inet6_ifaddr_parser_42 inet6_ifaddr_shape_fields_38_follower;;
+let follower_map =
+ StringMap.add "2.6.25.14-69.fc8.i686"
+ (inet6_ifaddr_kv11_follower, in_ifaddr_kv11_follower,
+ inet6_dev_kv11_follower, in_device_kv11_follower, net_kv11_follower,
+ net_device_kv11_follower, task_struct_kv11_follower)
+ (StringMap.add "2.6.25.14-108.fc9.ppc"
+ (inet6_ifaddr_kv10_follower, in_ifaddr_kv10_follower,
+ inet6_dev_kv10_follower, in_device_kv10_follower, net_kv10_follower,
+ net_device_kv10_follower, task_struct_kv10_follower)
+ (StringMap.add "2.6.25.11-97.fc9.i686"
+ (inet6_ifaddr_kv9_follower, in_ifaddr_kv9_follower,
+ inet6_dev_kv9_follower, in_device_kv9_follower, net_kv9_follower,
+ net_device_kv9_follower, task_struct_kv9_follower)
+ (StringMap.add "2.6.25.14-69.fc8.ppc64"
+ (inet6_ifaddr_kv8_follower, in_ifaddr_kv8_follower,
+ inet6_dev_kv8_follower, in_device_kv8_follower,
+ net_kv8_follower, net_device_kv8_follower,
+ task_struct_kv8_follower)
+ (StringMap.add "2.6.25.14-69.fc8.i586"
+ (inet6_ifaddr_kv7_follower, in_ifaddr_kv7_follower,
+ inet6_dev_kv7_follower, in_device_kv7_follower,
+ net_kv7_follower, net_device_kv7_follower,
+ task_struct_kv7_follower)
+ (StringMap.add "2.6.25.11-97.fc9.x86_64"
+ (inet6_ifaddr_kv6_follower, in_ifaddr_kv6_follower,
+ inet6_dev_kv6_follower, in_device_kv6_follower,
+ net_kv6_follower, net_device_kv6_follower,
+ task_struct_kv6_follower)
+ (StringMap.add "2.6.25.14-108.fc9.x86_64"
+ (inet6_ifaddr_kv5_follower, in_ifaddr_kv5_follower,
+ inet6_dev_kv5_follower, in_device_kv5_follower,
+ net_kv5_follower, net_device_kv5_follower,
+ task_struct_kv5_follower)
+ (StringMap.add "2.6.25.14-69.fc8.ppc"
+ (inet6_ifaddr_kv4_follower, in_ifaddr_kv4_follower,
+ inet6_dev_kv4_follower, in_device_kv4_follower,
+ net_kv4_follower, net_device_kv4_follower,
+ task_struct_kv4_follower)
+ (StringMap.add "2.6.25.14-108.fc9.i686"
+ (inet6_ifaddr_kv3_follower,
+ in_ifaddr_kv3_follower, inet6_dev_kv3_follower,
+ in_device_kv3_follower, net_kv3_follower,
+ net_device_kv3_follower,
+ task_struct_kv3_follower)
+ (StringMap.add "2.6.25.14-108.fc9.i586"
+ (inet6_ifaddr_kv2_follower,
+ in_ifaddr_kv2_follower,
+ inet6_dev_kv2_follower,
+ in_device_kv2_follower, net_kv2_follower,
+ net_device_kv2_follower,
+ task_struct_kv2_follower)
+ (StringMap.add "2.6.25.14-108.fc9.ppc64"
+ (inet6_ifaddr_kv1_follower,
+ in_ifaddr_kv1_follower,
+ inet6_dev_kv1_follower,
+ in_device_kv1_follower, net_kv1_follower,
+ net_device_kv1_follower,
+ task_struct_kv1_follower)
+ (StringMap.add "2.6.25.14-69.fc8.x86_64"
+ (inet6_ifaddr_kv0_follower,
+ in_ifaddr_kv0_follower,
+ inet6_dev_kv0_follower,
+ in_device_kv0_follower,
+ net_kv0_follower,
+ net_device_kv0_follower,
+ task_struct_kv0_follower)
+ StringMap.empty)))))))))));;
+let task_struct_follower kernel_version load addr =
+ let followers =
+ try StringMap.find kernel_version follower_map
+ with | Not_found -> unknown_kernel_version kernel_version "task_struct" in
+ let (_, _, _, _, _, _, f) = followers
+ in f load followers AddrMap.empty addr;;
+let net_device_follower kernel_version load addr =
+ let followers =
+ try StringMap.find kernel_version follower_map
+ with | Not_found -> unknown_kernel_version kernel_version "net_device" in
+ let (_, _, _, _, _, f, _) = followers
+ in f load followers AddrMap.empty addr;;
+let net_follower kernel_version load addr =
+ let followers =
+ try StringMap.find kernel_version follower_map
+ with | Not_found -> unknown_kernel_version kernel_version "net" in
+ let (_, _, _, _, f, _, _) = followers
+ in f load followers AddrMap.empty addr;;
+let in_device_follower kernel_version load addr =
+ let followers =
+ try StringMap.find kernel_version follower_map
+ with | Not_found -> unknown_kernel_version kernel_version "in_device" in
+ let (_, _, _, f, _, _, _) = followers
+ in f load followers AddrMap.empty addr;;
+let inet6_dev_follower kernel_version load addr =
+ let followers =
+ try StringMap.find kernel_version follower_map
+ with | Not_found -> unknown_kernel_version kernel_version "inet6_dev" in
+ let (_, _, f, _, _, _, _) = followers
+ in f load followers AddrMap.empty addr;;
+let in_ifaddr_follower kernel_version load addr =
+ let followers =
+ try StringMap.find kernel_version follower_map
+ with | Not_found -> unknown_kernel_version kernel_version "in_ifaddr" in
+ let (_, f, _, _, _, _, _) = followers
+ in f load followers AddrMap.empty addr;;
+let inet6_ifaddr_follower kernel_version load addr =
+ let followers =
+ try StringMap.find kernel_version follower_map
+ with | Not_found -> unknown_kernel_version kernel_version "inet6_ifaddr" in
+ let (f, _, _, _, _, _, _) = followers
+ in f load followers AddrMap.empty addr;;