package bap-std
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=631fc58628418e4856709a0cfc923a65e00c9494fbd28d444c633d11194831de
md5=3db9deac8d429b9b8a8ec9aec54987b1
doc/bap/Bap/Std/Image/Scheme/index.html
Module Image.Scheme
A scheme of image specification.
An attribute is some statement about a program that is true, thus each attribute is a proposition in a logical database of inferred facts.
Note, in comments we use actual field names in the synopsis section of a function, e.g., section addr size means that the section statement has two fields Scheme.addr and Scheme.size.
See the OGRE library for more information.
type 'a region = {addr : addr;(*a staring address
*)size : size;(*a size of the segment
*)info : 'a;(*the attached information
*)
}a contiguous piece of memory.
val off : off Ogre.fieldoffset
val size : size Ogre.fieldoffset
size
val addr : addr Ogre.fieldsize
address
val name : string Ogre.fieldaddress
name
val root : addr Ogre.fieldname
code root
val readable : bool Ogre.fieldcode root
is readable
val writable : bool Ogre.fieldis readable
is_writable
val executable : bool Ogre.fieldis_writable
is_executable
val fixup : addr Ogre.fieldis_executable
an address of a fixup
val arch : (string, (string -> 'a) -> 'a) Ogre.attributearch name a file contains code for the name architecture.
val segment :
((bool * bool * bool) region,
(addr -> size -> bool -> bool -> bool -> 'a) ->
'a)
Ogre.attributesegment addr size readable writable executable a memory region (addr,size) has the specified permissions.
val section : (unit region, (addr -> size -> 'a) -> 'a) Ogre.attributesection addr size a memory region is a section
val code_start : (addr, (addr -> 'a) -> 'a) Ogre.attributecode_start addr an address starts a code sequence
val entry_point : (addr, (addr -> 'a) -> 'a) Ogre.attributeentry_point addr an address is a program entry point
symbol_chunk addr size root a contiguous piece of a program symbol, that can be a function or some data.
val named_region :
(string region, (addr -> size -> string -> 'a) -> 'a) Ogre.attributenamed_region addr size name a region of memory has a name
val named_symbol : (addr * string, (addr -> string -> 'a) -> 'a) Ogre.attributenamed_symbol addr name a symbol that starts at this addr has this name.
mapped addr size off sequence of bytes in a file starting at offset off and has the given size is mapped into memory at the given address addr
val relocation : (int64 * addr, (addr -> addr -> 'a) -> 'a) Ogre.attributerelocation fixup addr a value referenced at the code that has the fixup address is relocated to the specified address addr.
val external_reference :
(addr * string, (addr -> string -> 'a) -> 'a) Ogre.attributeextrenal_reference addr name a piece of code at the specified address addr references an external symbol with the given name.
val base_address : (addr, (addr -> 'a) -> 'a) Ogre.attributebase_address addr this is the base address of an image, i.e., an address of a first byte of the image.