sig
module Vars :
sig
val find : Cil_types.varinfo -> Cil_types.initinfo
val find_from_astinfo :
string -> Db_types.localisation -> Cil_types.varinfo
val get_astinfo : Cil_types.varinfo -> string * Db_types.localisation
val iter : (Cil_types.varinfo -> Cil_types.initinfo -> unit) -> unit
val fold :
(Cil_types.varinfo -> Cil_types.initinfo -> 'a -> 'a) -> 'a -> 'a
exception AlreadyExists of Cil_types.varinfo * Cil_types.initinfo
val add : Cil_types.varinfo -> Cil_types.initinfo -> unit
val add_decl : Cil_types.varinfo -> unit
val self : Project.Computation.t
end
module Functions :
sig
module KF_Datatype :
sig
type t = Db_types.kernel_function
val descr : Unmarshal.t
val copy : t -> t
val name : string
val register_comparable :
?compare:(t -> t -> int) ->
?equal:(t -> t -> bool) -> ?hash:(t -> int) -> unit -> unit
val is_comparable_set : unit -> bool
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> int
val mem_project :
((Project.project -> bool) -> t -> bool) option ref
val pretty : Format.formatter -> Db_types.kernel_function -> unit
val id : t -> int
end
val self : Project.Computation.t
val get : Cil_types.varinfo -> Db_types.kernel_function
val get_params : Db_types.kernel_function -> Cil_types.varinfo list
val get_vi : Db_types.kernel_function -> Cil_types.varinfo
val get_glob_init :
?main_name:string -> Cil_types.file -> Db_types.kernel_function
val find_by_name : string -> Db_types.kernel_function
val find_def_by_name : string -> Db_types.kernel_function
val find_englobing_kf :
Cil_types.kinstr -> Db_types.kernel_function option
val iter : (Db_types.kernel_function -> unit) -> unit
val fold : (Db_types.kernel_function -> 'a -> 'a) -> 'a -> 'a
val iter_on_fundecs : (Cil_types.fundec -> unit) -> unit
val add : Db_types.cil_function -> unit
val replace_by_declaration :
Cil_types.funspec -> Cil_types.varinfo -> Cil_types.location -> unit
val replace_by_definition :
Cil_types.funspec -> Cil_types.fundec -> Cil_types.location -> unit
end
module Annotations :
sig
val self : Project.Computation.t
val get_all : unit -> (Cil_types.global_annotation * bool) list
val iter : (Cil_types.global_annotation -> bool -> unit) -> unit
val add_user : Cil_types.global_annotation -> unit
val add_generated : Cil_types.global_annotation -> unit
val replace_all :
(Cil_types.global_annotation ->
bool -> Cil_types.global_annotation * bool) ->
unit
end
module FileIndex :
sig
val self : Project.Computation.t
val get_symbols : filename:string -> Cil_types.global list
val find : filename:string -> string * Cil_types.global list
val get_files : unit -> string list
val get_globals :
filename:string -> (Cil_types.varinfo * Cil_types.initinfo) list
val get_functions : filename:string -> Db_types.kernel_function list
val kernel_function_of_local_var_or_param_varinfo :
Cil_types.varinfo -> Db_types.kernel_function * bool
end
exception No_such_entry_point of string
val entry_point : unit -> Db_types.kernel_function * bool
val set_entry_point : string -> bool -> unit
val has_entry_point : unit -> bool
end