package goblint
Module MutexAnalysis.Spec
module Arg : sig ... endinclude sig ... end
val combine_env :
'a ->
GoblintCil.lval option ->
'b ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'c ->
'd ->
Queries.ask ->
'dval combine_assign :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.lval option ->
'e ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'f ->
'g ->
Queries.ask ->
'amodule C : sig ... endval startstate : 'a -> Arg.D.tval threadenter : 'a -> 'b -> 'c -> 'd -> Arg.D.t listval exitstate : 'a -> Arg.D.tmodule D = Arg.Dmodule P : sig ... endmodule V = Arg.Vmodule GProtecting = Arg.GProtectingmodule GProtected = Arg.GProtectedmodule G = Arg.Gmodule GM : sig ... endval max_protected : int refval num_mutexes : int refval sum_protected : int refval query :
([ `Lifted of BatSet.Make(Lockset.Lock).t | `Top ] * Arg.Multiplicity.t,
[> `Bot | `Lifted1 of GProtecting.t | `Lifted2 of Arg.GProtected.t ],
'b,
V.t)
Analyses.ctx ->
'a Queries.t ->
'a Queries.resultmodule A : sig ... endval access : ('a * 'b, 'c, 'd, 'e) Analyses.ctx -> Queries.access -> 'aval event :
(Arg.D.t, Arg.G.t, Arg.D.t, Arg.V.t) Analyses.ctx ->
Events.t ->
([ `Lifted of BatSet.Make(Lockset.Lock).t | `Top ] * 'a, 'b, 'c, 'd)
Analyses.ctx ->
Arg.D.t