Module Ctypes

module Ctypes: sig .. end
C-Types

type c_int = 
| UInt8
| SInt8
| UInt16
| SInt16
| UInt32
| SInt32
| UInt64
| SInt64
Runtime integers.
val c_int_all : c_int list
type c_float = 
| Float32
| Float64
Runtime floats.
type arrayflat = {
   arr_size : int; (*
number of elements in the array
*)
   arr_dim : int; (*
number of dimensions in the array
*)
   arr_cell : Cil_types.typ; (*
type of elementary cells of the flatten array. Never an array.
*)
   arr_cell_nbr : int; (*
number of elementary cells in the flatten array
*)
}
Array objects, with both the head view and the flatten view.
type arrayinfo = {
   arr_element : Cil_types.typ; (*
type of the elements of the array
*)
   arr_flat : arrayflat option;
}
type c_object = 
| C_int of c_int
| C_float of c_float
| C_pointer of Cil_types.typ
| C_comp of Cil_types.compinfo
| C_array of arrayinfo
Type of variable, inits, field or assignable values.
val object_of_pointed : c_object -> c_object
val object_of_array_elem : c_object -> c_object
val object_of_logic_type : Cil_types.logic_type -> c_object
val object_of_logic_pointed : Cil_types.logic_type -> c_object

Utilities


val i_iter : (c_int -> unit) -> unit
val f_iter : (c_float -> unit) -> unit
val i_memo : (c_int -> 'a) -> c_int -> 'a
memoized, not-projectified
val f_memo : (c_float -> 'a) -> c_float -> 'a
memoized, not-projectified
val is_char : c_int -> bool
val c_char : unit -> c_int
Returns the type of char
val c_bool : unit -> c_int
Returns the type of int
val c_ptr : unit -> c_int
Returns the type of pointers
val c_int : Cil_types.ikind -> c_int
Conforms to
val c_float : Cil_types.fkind -> c_float
Conforms to
val object_of : Cil_types.typ -> c_object
val is_void : Cil_types.typ -> bool
val is_pointer : c_object -> bool
val char : char -> int64
val constant : Cil_types.exp -> int64
val get_int : Cil_types.exp -> int64 option
val i_bits : c_int -> int
size in bits
val i_bytes : c_int -> int
size in bytes
val signed : c_int -> bool
true if signed
val bounds : c_int -> Integer.t * Integer.t
domain, bounds included

All sizes are in bits
val sub_c_int : c_int -> c_int -> bool
val sub_c_float : c_float -> c_float -> bool
val sizeof_defined : c_object -> bool
val sizeof_object : c_object -> int
val field_offset : Cil_types.fieldinfo -> int
val no_infinite_array : c_object -> bool
val is_comp : c_object -> Cil_types.compinfo -> bool
val is_array : c_object -> elt:c_object -> bool
val get_array : c_object -> (c_object * int option) option
val get_array_size : c_object -> int option
val array_size : arrayinfo -> int option
val array_dim : arrayinfo -> c_object * int
val array_dimensions : arrayinfo -> c_object * int option list
Returns the list of dimensions the array consists of. None-dimension means undefined one.
val dimension_of_object : c_object -> (int * int) option
Returns None for 1-dimension objects, and Some(d,N) for d-matrix with N cells
val i_convert : c_int -> c_int -> c_int
val f_convert : c_float -> c_float -> c_float
val promote : c_object -> c_object -> c_object
val pp_int : Format.formatter -> c_int -> unit
val pp_float : Format.formatter -> c_float -> unit
val pp_object : Format.formatter -> c_object -> unit
val basename : c_object -> string
val compare : c_object -> c_object -> int
val equal : c_object -> c_object -> bool
val merge : c_object -> c_object -> c_object
val hash : c_object -> int
val pretty : Format.formatter -> c_object -> unit
module C_object: Datatype.S  with type t = c_object
module AinfoComparable: sig .. end
val compare_ptr_conflated : c_object -> c_object -> int
same as Ctypes.compare but all PTR are considered the same