+(* 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 =
- { tasks'next : Virt_mem_mmap.addr; tasks'prev : Virt_mem_mmap.addr
+ { 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 =
- { run_list'next : Virt_mem_mmap.addr; run_list'prev : Virt_mem_mmap.addr;
- tasks'next : Virt_mem_mmap.addr; tasks'prev : Virt_mem_mmap.addr
+ { 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 =
- { comm : string; normal_prio : int64; pid : int64; prio : int64;
- state : int64; static_prio : int64
+ { 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 =
- { ip6_ptr : Virt_mem_mmap.addr; ip_ptr : Virt_mem_mmap.addr;
- next : Virt_mem_mmap.addr
+ { 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 =
- { dev_list'next : Virt_mem_mmap.addr; dev_list'prev : Virt_mem_mmap.addr;
- ip6_ptr : Virt_mem_mmap.addr; ip_ptr : Virt_mem_mmap.addr
+ { 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 =
- { addr_len : int64; flags : int64; mtu : int64; name : string;
- operstate : int64; perm_addr : string
+ { 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 =
- { dev_base_head'next : Virt_mem_mmap.addr;
- dev_base_head'prev : Virt_mem_mmap.addr
+ { 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 = { ifa_list : Virt_mem_mmap.addr };;
+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 = { addr_list : Virt_mem_mmap.addr };;
+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 = { ifa_next : Virt_mem_mmap.addr };;
+type in_ifaddr_shape_fields_40 =
+ { in_ifaddr_shape_fields_40_ifa_next : Virt_mem_mmap.addr
+ };;
type in_ifaddr_content_fields_41 =
- { ifa_address : int64; ifa_broadcast : int64; ifa_local : int64;
- ifa_mask : int64
+ { 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 = { lst_next : Virt_mem_mmap.addr };;
-type inet6_ifaddr_content_fields_47 = { prefix_len : int64 };;
+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
+ };;
+let match_err = "failed to match kernel structure";;
+let zero = 0;;
+let task_struct_parser_4 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_shape_fields_1_run_list'next = run_list'next;
+ task_struct_shape_fields_1_run_list'prev = run_list'prev;
+ task_struct_shape_fields_1_tasks'next = tasks'next;
+ task_struct_shape_fields_1_tasks'prev = tasks'prev } 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 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_shape_fields_1_run_list'next = run_list'next;
+ task_struct_shape_fields_1_run_list'prev = run_list'prev;
+ task_struct_shape_fields_1_tasks'next = tasks'next;
+ task_struct_shape_fields_1_tasks'prev = tasks'prev } 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 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_shape_fields_1_run_list'next = run_list'next;
+ task_struct_shape_fields_1_run_list'prev = run_list'prev;
+ task_struct_shape_fields_1_tasks'next = tasks'next;
+ task_struct_shape_fields_1_tasks'prev = tasks'prev } 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 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_shape_fields_1_run_list'next = run_list'next;
+ task_struct_shape_fields_1_run_list'prev = run_list'prev;
+ task_struct_shape_fields_1_tasks'next = tasks'next;
+ task_struct_shape_fields_1_tasks'prev = tasks'prev } 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 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_shape_fields_1_run_list'next = run_list'next;
+ task_struct_shape_fields_1_run_list'prev = run_list'prev;
+ task_struct_shape_fields_1_tasks'next = tasks'next;
+ task_struct_shape_fields_1_tasks'prev = tasks'prev } 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 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_shape_fields_2_tasks'next = tasks'next;
+ task_struct_shape_fields_2_tasks'prev = tasks'prev } 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 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_shape_fields_2_tasks'next = tasks'next;
+ task_struct_shape_fields_2_tasks'prev = tasks'prev } 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 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_shape_fields_2_tasks'next = tasks'next;
+ task_struct_shape_fields_2_tasks'prev = tasks'prev } 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 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_shape_fields_12_ip6_ptr = ip6_ptr;
+ net_device_shape_fields_12_ip_ptr = ip_ptr;
+ net_device_shape_fields_12_next = next } 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 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_shape_fields_12_ip6_ptr = ip6_ptr;
+ net_device_shape_fields_12_ip_ptr = ip_ptr;
+ net_device_shape_fields_12_next = next } 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 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_shape_fields_12_ip6_ptr = ip6_ptr;
+ net_device_shape_fields_12_ip_ptr = ip_ptr;
+ net_device_shape_fields_12_next = next } 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 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_shape_fields_13_dev_list'next = dev_list'next;
+ net_device_shape_fields_13_dev_list'prev = dev_list'prev;
+ net_device_shape_fields_13_ip6_ptr = ip6_ptr;
+ net_device_shape_fields_13_ip_ptr = ip_ptr } 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 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_shape_fields_13_dev_list'next = dev_list'next;
+ net_device_shape_fields_13_dev_list'prev = dev_list'prev;
+ net_device_shape_fields_13_ip6_ptr = ip6_ptr;
+ net_device_shape_fields_13_ip_ptr = ip_ptr } 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 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_shape_fields_13_dev_list'next = dev_list'next;
+ net_device_shape_fields_13_dev_list'prev = dev_list'prev;
+ net_device_shape_fields_13_ip6_ptr = ip6_ptr;
+ net_device_shape_fields_13_ip_ptr = ip_ptr } 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 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_shape_fields_13_dev_list'next = dev_list'next;
+ net_device_shape_fields_13_dev_list'prev = dev_list'prev;
+ net_device_shape_fields_13_ip6_ptr = ip6_ptr;
+ net_device_shape_fields_13_ip_ptr = ip_ptr } 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 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 = Int64.sub dev_base_head'next 666L;
+ net_shape_fields_22_dev_base_head'prev = Int64.sub dev_base_head'prev 666L } in
+ let content =
+ { net_shape_fields_22_dev_base_head'next = dev_base_head'next;
+ net_shape_fields_22_dev_base_head'prev = dev_base_head'prev } in
+ { net_shape = shape; net_content = content }
+ | { _ } ->
+ raise (Virt_mem_types.ParseError ("net", "net_parser_24", match_err));;
+let net_parser_25 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 = Int64.sub dev_base_head'next 666L;
+ net_shape_fields_22_dev_base_head'prev = Int64.sub dev_base_head'prev 666L } in
+ let content =
+ { net_shape_fields_22_dev_base_head'next = dev_base_head'next;
+ net_shape_fields_22_dev_base_head'prev = dev_base_head'prev } in
+ { net_shape = shape; net_content = content }
+ | { _ } ->
+ raise (Virt_mem_types.ParseError ("net", "net_parser_25", match_err));;
+let net_parser_26 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 = Int64.sub dev_base_head'next 666L;
+ net_shape_fields_22_dev_base_head'prev = Int64.sub dev_base_head'prev 666L } in
+ let content =
+ { net_shape_fields_22_dev_base_head'next = dev_base_head'next;
+ net_shape_fields_22_dev_base_head'prev = dev_base_head'prev } in
+ { net_shape = shape; net_content = content }
+ | { _ } ->
+ raise (Virt_mem_types.ParseError ("net", "net_parser_26", match_err));;
+let net_parser_27 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 = Int64.sub dev_base_head'next 666L;
+ net_shape_fields_22_dev_base_head'prev = Int64.sub dev_base_head'prev 666L } in
+ let content =
+ { net_shape_fields_22_dev_base_head'next = dev_base_head'next;
+ net_shape_fields_22_dev_base_head'prev = dev_base_head'prev } in
+ { net_shape = shape; net_content = content }
+ | { _ } ->
+ raise (Virt_mem_types.ParseError ("net", "net_parser_27", match_err));;
+let in_device_parser_30 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_device_shape_fields_28_ifa_list = ifa_list } 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 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_device_shape_fields_28_ifa_list = ifa_list } 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 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_device_shape_fields_28_ifa_list = ifa_list } 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 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_device_shape_fields_28_ifa_list = ifa_list } 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 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 =
+ { inet6_dev_shape_fields_34_addr_list = addr_list } 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 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 =
+ { inet6_dev_shape_fields_34_addr_list = addr_list } 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 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 =
+ { inet6_dev_shape_fields_34_addr_list = addr_list } 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 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 =
+ { inet6_dev_shape_fields_34_addr_list = addr_list } 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 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_shape_fields_40_ifa_next = ifa_next } 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 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_shape_fields_40_ifa_next = ifa_next } 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 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_shape_fields_40_ifa_next = ifa_next } 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 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_shape_fields_40_ifa_next = ifa_next } 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 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_shape_fields_46_lst_next = lst_next } 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 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_shape_fields_46_lst_next = lst_next } 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 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_shape_fields_46_lst_next = lst_next } 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 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_shape_fields_46_lst_next = lst_next } 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 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_shape_fields_46_lst_next = lst_next } 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 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_shape_fields_46_lst_next = lst_next } 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 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_shape_fields_46_lst_next = lst_next } in
+ { inet6_ifaddr_shape = shape; inet6_ifaddr_content = content }
+ | { _ } ->
+ raise (Virt_mem_types.ParseError ("inet6_ifaddr", "inet6_ifaddr_parser_54", match_err));;