Module Dba_types

module Dba_types: sig .. end
Modules & types related to DBA types

type instruction_sequence = (Dba.address * Dba.instruction) list 
module Call_stack: Comparable  with type t = (Dba.address * Dba.address) list
module Region: sig .. end

Dba address / Code address


module Caddress: sig .. end
A DBA instruction is uniquely located at an address + label/id

Virtual addresses


module Virtual_address: sig .. end
module AddressStack: sig .. end
module Rights: sig .. end

DBA AST modules


module BinaryOperator: sig .. end
module Condition: sig .. end
module Expr: sig .. end
module LValue: sig .. end
module Tag: sig .. end
module Jump_target: sig .. end
type ('a, 'b) defuse = {
   defs : 'a;
   uses : 'b;
}
module Instruction: sig .. end
module Declarations: sig .. end
module Statement: sig .. end

DBA blocks


module Block: sig .. end
val malloc_id : int Pervasives.ref
val get_endianness : unit -> Dba.endianness
val set_endianness : Dba.endianness -> unit
type 'a dbainstrmap = (Dba.instruction * 'a option) Caddress.Map.t 
type read_perm = 
| Read of bool
type write_perm = 
| Write of bool
type exec_perm = 
| Exec of bool
type permissions = Dba.cond * (read_perm * write_perm * exec_perm) 
type 'a program = {
   start_address : Dba.address;
   declarations : Declarations.t;
   permissions : permissions list Region.Map.t *
Dba.cond Rights.t
;
   initializations : Dba.instruction list;
   instructions : 'a dbainstrmap;
}