"net", {
good_fields = [ "dev_base_head'next"; "dev_base_head'prev" ];
field_metadata = [
- "dev_base_head'next", ListHeadIsReally (Some ("net_device", "dev_list"));
- "dev_base_head'prev", ListHeadIsReally (Some ("net_device", "dev_list"));
+ "dev_base_head'next",
+ ListHeadIsReally (Some ("net_device", "dev_list'next"));
+ "dev_base_head'prev",
+ ListHeadIsReally (Some ("net_device", "dev_list'next"));
];
};
"in_device", {
) structures
) in
- let implem_parsers, interf_parsers, subst_parsers =
+ let implem_offsets, interf_offsets =
+ CG.generate_offsets (
+ List.map (
+ fun (struct_name,
+ (kernels, all_fields, _, _, _, _, _, _)) ->
+ (struct_name, (kernels, all_fields))
+ ) structures
+ ) in
+
+ let (implem_parsers, interf_parsers), subst_parsers =
CG.generate_parsers (
List.map (
fun (struct_name, (_, _, _, _, _, _, palist, _)) ->
(* Output the generated code. *)
let output_file = outputdir // "kernel.mli" in
printf "Writing kernel data interface to %s ...\n%!" output_file;
- CG.output_interf ~output_file interf_types interf_parsers;
+ CG.output_interf ~output_file
+ interf_types interf_offsets interf_parsers;
let output_file = outputdir // "kernel.ml" in
printf "Writing kernel data parsers to %s ...\n%!" output_file;
- CG.output_implem ~output_file implem_types implem_parsers subst_parsers;
+ CG.output_implem ~output_file
+ implem_types implem_offsets implem_parsers
+ subst_parsers;
printf "Finished.\n"