Module Cstubs_c_language

val fresh_var : ?prefix:string -> unit -> string
type ty =
  1. | Ty : _ Ctypes_static.typ -> ty
type tfn =
  1. | Fn : _ Ctypes_static.fn -> tfn
type fieldname = string
type cfunction = {
  1. fname : string;
  2. allocates : bool;
  3. reads_ocaml_heap : bool;
  4. fn : tfn;
}
type cglobal = {
  1. name : string;
  2. typ : ty;
  3. references_ocaml_heap : bool;
}
type clocal = [
  1. | `Local of string * ty
]
type cvar = [
  1. | clocal
  2. | `Global of cglobal
]
type storage_class = [
  1. | `Static
  2. | `Extern
]
type cconst = [
  1. | `Int of Signed.sint
]
type cexp = [
  1. | cconst
  2. | clocal
  3. | `Cast of ty * cexp
  4. | `Addr of cvar
]
type clvalue = [
  1. | cvar
  2. | `Index of clvalue * cexp
  3. | `Field of clvalue * fieldname
  4. | `PointerField of clvalue * fieldname
]
type camlop = [
  1. | `CAMLparam0
  2. | `CAMLlocalN of cexp * cexp
  3. | `CAMLdrop
]
type ceff = [
  1. | cexp
  2. | camlop
  3. | `Global of cglobal
  4. | `App of cfunction * cexp list
  5. | `Index of ceff * cexp
  6. | `Deref of cexp
  7. | `DerefField of cexp * fieldname
]
type cbind = clocal * ceff
type ccomp = [
  1. | ceff
  2. | `CAMLparam of string list * ccomp
  3. | `LetConst of clocal * cconst * ccomp
  4. | `LetAssign of clvalue * ceff * ccomp
  5. | `CAMLreturnT of ty * cexp
  6. | `Return of ty * cexp
  7. | `Let of cbind * ccomp
]
type cfundec = [
  1. | `Fundec of string * (string * ty) list * ty
]
type cfundef = [
  1. | `Function of cfundec * ccomp * storage_class
]
val return_type : 'a. 'a Ctypes_static.fn -> ty
val args : 'a. 'a Ctypes_static.fn -> (string * ty) list
module Type_C : sig ... end
val reader : string -> 'a Ctypes_static.fn -> cfunction
val conser : string -> 'a Ctypes_static.fn -> cfunction
val immediater : string -> 'a Ctypes_static.fn -> cfunction
module Unchecked_function_types : sig ... end
val prim_prj : 'a. 'a Ctypes_primitive_types.prim -> cfunction
val prim_inj : 'a. 'a Ctypes_primitive_types.prim -> cfunction