Stupid bug - extract the content fields correctly.
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 14 Aug 2008 18:16:51 +0000 (19:16 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 14 Aug 2008 18:16:51 +0000 (19:16 +0100)
extract/codegen/code_generation.ml
lib/kernel.ml

index b462af2..eaec4c8 100644 (file)
@@ -346,25 +346,29 @@ let generate_parsers xs =
            ) sf.SC.sf_fields in
 
          let shape_assignments =
-           String.concat ";\n        " shape_assignments in
+           if shape_assignments = [] then "()"
+           else
+             "{ " ^ String.concat ";\n        " shape_assignments ^ " }" in
 
          let content_assignments =
            List.map (
              fun { PP.field_name = field_name } ->
-               sprintf "%s_%s = %s" sf.SC.sf_name field_name field_name
-           ) sf.SC.sf_fields in
+               sprintf "%s_%s = %s" cf.SC.cf_name field_name field_name
+           ) cf.SC.cf_fields in
 
          let content_assignments =
-           String.concat ";\n        " content_assignments in
+           if content_assignments = [] then "()"
+           else
+             "{ " ^ String.concat ";\n        " content_assignments ^ " }" in
 
          let code =
            sprintf "
   bitmatch bits with
   | { %s } ->
       let shape =
-      { %s } in
+      %s in
       let content =
-      { %s } in
+      %s in
       { %s_shape = shape; %s_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError (%S, %S, match_err))"
index 8a7b132..4ce4b55 100644 (file)
@@ -113,10 +113,12 @@ let task_struct_parser_4 kernel_version bits =
         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_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));;
@@ -138,10 +140,12 @@ let task_struct_parser_5 kernel_version bits =
         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_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));;
@@ -163,10 +167,12 @@ let task_struct_parser_6 kernel_version bits =
         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_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));;
@@ -188,10 +194,12 @@ let task_struct_parser_7 kernel_version bits =
         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_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));;
@@ -213,10 +221,12 @@ let task_struct_parser_8 kernel_version bits =
         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_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));;
@@ -234,8 +244,12 @@ let task_struct_parser_9 kernel_version bits =
       { 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_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));;
@@ -253,8 +267,12 @@ let task_struct_parser_10 kernel_version bits =
       { 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_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));;
@@ -272,8 +290,12 @@ let task_struct_parser_11 kernel_version bits =
       { 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_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));;
@@ -293,9 +315,12 @@ let net_device_parser_15 kernel_version bits =
         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_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));;
@@ -315,9 +340,12 @@ let net_device_parser_16 kernel_version bits =
         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_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));;
@@ -337,9 +365,12 @@ let net_device_parser_17 kernel_version bits =
         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_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));;
@@ -361,10 +392,12 @@ let net_device_parser_18 kernel_version bits =
         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_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));;
@@ -386,10 +419,12 @@ let net_device_parser_19 kernel_version bits =
         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_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));;
@@ -411,10 +446,12 @@ let net_device_parser_20 kernel_version bits =
         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_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));;
@@ -436,10 +473,12 @@ let net_device_parser_21 kernel_version bits =
         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_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));;
@@ -459,8 +498,7 @@ let net_parser_24 kernel_version bits =
                       Int64.sub dev_base_head'prev offset
                     ) } 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
+      () in
       { net_shape = shape; net_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("net", "net_parser_24", match_err));;
@@ -480,8 +518,7 @@ let net_parser_25 kernel_version bits =
                       Int64.sub dev_base_head'prev offset
                     ) } 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
+      () in
       { net_shape = shape; net_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("net", "net_parser_25", match_err));;
@@ -501,8 +538,7 @@ let net_parser_26 kernel_version bits =
                       Int64.sub dev_base_head'prev offset
                     ) } 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
+      () in
       { net_shape = shape; net_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("net", "net_parser_26", match_err));;
@@ -522,8 +558,7 @@ let net_parser_27 kernel_version bits =
                       Int64.sub dev_base_head'prev offset
                     ) } 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
+      () in
       { net_shape = shape; net_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("net", "net_parser_27", match_err));;
@@ -533,7 +568,7 @@ let in_device_parser_30 kernel_version bits =
       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
       { in_device_shape = shape; in_device_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_30", match_err));;
@@ -543,7 +578,7 @@ let in_device_parser_33 kernel_version bits =
       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
       { in_device_shape = shape; in_device_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_33", match_err));;
@@ -553,7 +588,7 @@ let in_device_parser_32 kernel_version bits =
       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
       { in_device_shape = shape; in_device_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_32", match_err));;
@@ -563,7 +598,7 @@ let in_device_parser_31 kernel_version bits =
       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
       { in_device_shape = shape; in_device_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("in_device", "in_device_parser_31", match_err));;
@@ -573,7 +608,7 @@ let inet6_dev_parser_36 kernel_version bits =
       let shape =
       { inet6_dev_shape_fields_34_addr_list = addr_list } in
       let content =
-      { inet6_dev_shape_fields_34_addr_list = addr_list } in
+      () in
       { inet6_dev_shape = shape; inet6_dev_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_36", match_err));;
@@ -583,7 +618,7 @@ let inet6_dev_parser_39 kernel_version bits =
       let shape =
       { inet6_dev_shape_fields_34_addr_list = addr_list } in
       let content =
-      { inet6_dev_shape_fields_34_addr_list = addr_list } in
+      () in
       { inet6_dev_shape = shape; inet6_dev_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_39", match_err));;
@@ -593,7 +628,7 @@ let inet6_dev_parser_38 kernel_version bits =
       let shape =
       { inet6_dev_shape_fields_34_addr_list = addr_list } in
       let content =
-      { inet6_dev_shape_fields_34_addr_list = addr_list } in
+      () in
       { inet6_dev_shape = shape; inet6_dev_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_38", match_err));;
@@ -603,7 +638,7 @@ let inet6_dev_parser_37 kernel_version bits =
       let shape =
       { inet6_dev_shape_fields_34_addr_list = addr_list } in
       let content =
-      { inet6_dev_shape_fields_34_addr_list = addr_list } in
+      () in
       { inet6_dev_shape = shape; inet6_dev_content = content }
   | { _ } ->
       raise (Virt_mem_types.ParseError ("inet6_dev", "inet6_dev_parser_37", match_err));;
@@ -617,7 +652,10 @@ let in_ifaddr_parser_42 kernel_version bits =
       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_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));;
@@ -631,7 +669,10 @@ let in_ifaddr_parser_45 kernel_version bits =
       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_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));;
@@ -645,7 +686,10 @@ let in_ifaddr_parser_43 kernel_version bits =
       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_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));;
@@ -659,7 +703,10 @@ let in_ifaddr_parser_44 kernel_version bits =
       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_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));;
@@ -670,7 +717,7 @@ let inet6_ifaddr_parser_48 kernel_version bits =
       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_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));;
@@ -681,7 +728,7 @@ let inet6_ifaddr_parser_50 kernel_version bits =
       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_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));;
@@ -692,7 +739,7 @@ let inet6_ifaddr_parser_49 kernel_version bits =
       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_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));;
@@ -703,7 +750,7 @@ let inet6_ifaddr_parser_51 kernel_version bits =
       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_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));;
@@ -714,7 +761,7 @@ let inet6_ifaddr_parser_52 kernel_version bits =
       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_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));;
@@ -725,7 +772,7 @@ let inet6_ifaddr_parser_53 kernel_version bits =
       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_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));;
@@ -736,7 +783,7 @@ let inet6_ifaddr_parser_54 kernel_version bits =
       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_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));;