sig
type c_int =
UInt8
| SInt8
| UInt16
| SInt16
| UInt32
| SInt32
| UInt64
| SInt64
val c_int_all : Ctypes.c_int list
type c_float = Float32 | Float64
type arrayflat = {
arr_size : int;
arr_dim : int;
arr_cell : Cil_types.typ;
arr_cell_nbr : int;
}
type arrayinfo = {
arr_element : Cil_types.typ;
arr_flat : Ctypes.arrayflat option;
}
type c_object =
C_int of Ctypes.c_int
| C_float of Ctypes.c_float
| C_pointer of Cil_types.typ
| C_comp of Cil_types.compinfo
| C_array of Ctypes.arrayinfo
val object_of_pointed : Ctypes.c_object -> Ctypes.c_object
val object_of_array_elem : Ctypes.c_object -> Ctypes.c_object
val object_of_logic_type : Cil_types.logic_type -> Ctypes.c_object
val object_of_logic_pointed : Cil_types.logic_type -> Ctypes.c_object
val i_iter : (Ctypes.c_int -> unit) -> unit
val f_iter : (Ctypes.c_float -> unit) -> unit
val i_memo : (Ctypes.c_int -> 'a) -> Ctypes.c_int -> 'a
val f_memo : (Ctypes.c_float -> 'a) -> Ctypes.c_float -> 'a
val is_char : Ctypes.c_int -> bool
val c_char : unit -> Ctypes.c_int
val c_bool : unit -> Ctypes.c_int
val c_ptr : unit -> Ctypes.c_int
val c_int : Cil_types.ikind -> Ctypes.c_int
val c_float : Cil_types.fkind -> Ctypes.c_float
val object_of : Cil_types.typ -> Ctypes.c_object
val is_void : Cil_types.typ -> bool
val is_pointer : Ctypes.c_object -> bool
val char : char -> int64
val constant : Cil_types.exp -> int64
val get_int : Cil_types.exp -> int64 option
val i_bits : Ctypes.c_int -> int
val i_bytes : Ctypes.c_int -> int
val signed : Ctypes.c_int -> bool
val bounds : Ctypes.c_int -> Integer.t * Integer.t
val sub_c_int : Ctypes.c_int -> Ctypes.c_int -> bool
val equal_float : Ctypes.c_float -> Ctypes.c_float -> bool
val sizeof_defined : Ctypes.c_object -> bool
val sizeof_object : Ctypes.c_object -> int
val field_offset : Cil_types.fieldinfo -> int
val no_infinite_array : Ctypes.c_object -> bool
val is_comp : Ctypes.c_object -> Cil_types.compinfo -> bool
val is_array : Ctypes.c_object -> elt:Ctypes.c_object -> bool
val get_array : Ctypes.c_object -> (Ctypes.c_object * int option) option
val get_array_size : Ctypes.c_object -> int option
val get_array_dim : Ctypes.c_object -> int
val array_size : Ctypes.arrayinfo -> int option
val array_dimensions :
Ctypes.arrayinfo -> Ctypes.c_object * int option list
val dimension_of_object : Ctypes.c_object -> (int * int) option
val i_convert : Ctypes.c_int -> Ctypes.c_int -> Ctypes.c_int
val f_convert : Ctypes.c_float -> Ctypes.c_float -> Ctypes.c_float
val promote : Ctypes.c_object -> Ctypes.c_object -> Ctypes.c_object
val pp_int : Format.formatter -> Ctypes.c_int -> unit
val pp_float : Format.formatter -> Ctypes.c_float -> unit
val pp_object : Format.formatter -> Ctypes.c_object -> unit
val basename : Ctypes.c_object -> string
val compare : Ctypes.c_object -> Ctypes.c_object -> int
val equal : Ctypes.c_object -> Ctypes.c_object -> bool
val hash : Ctypes.c_object -> int
val pretty : Format.formatter -> Ctypes.c_object -> unit
module C_object :
sig
type t = c_object
val ty : t Type.t
val name : string
val descr : t Descr.t
val packed_descr : Structural_descr.pack
val reprs : t list
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val pretty_code : Format.formatter -> t -> unit
val internal_pretty_code :
Type.precedence -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val varname : t -> string
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
val copy : t -> t
end
module AinfoComparable :
sig
type t = Ctypes.arrayinfo
val compare :
Ctypes.AinfoComparable.t -> Ctypes.AinfoComparable.t -> int
val equal :
Ctypes.AinfoComparable.t -> Ctypes.AinfoComparable.t -> bool
val hash : Ctypes.AinfoComparable.t -> int
end
val compare_ptr_conflated : Ctypes.c_object -> Ctypes.c_object -> int
end