(* WARNING: This file and the corresponding mli (interface) are * automatically generated by the extract/codegen/ program. * * Any edits you make to this file will be lost. * * To update this file from the latest kernel database, it is recommended * that you do 'make update-kernel-structs'. *) type ('a, 'b) task_struct = { task_struct_shape : 'a; task_struct_content : 'b };; type task_struct_shape_fields_2 = { task_struct_shape_fields_2_tasks'next : Virt_mem_mmap.addr; task_struct_shape_fields_2_tasks'prev : Virt_mem_mmap.addr };; type task_struct_shape_fields_1 = { task_struct_shape_fields_1_run_list'next : Virt_mem_mmap.addr; task_struct_shape_fields_1_run_list'prev : Virt_mem_mmap.addr; task_struct_shape_fields_1_tasks'next : Virt_mem_mmap.addr; task_struct_shape_fields_1_tasks'prev : Virt_mem_mmap.addr };; type task_struct_content_fields_3 = { task_struct_content_fields_3_comm : string; task_struct_content_fields_3_normal_prio : int64; task_struct_content_fields_3_pid : int64; task_struct_content_fields_3_prio : int64; task_struct_content_fields_3_state : int64; task_struct_content_fields_3_static_prio : int64 };; type ('a, 'b) net_device = { net_device_shape : 'a; net_device_content : 'b };; type net_device_shape_fields_12 = { net_device_shape_fields_12_ip6_ptr : Virt_mem_mmap.addr; net_device_shape_fields_12_ip_ptr : Virt_mem_mmap.addr; net_device_shape_fields_12_next : Virt_mem_mmap.addr };; type net_device_shape_fields_13 = { net_device_shape_fields_13_dev_list'next : Virt_mem_mmap.addr; net_device_shape_fields_13_dev_list'prev : Virt_mem_mmap.addr; net_device_shape_fields_13_ip6_ptr : Virt_mem_mmap.addr; net_device_shape_fields_13_ip_ptr : Virt_mem_mmap.addr };; type net_device_content_fields_14 = { net_device_content_fields_14_addr_len : int64; net_device_content_fields_14_flags : int64; net_device_content_fields_14_mtu : int64; net_device_content_fields_14_name : string; net_device_content_fields_14_operstate : int64; net_device_content_fields_14_perm_addr : string };; type ('a, 'b) net = { net_shape : 'a; net_content : 'b };; type net_shape_fields_22 = { net_shape_fields_22_dev_base_head'next : Virt_mem_mmap.addr; net_shape_fields_22_dev_base_head'prev : Virt_mem_mmap.addr };; type net_content_fields_23 = unit;; type ('a, 'b) in_device = { in_device_shape : 'a; in_device_content : 'b };; type in_device_shape_fields_28 = { in_device_shape_fields_28_ifa_list : Virt_mem_mmap.addr };; type in_device_content_fields_29 = unit;; type ('a, 'b) inet6_dev = { inet6_dev_shape : 'a; inet6_dev_content : 'b };; type inet6_dev_shape_fields_34 = { inet6_dev_shape_fields_34_addr_list : Virt_mem_mmap.addr };; type inet6_dev_content_fields_35 = unit;; type ('a, 'b) in_ifaddr = { in_ifaddr_shape : 'a; in_ifaddr_content : 'b };; type in_ifaddr_shape_fields_40 = { in_ifaddr_shape_fields_40_ifa_next : Virt_mem_mmap.addr };; type in_ifaddr_content_fields_41 = { in_ifaddr_content_fields_41_ifa_address : int64; in_ifaddr_content_fields_41_ifa_broadcast : int64; in_ifaddr_content_fields_41_ifa_local : int64; in_ifaddr_content_fields_41_ifa_mask : int64 };; type ('a, 'b) inet6_ifaddr = { inet6_ifaddr_shape : 'a; inet6_ifaddr_content : 'b };; type inet6_ifaddr_shape_fields_46 = { inet6_ifaddr_shape_fields_46_lst_next : Virt_mem_mmap.addr };; type inet6_ifaddr_content_fields_47 = { inet6_ifaddr_content_fields_47_prefix_len : int64 };; module StringMap = Map.Make(String);; let offset_of_net_device_dev_list'next = let map = StringMap.add "2.6.27-0.226.rc1.git5.fc10.ppc" 48 (StringMap.add "2.6.26.1-9.fc9.ppc64" 72 (StringMap.add "2.6.25.14-69.fc8.x86_64" 72 (StringMap.add "2.6.24-0.167.rc8.git4.fc9.ppc64" 72 (StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc" 48 StringMap. empty)))) in fun kernel_version -> StringMap.find kernel_version map;; let match_err = "failed to match kernel structure";; let zero = 0;; let task_struct_parser_4 kernel_version bits = bitmatch bits with | { state : zero+32 : offset(0), littleendian; prio : zero+32 : offset(192), littleendian; static_prio : zero+32 : offset(224), littleendian; normal_prio : zero+32 : offset(256), littleendian; run_list'next : zero+32 : offset(288), littleendian; run_list'prev : zero+32 : offset(320), littleendian; tasks'next : zero+32 : offset(992), littleendian; tasks'prev : zero+32 : offset(1024), littleendian; pid : zero+32 : offset(1344), littleendian; comm : 128 : offset(3232), string } -> let shape = { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L; task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L; task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L; task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_4", match_err));; let task_struct_parser_5 kernel_version bits = bitmatch bits with | { state : zero+64 : offset(0), bigendian; prio : zero+32 : offset(320), bigendian; static_prio : zero+32 : offset(352), bigendian; normal_prio : zero+32 : offset(384), bigendian; run_list'next : zero+64 : offset(448), bigendian; run_list'prev : zero+64 : offset(512), bigendian; tasks'next : zero+64 : offset(1600), bigendian; tasks'prev : zero+64 : offset(1664), bigendian; pid : zero+32 : offset(2208), bigendian; comm : 128 : offset(5440), string } -> let shape = { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L; task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L; task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L; task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_5", match_err));; let task_struct_parser_6 kernel_version bits = bitmatch bits with | { state : zero+64 : offset(0), littleendian; prio : zero+32 : offset(320), littleendian; static_prio : zero+32 : offset(352), littleendian; normal_prio : zero+32 : offset(384), littleendian; run_list'next : zero+64 : offset(448), littleendian; run_list'prev : zero+64 : offset(512), littleendian; tasks'next : zero+64 : offset(1536), littleendian; tasks'prev : zero+64 : offset(1600), littleendian; pid : zero+32 : offset(2144), littleendian; comm : 128 : offset(5440), string } -> let shape = { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L; task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L; task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L; task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_6", match_err));; let task_struct_parser_7 kernel_version bits = bitmatch bits with | { state : zero+32 : offset(0), bigendian; prio : zero+32 : offset(160), bigendian; static_prio : zero+32 : offset(192), bigendian; normal_prio : zero+32 : offset(224), bigendian; run_list'next : zero+32 : offset(256), bigendian; run_list'prev : zero+32 : offset(288), bigendian; tasks'next : zero+32 : offset(2176), bigendian; tasks'prev : zero+32 : offset(2208), bigendian; pid : zero+32 : offset(2528), bigendian; comm : 128 : offset(4416), string } -> let shape = { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L; task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L; task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L; task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_7", match_err));; let task_struct_parser_8 kernel_version bits = bitmatch bits with | { state : zero+64 : offset(0), bigendian; prio : zero+32 : offset(224), bigendian; static_prio : zero+32 : offset(256), bigendian; normal_prio : zero+32 : offset(288), bigendian; run_list'next : zero+64 : offset(320), bigendian; run_list'prev : zero+64 : offset(384), bigendian; tasks'next : zero+64 : offset(3648), bigendian; tasks'prev : zero+64 : offset(3712), bigendian; pid : zero+32 : offset(4160), bigendian; comm : 128 : offset(7752), string } -> let shape = { task_struct_shape_fields_1_run_list'next = Int64.sub run_list'next 36L; task_struct_shape_fields_1_run_list'prev = Int64.sub run_list'prev 40L; task_struct_shape_fields_1_tasks'next = Int64.sub tasks'next 124L; task_struct_shape_fields_1_tasks'prev = Int64.sub tasks'prev 128L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_8", match_err));; let task_struct_parser_9 kernel_version bits = bitmatch bits with | { state : zero+64 : offset(0), littleendian; prio : zero+32 : offset(224), littleendian; static_prio : zero+32 : offset(256), littleendian; normal_prio : zero+32 : offset(288), littleendian; tasks'next : zero+64 : offset(3840), littleendian; tasks'prev : zero+64 : offset(3904), littleendian; pid : zero+32 : offset(4352), littleendian; comm : 128 : offset(8392), string } -> let shape = { task_struct_shape_fields_2_tasks'next = Int64.sub tasks'next 480L; task_struct_shape_fields_2_tasks'prev = Int64.sub tasks'prev 488L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_9", match_err));; let task_struct_parser_10 kernel_version bits = bitmatch bits with | { state : zero+64 : offset(0), bigendian; prio : zero+32 : offset(256), bigendian; static_prio : zero+32 : offset(288), bigendian; normal_prio : zero+32 : offset(320), bigendian; tasks'next : zero+64 : offset(4096), bigendian; tasks'prev : zero+64 : offset(4160), bigendian; pid : zero+32 : offset(4608), bigendian; comm : 128 : offset(8712), string } -> let shape = { task_struct_shape_fields_2_tasks'next = Int64.sub tasks'next 480L; task_struct_shape_fields_2_tasks'prev = Int64.sub tasks'prev 488L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_10", match_err));; let task_struct_parser_11 kernel_version bits = bitmatch bits with | { state : zero+32 : offset(0), bigendian; prio : zero+32 : offset(192), bigendian; static_prio : zero+32 : offset(224), bigendian; normal_prio : zero+32 : offset(256), bigendian; tasks'next : zero+32 : offset(3712), bigendian; tasks'prev : zero+32 : offset(3744), bigendian; pid : zero+32 : offset(4064), bigendian; comm : 128 : offset(6464), string } -> let shape = { task_struct_shape_fields_2_tasks'next = Int64.sub tasks'next 480L; task_struct_shape_fields_2_tasks'prev = Int64.sub tasks'prev 488L } in let content = { task_struct_content_fields_3_comm = comm; task_struct_content_fields_3_normal_prio = normal_prio; task_struct_content_fields_3_pid = pid; task_struct_content_fields_3_prio = prio; task_struct_content_fields_3_state = state; task_struct_content_fields_3_static_prio = static_prio } in { task_struct_shape = shape; task_struct_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("task_struct", "task_struct_parser_11", match_err));; let net_device_parser_15 kernel_version bits = bitmatch bits with | { name : 128 : offset(0), string; next : zero+32 : offset(384), littleendian; flags : zero+32 : offset(704), littleendian; operstate : zero+8 : offset(784), littleendian; mtu : zero+32 : offset(800), littleendian; perm_addr : 256 : offset(896), string; addr_len : zero+8 : offset(1152), littleendian; ip_ptr : zero+32 : offset(1344), littleendian; ip6_ptr : zero+32 : offset(1408), littleendian } -> let shape = { net_device_shape_fields_12_ip6_ptr = ip6_ptr; net_device_shape_fields_12_ip_ptr = ip_ptr; net_device_shape_fields_12_next = next } in let content = { net_device_content_fields_14_addr_len = addr_len; net_device_content_fields_14_flags = flags; net_device_content_fields_14_mtu = mtu; net_device_content_fields_14_name = name; net_device_content_fields_14_operstate = operstate; net_device_content_fields_14_perm_addr = perm_addr } in { net_device_shape = shape; net_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_15", match_err));; let net_device_parser_16 kernel_version bits = bitmatch bits with | { name : 128 : offset(0), string; next : zero+64 : offset(576), bigendian; flags : zero+32 : offset(1152), bigendian; operstate : zero+8 : offset(1232), bigendian; mtu : zero+32 : offset(1248), bigendian; perm_addr : 256 : offset(1408), string; addr_len : zero+8 : offset(1664), bigendian; ip_ptr : zero+64 : offset(1984), bigendian; ip6_ptr : zero+64 : offset(2112), bigendian } -> let shape = { net_device_shape_fields_12_ip6_ptr = ip6_ptr; net_device_shape_fields_12_ip_ptr = ip_ptr; net_device_shape_fields_12_next = next } in let content = { net_device_content_fields_14_addr_len = addr_len; net_device_content_fields_14_flags = flags; net_device_content_fields_14_mtu = mtu; net_device_content_fields_14_name = name; net_device_content_fields_14_operstate = operstate; net_device_content_fields_14_perm_addr = perm_addr } in { net_device_shape = shape; net_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_16", match_err));; let net_device_parser_17 kernel_version bits = bitmatch bits with | { name : 128 : offset(0), string; next : zero+64 : offset(576), littleendian; flags : zero+32 : offset(1152), littleendian; operstate : zero+8 : offset(1232), littleendian; mtu : zero+32 : offset(1248), littleendian; perm_addr : 256 : offset(1408), string; addr_len : zero+8 : offset(1664), littleendian; ip_ptr : zero+64 : offset(1984), littleendian; ip6_ptr : zero+64 : offset(2112), littleendian } -> let shape = { net_device_shape_fields_12_ip6_ptr = ip6_ptr; net_device_shape_fields_12_ip_ptr = ip_ptr; net_device_shape_fields_12_next = next } in let content = { net_device_content_fields_14_addr_len = addr_len; net_device_content_fields_14_flags = flags; net_device_content_fields_14_mtu = mtu; net_device_content_fields_14_name = name; net_device_content_fields_14_operstate = operstate; net_device_content_fields_14_perm_addr = perm_addr } in { net_device_shape = shape; net_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_17", match_err));; let net_device_parser_18 kernel_version bits = bitmatch bits with | { name : 128 : offset(0), string; dev_list'next : zero+32 : offset(384), bigendian; dev_list'prev : zero+32 : offset(416), bigendian; flags : zero+32 : offset(1472), bigendian; operstate : zero+8 : offset(1552), bigendian; mtu : zero+32 : offset(1568), bigendian; perm_addr : 256 : offset(1664), string; addr_len : zero+8 : offset(1920), bigendian; ip_ptr : zero+32 : offset(2112), bigendian; ip6_ptr : zero+32 : offset(2176), bigendian } -> let shape = { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L; net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L; net_device_shape_fields_13_ip6_ptr = ip6_ptr; net_device_shape_fields_13_ip_ptr = ip_ptr } in let content = { net_device_content_fields_14_addr_len = addr_len; net_device_content_fields_14_flags = flags; net_device_content_fields_14_mtu = mtu; net_device_content_fields_14_name = name; net_device_content_fields_14_operstate = operstate; net_device_content_fields_14_perm_addr = perm_addr } in { net_device_shape = shape; net_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_18", match_err));; let net_device_parser_19 kernel_version bits = bitmatch bits with | { name : 128 : offset(0), string; dev_list'next : zero+64 : offset(576), bigendian; dev_list'prev : zero+64 : offset(640), bigendian; flags : zero+32 : offset(2880), bigendian; operstate : zero+8 : offset(2960), bigendian; mtu : zero+32 : offset(2976), bigendian; perm_addr : 256 : offset(3136), string; addr_len : zero+8 : offset(3392), bigendian; ip_ptr : zero+64 : offset(3840), bigendian; ip6_ptr : zero+64 : offset(3968), bigendian } -> let shape = { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L; net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L; net_device_shape_fields_13_ip6_ptr = ip6_ptr; net_device_shape_fields_13_ip_ptr = ip_ptr } in let content = { net_device_content_fields_14_addr_len = addr_len; net_device_content_fields_14_flags = flags; net_device_content_fields_14_mtu = mtu; net_device_content_fields_14_name = name; net_device_content_fields_14_operstate = operstate; net_device_content_fields_14_perm_addr = perm_addr } in { net_device_shape = shape; net_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_19", match_err));; let net_device_parser_20 kernel_version bits = bitmatch bits with | { name : 128 : offset(0), string; dev_list'next : zero+64 : offset(576), littleendian; dev_list'prev : zero+64 : offset(640), littleendian; flags : zero+32 : offset(2880), littleendian; operstate : zero+8 : offset(2960), littleendian; mtu : zero+32 : offset(2976), littleendian; perm_addr : 256 : offset(3136), string; addr_len : zero+8 : offset(3392), littleendian; ip_ptr : zero+64 : offset(3840), littleendian; ip6_ptr : zero+64 : offset(3968), littleendian } -> let shape = { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L; net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L; net_device_shape_fields_13_ip6_ptr = ip6_ptr; net_device_shape_fields_13_ip_ptr = ip_ptr } in let content = { net_device_content_fields_14_addr_len = addr_len; net_device_content_fields_14_flags = flags; net_device_content_fields_14_mtu = mtu; net_device_content_fields_14_name = name; net_device_content_fields_14_operstate = operstate; net_device_content_fields_14_perm_addr = perm_addr } in { net_device_shape = shape; net_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_20", match_err));; let net_device_parser_21 kernel_version bits = bitmatch bits with | { name : 128 : offset(0), string; dev_list'next : zero+32 : offset(384), bigendian; dev_list'prev : zero+32 : offset(416), bigendian; flags : zero+32 : offset(1536), bigendian; operstate : zero+8 : offset(1616), bigendian; mtu : zero+32 : offset(1632), bigendian; perm_addr : 256 : offset(1760), string; addr_len : zero+8 : offset(2016), bigendian; ip_ptr : zero+32 : offset(2432), bigendian; ip6_ptr : zero+32 : offset(2496), bigendian } -> let shape = { net_device_shape_fields_13_dev_list'next = Int64.sub dev_list'next 48L; net_device_shape_fields_13_dev_list'prev = Int64.sub dev_list'prev 52L; net_device_shape_fields_13_ip6_ptr = ip6_ptr; net_device_shape_fields_13_ip_ptr = ip_ptr } in let content = { net_device_content_fields_14_addr_len = addr_len; net_device_content_fields_14_flags = flags; net_device_content_fields_14_mtu = mtu; net_device_content_fields_14_name = name; net_device_content_fields_14_operstate = operstate; net_device_content_fields_14_perm_addr = perm_addr } in { net_device_shape = shape; net_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net_device", "net_device_parser_21", match_err));; let net_parser_24 kernel_version bits = bitmatch bits with | { dev_base_head'next : zero+64 : offset(704), bigendian; dev_base_head'prev : zero+64 : offset(768), bigendian } -> let shape = { net_shape_fields_22_dev_base_head'next = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'next offset ); net_shape_fields_22_dev_base_head'prev = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'prev offset ) } in let content = () in { net_shape = shape; net_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net", "net_parser_24", match_err));; let net_parser_25 kernel_version bits = bitmatch bits with | { dev_base_head'next : zero+64 : offset(768), littleendian; dev_base_head'prev : zero+64 : offset(832), littleendian } -> let shape = { net_shape_fields_22_dev_base_head'next = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'next offset ); net_shape_fields_22_dev_base_head'prev = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'prev offset ) } in let content = () in { net_shape = shape; net_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net", "net_parser_25", match_err));; let net_parser_26 kernel_version bits = bitmatch bits with | { dev_base_head'next : zero+64 : offset(768), bigendian; dev_base_head'prev : zero+64 : offset(832), bigendian } -> let shape = { net_shape_fields_22_dev_base_head'next = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'next offset ); net_shape_fields_22_dev_base_head'prev = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'prev offset ) } in let content = () in { net_shape = shape; net_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net", "net_parser_26", match_err));; let net_parser_27 kernel_version bits = bitmatch bits with | { dev_base_head'next : zero+32 : offset(448), bigendian; dev_base_head'prev : zero+32 : offset(480), bigendian } -> let shape = { net_shape_fields_22_dev_base_head'next = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'next offset ); net_shape_fields_22_dev_base_head'prev = ( let offset = offset_of_net_device_dev_list'next kernel_version in let offset = Int64.of_int offset in Int64.sub dev_base_head'prev offset ) } in let content = () in { net_shape = shape; net_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("net", "net_parser_27", match_err));; let in_device_parser_30 kernel_version bits = bitmatch bits with | { ifa_list : zero+32 : offset(96), littleendian } -> let shape = { in_device_shape_fields_28_ifa_list = ifa_list } in let content = () in { in_device_shape = shape; in_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_30", match_err));; let in_device_parser_33 kernel_version bits = bitmatch bits with | { ifa_list : zero+32 : offset(96), bigendian } -> let shape = { in_device_shape_fields_28_ifa_list = ifa_list } in let content = () in { in_device_shape = shape; in_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_33", match_err));; let in_device_parser_32 kernel_version bits = bitmatch bits with | { ifa_list : zero+64 : offset(128), littleendian } -> let shape = { in_device_shape_fields_28_ifa_list = ifa_list } in let content = () in { in_device_shape = shape; in_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_32", match_err));; let in_device_parser_31 kernel_version bits = bitmatch bits with | { ifa_list : zero+64 : offset(128), bigendian } -> let shape = { in_device_shape_fields_28_ifa_list = ifa_list } in let content = () in { in_device_shape = shape; in_device_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_31", match_err));; let inet6_dev_parser_36 kernel_version bits = bitmatch bits with | { addr_list : zero+32 : offset(32), littleendian } -> let shape = { inet6_dev_shape_fields_34_addr_list = addr_list } in let content = () in { inet6_dev_shape = shape; inet6_dev_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_36", match_err));; let inet6_dev_parser_39 kernel_version bits = bitmatch bits with | { addr_list : zero+32 : offset(32), bigendian } -> let shape = { inet6_dev_shape_fields_34_addr_list = addr_list } in let content = () in { inet6_dev_shape = shape; inet6_dev_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_39", match_err));; let inet6_dev_parser_38 kernel_version bits = bitmatch bits with | { addr_list : zero+64 : offset(64), littleendian } -> let shape = { inet6_dev_shape_fields_34_addr_list = addr_list } in let content = () in { inet6_dev_shape = shape; inet6_dev_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_38", match_err));; let inet6_dev_parser_37 kernel_version bits = bitmatch bits with | { addr_list : zero+64 : offset(64), bigendian } -> let shape = { inet6_dev_shape_fields_34_addr_list = addr_list } in let content = () in { inet6_dev_shape = shape; inet6_dev_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_37", match_err));; let in_ifaddr_parser_42 kernel_version bits = bitmatch bits with | { ifa_next : zero+32 : offset(0), littleendian; ifa_local : zero+32 : offset(128), littleendian; ifa_address : zero+32 : offset(160), littleendian; ifa_mask : zero+32 : offset(192), littleendian; ifa_broadcast : zero+32 : offset(224), littleendian } -> let shape = { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in let content = { in_ifaddr_content_fields_41_ifa_address = ifa_address; in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast; in_ifaddr_content_fields_41_ifa_local = ifa_local; in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in { in_ifaddr_shape = shape; in_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_42", match_err));; let in_ifaddr_parser_45 kernel_version bits = bitmatch bits with | { ifa_next : zero+32 : offset(0), bigendian; ifa_local : zero+32 : offset(128), bigendian; ifa_address : zero+32 : offset(160), bigendian; ifa_mask : zero+32 : offset(192), bigendian; ifa_broadcast : zero+32 : offset(224), bigendian } -> let shape = { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in let content = { in_ifaddr_content_fields_41_ifa_address = ifa_address; in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast; in_ifaddr_content_fields_41_ifa_local = ifa_local; in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in { in_ifaddr_shape = shape; in_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_45", match_err));; let in_ifaddr_parser_43 kernel_version bits = bitmatch bits with | { ifa_next : zero+64 : offset(0), bigendian; ifa_local : zero+32 : offset(256), bigendian; ifa_address : zero+32 : offset(288), bigendian; ifa_mask : zero+32 : offset(320), bigendian; ifa_broadcast : zero+32 : offset(352), bigendian } -> let shape = { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in let content = { in_ifaddr_content_fields_41_ifa_address = ifa_address; in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast; in_ifaddr_content_fields_41_ifa_local = ifa_local; in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in { in_ifaddr_shape = shape; in_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_43", match_err));; let in_ifaddr_parser_44 kernel_version bits = bitmatch bits with | { ifa_next : zero+64 : offset(0), littleendian; ifa_local : zero+32 : offset(256), littleendian; ifa_address : zero+32 : offset(288), littleendian; ifa_mask : zero+32 : offset(320), littleendian; ifa_broadcast : zero+32 : offset(352), littleendian } -> let shape = { in_ifaddr_shape_fields_40_ifa_next = ifa_next } in let content = { in_ifaddr_content_fields_41_ifa_address = ifa_address; in_ifaddr_content_fields_41_ifa_broadcast = ifa_broadcast; in_ifaddr_content_fields_41_ifa_local = ifa_local; in_ifaddr_content_fields_41_ifa_mask = ifa_mask } in { in_ifaddr_shape = shape; in_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("in_ifaddr", "in_ifaddr_parser_44", match_err));; let inet6_ifaddr_parser_48 kernel_version bits = bitmatch bits with | { prefix_len : zero+32 : offset(128), littleendian; lst_next : zero+32 : offset(1024), littleendian } -> let shape = { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in let content = { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_48", match_err));; let inet6_ifaddr_parser_50 kernel_version bits = bitmatch bits with | { prefix_len : zero+32 : offset(128), littleendian; lst_next : zero+64 : offset(1856), littleendian } -> let shape = { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in let content = { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_50", match_err));; let inet6_ifaddr_parser_49 kernel_version bits = bitmatch bits with | { prefix_len : zero+32 : offset(128), bigendian; lst_next : zero+64 : offset(1472), bigendian } -> let shape = { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in let content = { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_49", match_err));; let inet6_ifaddr_parser_51 kernel_version bits = bitmatch bits with | { prefix_len : zero+32 : offset(128), littleendian; lst_next : zero+64 : offset(1472), littleendian } -> let shape = { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in let content = { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_51", match_err));; let inet6_ifaddr_parser_52 kernel_version bits = bitmatch bits with | { prefix_len : zero+32 : offset(128), bigendian; lst_next : zero+32 : offset(928), bigendian } -> let shape = { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in let content = { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_52", match_err));; let inet6_ifaddr_parser_53 kernel_version bits = bitmatch bits with | { prefix_len : zero+32 : offset(128), littleendian; lst_next : zero+64 : offset(1280), littleendian } -> let shape = { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in let content = { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_53", match_err));; let inet6_ifaddr_parser_54 kernel_version bits = bitmatch bits with | { prefix_len : zero+32 : offset(128), bigendian; lst_next : zero+64 : offset(1280), bigendian } -> let shape = { inet6_ifaddr_shape_fields_46_lst_next = lst_next } in let content = { inet6_ifaddr_content_fields_47_prefix_len = prefix_len } in { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content } | { _ } -> raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_54", match_err));;