val generate_types :
(string
- * Struct_classify.shape_field_struct list
- * Struct_classify.content_field_struct list) list ->
+ * (string * (Pahole_parser.f_type * bool)) list) list ->
code
- (** [generate_types structures] generates the internal
- types used to store variants of each structure, including:
- - shape field structures
- - content field structures
+ (** [generate_types structures] generates the
+ types used to store each structure.
*)
(** {2 Generate offset functions}
val generate_offsets :
(string * ((Pahole_parser.info * Pahole_parser.structure) list
- * (string * Pahole_parser.f_type) list)) list ->
+ * (string * (Pahole_parser.f_type * bool)) list)) list ->
code
(** [generate_offsets] generates the offset functions. *)
into our internal types.
*)
-val generate_parsers : (string * Struct_classify.parser_ list) list ->
+val generate_parsers :
+ (string * ((string * (Pahole_parser.f_type * bool)) list
+ * Minimizer.parser_ list)) list ->
code * (string, string) Hashtbl.t
(** [generate_parsers] generates the parser functions.
by the contents of the returned hash table in {!output_implem}.
*)
+(** {2 Generate version maps}
+
+ The version maps are functions such as [size_of_<struct> kernel_version]
+ which return some aspects of the structures and fields that
+ depend at runtime on the kernel version.
+*)
+
+val generate_version_maps :
+ (string * ((Pahole_parser.info * Pahole_parser.structure) list
+ * (string, Minimizer.parser_) Hashtbl.t)) list ->
+ code
+
(** {2 Generate followers}
The "followers" are functions which recursively follow every
*)
val generate_followers :
- (string * ((Pahole_parser.info * Pahole_parser.structure) list
- * Struct_classify.shape_field_struct list
- * Struct_classify.sfhash * Struct_classify.pahash)) list ->
+ string list ->
+ (string * (string * (Pahole_parser.f_type * bool)) list) list ->
code
(** [generate_followers] generates the follower functions. *)
Camlp4.PreCast.Syntax.Ast.sig_item ->
Camlp4.PreCast.Syntax.Ast.sig_item ->
Camlp4.PreCast.Syntax.Ast.sig_item ->
+ Camlp4.PreCast.Syntax.Ast.sig_item ->
unit
(** Output the interface file. *)
Camlp4.PreCast.Syntax.Ast.str_item ->
(string, string) Hashtbl.t ->
Camlp4.PreCast.Syntax.Ast.str_item ->
+ Camlp4.PreCast.Syntax.Ast.str_item ->
unit
(** Output the implementation file. *)