package bap-primus-greedy-scheduler
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=9c126781385d2fa9b8edab22e62b25c70bf2f99f6ec78abb7e5e36d63cfa4174
md5=5abd9b3628b43f797326034f31ca574f
doc/bap-plugin-primus_greedy/Primus_greedy_main/Greedy/argument-1-Machine/index.html
Parameter Greedy.Machine
module Observation : sig ... endObservations interface.
module Syntax : sig ... endComputation Syntax.
include Monads.Std.Monad.State.Multi.S
with type 'a t := 'a t
and type 'a m := 'a m
and type env := Bap.Std.project
and type id := Bap_primus.Std.Primus.Machine.id
and module Syntax := Syntax
and type 'a e =
?boot:unit t ->
?init:unit t ->
?fini:unit t ->
(Bap_primus.Std.Primus.exit_status * Bap.Std.project) m
Bap_primus.Std.Primus.effect
include Monads.Std.Monad.Trans.S
with type 'a t := 'a t
with type 'a m := 'a m
with type 'a e =
?boot:unit t ->
?init:unit t ->
?fini:unit t ->
(Bap_primus.Std.Primus.exit_status * Bap.Std.project) m
Bap_primus.Std.Primus.effect
type 'a e =
?boot:unit t ->
?init:unit t ->
?fini:unit t ->
(Bap_primus.Std.Primus.exit_status * Bap.Std.project) m
Bap_primus.Std.Primus.effectmodule Id :
Core_kernel.Identifiable.S with type t = Bap_primus.Std.Primus.Machine.idval global : Bap_primus.Std.Primus.Machine.idthe identifier of the global (initial) state.
val fork : unit -> unit tfork () forks the current state.
val switch : Bap_primus.Std.Primus.Machine.id -> unit tswitch id switches to the state with the given id if such state is alive, otherwise switches to the closest alive ancestor of the state with the given id
val parent : unit -> Bap_primus.Std.Primus.Machine.id tparent () returns an identifier of the closest alive parent.
val ancestor :
Bap_primus.Std.Primus.Machine.id list ->
Bap_primus.Std.Primus.Machine.id tancestor ids returns an identifier of the closest common ancestor of states with the given identifiers.
val current : unit -> Bap_primus.Std.Primus.Machine.id tcurrent id returns an identifier of current state.
val kill : Bap_primus.Std.Primus.Machine.id -> unit tkill id kills a state with the specified id. If id corresponds to the current state, then switches to the closest ancestor. If id = global then do nothing.
val forks : unit -> Bap_primus.Std.Primus.Machine.id Core_kernel.Sequence.t tforks xs returns a sequence of all alive states
val status :
Bap_primus.Std.Primus.Machine.id ->
Monads.Std.Monad.State.Multi.status tstatus id returns a status of a state with the given id
include Monads.Std.Monad.State.S
with type 'a t := 'a t
and type 'a e := 'a e
and type 'a m := 'a m
with type env := Bap.Std.project
with module Syntax := Syntax
include Monads.Std.Monad.Monad
with type 'a t := 'a t
with module Syntax := Syntax
sequence xs computes a sequence of computations xs in the left to right order.
module Fn : sig ... endVarious function combinators lifted into the Kleisli category.
module Pair : sig ... endThe pair interface lifted into the monad.
module Triple : sig ... endThe triple interface lifted into a monad.
module Lift : sig ... endLifts functions into the monad.
module Exn : sig ... endInteracting between monads and language exceptions
module Collection : sig ... endLifts collection interface into the monad.
module List : Collection.S with type 'a t := 'a listThe Monad.Collection.S interface for lists
module Seq : Collection.S with type 'a t := 'a Core_kernel.Sequence.tThe Monad.Collection.S interface for sequences
include Monads.Std.Monad.Syntax.S with type 'a t := 'a t
val (!!) : 'a -> 'a t!!x is return x
!$$$$f is Lift.quaternary f
include Monads.Std.Monad.Syntax.Let.S with type 'a t := 'a t
include Core_kernel.Monad.S with type 'a t := 'a t
module Monad_infix : sig ... endval return : 'a -> 'a tmodule Let_syntax : sig ... endmodule Let : Monads.Std.Monad.Syntax.Let.S with type 'a t := 'a tMonadic operators, see Monad.Syntax.S for more.
val put : Bap.Std.project -> unit tput s changes the current state to s
val get : unit -> Bap.Std.project tget s gets the current state
val gets : (Bap.Std.project -> 'r) -> 'r tgets p projects the current state with the function p
val update : (Bap.Std.project -> Bap.Std.project) -> unit tupdate f updates the current state with the function f
module Local :
Bap_primus.Std.Primus.Machine.State
with type 'a m := 'a t
and type 'a t := 'a Bap_primus.Std.Primus.Machine.stateLocal state of the machine.
module Global :
Bap_primus.Std.Primus.Machine.State
with type 'a m := 'a t
and type 'a t := 'a Bap_primus.Std.Primus.Machine.stateGlobal state shared across all machine clones.
module Other : sig ... endLocal state of other machines.
val raise : Bap_primus.Std.Primus.exn -> 'a traise exn raises the machine exception exn, intiating an abonormal control flow
val catch : 'a t -> (Bap_primus.Std.Primus.exn -> 'a t) -> 'a tcatch x f creates a computation that is equal to x if it terminates normally, and to f e if x terminates abnormally with the exception e.
val project : Bap.Std.project tproject is a computation that results with the project data structure. Note, that Machine is a State monad with the env type equal to project, thus project is a shortcut to get ().
This function is always evaluated in the global context, i.e., there is only one project that is shared by all machine forks.
You can use put project to update the project data structure.
val program : Bap.Std.program Bap.Std.term tprogram program representation.
The same as gets Project.program.
val arch : Bap.Std.arch tarch code architecture.
The same as gets Project.arch.
val args : string array targs program command line arguments.
val envp : string array tenvp program environment variables.