To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
Library
Module
Module type
Parameter
Class
Class type
A program label.
Labels are generalization of addresses and are use to uniquely identify a program location, even if this location is not having an address. Labels are Knowledge objects of the program
class, therefore they have the semantics property, accessible via the Program.Semantics.slot
.
type t = label
Properties
the interrupt vector of the label.
Labels could also represent code in interrupt vector routines, therefore the might be referenced by a number, not by an address of a name.
val aliases : (program, Core_kernel.Set.M(Core_kernel.String).t) KB.slot
possible aliases under which the label might be known.
This may include versioned names, demangled names, etc.
a link is valid if it references a valid program.
If a link references a memory location which is not executable, then it is not valid.
a link is subroutine if it is an entry point to a subroutine.
val for_addr : Bitvec.t -> t Bap_knowledge.knowledge
for_addr x
generates a link to address x
.
It is guaranteed that every call for_addr x
with the same x
will return the same label.
val for_name : string -> t Bap_knowledge.knowledge
for_name x
generates a link to program with linkage name x
.
It is guaranteed that every call for_name x
with the same x
will return the same label.
val for_ivec : int -> t Bap_knowledge.knowledge
for_name x
generates a link to an interrupt service number x
.
It is guaranteed that every call for_name x
with the same x
will return the same label.
include Bap_knowledge.Knowledge.Object.S with type t := t
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
include Base.Comparable.S with type t := t
include Base.Comparisons.S with type t := t
compare t1 t2
returns 0 if t1
is equal to t2
, a negative integer if t1
is less than t2
, and a positive integer if t1
is greater than t2
.
ascending
is identical to compare
. descending x y = ascending y x
. These are intended to be mnemonic when used like List.sort ~compare:ascending
and List.sort
~cmp:descending
, since they cause the list to be sorted in ascending or descending order, respectively.
clamp_exn t ~min ~max
returns t'
, the closest value to t
such that between t' ~low:min ~high:max
is true.
Raises if not (min <= max)
.
val clamp : t -> min:t -> max:t -> t Base.Or_error.t
include Base.Comparator.S with type t := t
val comparator : (t, comparator_witness) Base.Comparator.comparator
val validate_lbound : min:t Base.Maybe_bound.t -> t Base.Validate.check
val validate_ubound : max:t Base.Maybe_bound.t -> t Base.Validate.check
val validate_bound :
min:t Base.Maybe_bound.t ->
max:t Base.Maybe_bound.t ->
t Base.Validate.check
include Core_kernel.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
This function only needs implementation if t
exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t
afterwards.
val bin_shape_t : Bin_prot.Shape.t
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_t : t Bin_prot.Type_class.t