Pin
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Typedefs | Enumerations | Functions | Variables
ext.cpp File Reference
#include "level_base.H"
#include "level_core.H"
#include "container.H"

Typedefs

typedef EXT * LEVEL_CORE::EXTLIST
 

Enumerations

enum  EXT_ATTR_MODE {
  EXT_ATTR_MODE_INVALID,
  LEVEL_CORE::EXT_ATTR_MODE_SINGLE,
  LEVEL_CORE::EXT_ATTR_MODE_MULTIPLE
}
 

Functions

ARRAYBASE LEVEL_CORE::ExtArrayBase ("ext pool", 32 *1024)
 
STRIPE< EXT_STRUCT_BASE > LEVEL_CORE::ExtStripeBase ("ext stripe base","core",&ExtArrayBase)
 
EXT LEVEL_CORE::EXT_INVALID ()
 
BOOL LEVEL_CORE::EXT_valid (EXT x)
 
UINT32 LEVEL_CORE::EXT_number (EXT x)
 
UINT32 LEVEL_CORE::EXT_tag (EXT x)
 
EXT LEVEL_CORE::EXT_next (EXT n)
 
VOID LEVEL_CORE::EXT_next_set (EXT n, EXT v)
 
BOOL LEVEL_CORE::EXT_has_attribute (EXT n, const ATTRIBUTE *attr)
 
BOOL LEVEL_CORE::EXT_is_crosslink (EXT n)
 
BOOL LEVEL_CORE::EXT_is_hidden (EXT n)
 
VAL * LEVEL_CORE::EXT_value_val (EXT x)
 
VAL_TYPE LEVEL_CORE::EXT_value_type (EXT x)
 
SYM LEVEL_CORE::EXT_value_sym (EXT x)
 
CHUNK LEVEL_CORE::EXT_value_chunk (EXT x)
 
string * LEVEL_CORE::EXT_value_string (EXT x)
 
VOID LEVEL_CORE::EXT_value_string_set (EXT x, string *v)
 
REL LEVEL_CORE::EXT_value_rel (EXT x)
 
INT32 LEVEL_CORE::EXT_value_int32 (EXT x)
 
VOID LEVEL_CORE::EXT_value_int32_set (EXT x, INT32 v)
 
INS LEVEL_CORE::EXT_value_ins (EXT x)
 
BBL LEVEL_CORE::EXT_value_bbl (EXT x)
 
VOID LEVEL_CORE::EXT_value_bbl_set (EXT x, BBL v)
 
EDG LEVEL_CORE::EXT_value_edg (EXT x)
 
GOT LEVEL_CORE::EXT_value_got (EXT x)
 
FLT64 LEVEL_CORE::EXT_value_flt64 (EXT x)
 
VOID LEVEL_CORE::EXT_value_flt64_set (EXT x, FLT64 v)
 
UINT64 LEVEL_CORE::EXT_value_uint64 (EXT x)
 
VOID LEVEL_CORE::EXT_value_uint64_set (EXT x, UINT64 v)
 
UINT32 LEVEL_CORE::EXT_value_uint32 (EXT x)
 
VOID LEVEL_CORE::EXT_value_uint32_set (EXT x, UINT32 v)
 
REG LEVEL_CORE::EXT_value_reguse_reg (EXT x)
 
UINT32 LEVEL_CORE::EXT_value_reguse_use (EXT x)
 
VOID LEVEL_CORE::EXT_value_reguse_set (EXT x, REG r, UINT32 u)
 
REG LEVEL_CORE::EXT_value_regint32_reg (EXT x)
 
UINT32 LEVEL_CORE::EXT_value_regint32_int (EXT x)
 
VOID LEVEL_CORE::EXT_value_regint32_set (EXT x, REG r, INT32 u)
 
REG LEVEL_CORE::EXT_value_versioncase_reg (EXT x)
 
INT32 LEVEL_CORE::EXT_value_versioncase_casev (EXT x)
 
ADDRINT LEVEL_CORE::EXT_value_versioncase_version (EXT x)
 
VOID LEVEL_CORE::EXT_value_versioncase_set (EXT x, REG reg, INT32 casev, ADDRINT version)
 
IADDR LEVEL_CORE::EXT_value_iaddrint32_iaddr (EXT x)
 
INT32 LEVEL_CORE::EXT_value_iaddrint32_int32 (EXT x)
 
VOID LEVEL_CORE::EXT_value_iaddrint32_set (EXT x, IADDR ia, INT32 u)
 
REG LEVEL_CORE::EXT_value_regallochint_vreg (EXT x)
 
REG LEVEL_CORE::EXT_value_regallochint_preg (EXT x)
 
REGALLOC_HINT_TYPE LEVEL_CORE::EXT_value_regallochint_hint (EXT x)
 
VOID LEVEL_CORE::EXT_value_regallochint_set (EXT x, REG vr, REG pr, REGALLOC_HINT_TYPE h)
 
const SACT & LEVEL_CORE::EXT_value_sact (EXT x)
 
VOID LEVEL_CORE::EXT_value_sact_set (EXT x, SACT v)
 
IADDR LEVEL_CORE::EXT_value_iaddr (EXT x)
 
VOID LEVEL_CORE::EXT_value_iaddr_set (EXT x, IADDR v)
 
const VOID * LEVEL_CORE::EXT_value_const_ptr (EXT x)
 
VOID LEVEL_CORE::EXT_value_const_ptr_set (EXT x, const VOID *v)
 
VOID * LEVEL_CORE::EXT_value_ptr (EXT x)
 
VOID LEVEL_CORE::EXT_value_ptr_set (EXT x, VOID *v)
 
AFUNPTR LEVEL_CORE::EXT_value_afunptr (EXT x)
 
VOID LEVEL_CORE::EXT_value_afunptr_set (EXT x, AFUNPTR v)
 
BOOL LEVEL_CORE::EXT_linked (EXT n)
 
VOID LEVEL_CORE::EXT_linked_set (EXT n, BOOL v)
 
BOOL LEVEL_CORE::EXT_persistent (EXT x)
 
VOID LEVEL_CORE::EXT_persistent_set (EXT x)
 
VOID LEVEL_CORE::EXT_persistent_clear (EXT x)
 
LOCALINLINE BOOL LEVEL_CORE::EXT_allocated (EXT n)
 
LOCALINLINE VOID LEVEL_CORE::EXT_allocated_set (EXT n, BOOL v)
 
LOCALINLINE VOID LEVEL_CORE::INS_ext_set (INS n, EXT ext)
 
LOCALINLINE VOID LEVEL_CORE::BBL_ext_set (BBL n, EXT ext)
 
LOCALINLINE VOID LEVEL_CORE::EDG_ext_set (EDG n, EXT ext)
 
LOCALINLINE VOID LEVEL_CORE::RTN_ext_set (RTN n, EXT ext)
 
LOCALINLINE VOID LEVEL_CORE::CHUNK_ext_set (CHUNK n, EXT ext)
 
LOCALINLINE VOID LEVEL_CORE::EXT_number_set (EXT x, UINT32 v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_tag_set (EXT x, UINT32 v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_edg_set (EXT x, EDG v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_ins_set (EXT x, INS v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_sym_set (EXT x, SYM v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_opd_set (EXT x, int v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_chunk_set (EXT x, CHUNK v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_pltoff_set (EXT x, int v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_rel_set (EXT x, REL v)
 
LOCALINLINE VOID LEVEL_CORE::EXT_value_got_set (EXT x, GOT v)
 
LOCALINLINE INT32 LEVEL_CORE::EXT_no (EXT x)
 
VOID LEVEL_CORE::EXT_GarbageCollect ()
 
EXT LEVEL_CORE::EXT_Alloc ()
 
VOID LEVEL_CORE::EXT_Free (EXT ext)
 
VOID LEVEL_CORE::EXT_Copy (EXT ext, EXT clone)
 
EXT LEVEL_CORE::EXT_Clone (EXT ext)
 
EXT LEVEL_CORE::EXTLIST_ext (EXTLIST x)
 
VOID LEVEL_CORE::EXTLIST_ext_set (EXTLIST x, EXT y)
 
VOID LEVEL_CORE::EXTLIST_ExtPrepend (EXT ext, EXTLIST &parent)
 
VOID LEVEL_CORE::EXTLIST_ExtInsertAfter (EXT ext, EXT after, EXTLIST &parent)
 
VOID LEVEL_CORE::EXT_ExtlistUnlink (EXT ext, EXTLIST parent)
 
VOID LEVEL_CORE::EXTLIST_MoveInsExtRev (INS src, EXTLIST dst, const ATTRIBUTE *attr)
 
VOID LEVEL_CORE::INS_ExtInsertAfter (EXT ext, EXT after, INS parent)
 
VOID LEVEL_CORE::INS_ExtPrepend (EXT ext, INS parent)
 
VOID LEVEL_CORE::INS_ExtTransfer (INS src, INS dst)
 
UINT32 LEVEL_CORE::INS_NumExt (INS parent)
 
VOID LEVEL_CORE::EXT_InsUnlink (EXT ext, INS parent)
 
VOID LEVEL_CORE::BBL_ExtInsertAfter (EXT ext, EXT after, BBL parent)
 
VOID LEVEL_CORE::BBL_ExtPrepend (EXT ext, BBL parent)
 
VOID LEVEL_CORE::BBL_ExtAppend (EXT ext, BBL parent)
 
UINT32 LEVEL_CORE::BBL_NumExt (BBL parent)
 
VOID LEVEL_CORE::EXT_BblUnlink (EXT ext, BBL parent)
 
VOID LEVEL_CORE::EDG_ExtInsertAfter (EXT ext, EXT after, EDG parent)
 
VOID LEVEL_CORE::EDG_ExtPrepend (EXT ext, EDG parent)
 
UINT32 LEVEL_CORE::EDG_NumExt (EDG parent)
 
VOID LEVEL_CORE::EXT_EdgUnlink (EXT ext, EDG parent)
 
VOID LEVEL_CORE::RTN_ExtInsertAfter (EXT ext, EXT after, RTN parent)
 
VOID LEVEL_CORE::RTN_ExtPrepend (EXT ext, RTN parent)
 
UINT32 LEVEL_CORE::RTN_NumExt (RTN parent)
 
VOID LEVEL_CORE::EXT_RtnUnlink (EXT ext, RTN parent)
 
VOID LEVEL_CORE::CHUNK_ExtInsertAfter (EXT ext, EXT after, CHUNK parent)
 
VOID LEVEL_CORE::CHUNK_ExtPrepend (EXT ext, CHUNK parent)
 
UINT32 LEVEL_CORE::CHUNK_NumExt (CHUNK parent)
 
VOID LEVEL_CORE::EXT_ChunkUnlink (EXT ext, CHUNK parent)
 
EXT LEVEL_CORE::EXT_AllocAndLinkChunkGot (CHUNK chunk, const ATTRIBUTE *attribute, UINT32 number, GOT got)
 
EXT LEVEL_CORE::EXT_AllocAndLinkChunkSym (CHUNK chunk, const ATTRIBUTE *attribute, UINT32 number, SYM sym)
 
EXT LEVEL_CORE::EXT_AllocAndLinkChunkRel (CHUNK chunk, const ATTRIBUTE *attribute, UINT32 number, REL rel)
 
EXT LEVEL_CORE::EXT_AllocInsNone (const ATTRIBUTE *attribute, UINT32 number)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsNone (INS ins, const ATTRIBUTE *attribute, UINT32 number)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsUint32 (INS ins, const ATTRIBUTE *attribute, UINT32 number, UINT32 value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsInt32 (INS ins, const ATTRIBUTE *attribute, UINT32 number, INT32 value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsString (INS ins, const ATTRIBUTE *attribute, UINT32 number, string *value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsFlt64 (INS ins, const ATTRIBUTE *attribute, UINT32 number, FLT64 value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsReguse (INS ins, const ATTRIBUTE *attribute, UINT32 number, REG reg, UINT32 use)
 
EXT LEVEL_CORE::EXT_AllocRegInt32 (const ATTRIBUTE *attribute, UINT32 number, REG reg, INT32 use)
 
EXT LEVEL_CORE::EXT_AllocVersionCase (const ATTRIBUTE *attribute, UINT32 number, REG reg, INT32 casev, ADDRINT version)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsRegInt32 (INS ins, const ATTRIBUTE *attribute, UINT32 number, REG reg, INT32 use)
 
EXT LEVEL_CORE::EXT_AllocIaddrInt32 (const ATTRIBUTE *attribute, UINT32 number, IADDR iaddr, INT32 val)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsRegallochint (INS ins, const ATTRIBUTE *attribute, UINT32 number, REG vreg, REG preg, REGALLOC_HINT_TYPE hint)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblRegallochint (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, REG vreg, REG preg, REGALLOC_HINT_TYPE hint)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsRel (INS ins, const ATTRIBUTE *attribute, UINT32 number, REL rel)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblBbl (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, BBL value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblInt32 (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, INT32 value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblUint32 (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, UINT32 value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblIns (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, INS value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblGot (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, GOT got)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblNone (BBL bbl, const ATTRIBUTE *attribute, UINT32 number)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblOpd (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, UINT32 index)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblPltoff (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, UINT32 index)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblFlt64 (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, FLT64 value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblRel (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, REL rel)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblSym (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, SYM sym)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblChunk (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, CHUNK chunk)
 
EXT LEVEL_CORE::EXT_AllocAndLinkRtnSym (RTN rtn, const ATTRIBUTE *attribute, UINT32 number, SYM sym)
 
EXT LEVEL_CORE::EXT_AllocAndLinkRtnInt32 (RTN rtn, const ATTRIBUTE *attribute, UINT32 number, int value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkRtnBbl (RTN rtn, const ATTRIBUTE *attribute, UINT32 number, BBL value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkEdgEdg (EDG edg, const ATTRIBUTE *attribute, UINT32 number, EDG value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkEdgFlt64 (EDG edg, const ATTRIBUTE *attribute, UINT32 number, FLT64 value)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblSact (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, SACT act)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsSact (INS ins, const ATTRIBUTE *attribute, UINT32 number, SACT act)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsConstPtr (INS ins, const ATTRIBUTE *attribute, UINT32 number, const VOID *ptr)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsPtr (INS ins, const ATTRIBUTE *attribute, UINT32 number, VOID *ptr)
 
EXT LEVEL_CORE::EXT_AllocAndLinkBblConstPtr (BBL bbl, const ATTRIBUTE *attribute, UINT32 number, const VOID *ptr)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsIaddr (INS ins, const ATTRIBUTE *attribute, UINT32 number, IADDR iaddr)
 
EXT LEVEL_CORE::EXT_AllocAndLinkInsAfunptr (INS ins, const ATTRIBUTE *attribute, UINT32 number, AFUNPTR fptr)
 
LOCALFUN EXT LEVEL_CORE::ext_FindExt (EXT ext, UINT16 tag)
 
EXT LEVEL_CORE::EXT_FindFirst (EXT ext, const ATTRIBUTE *attribute)
 
EXT LEVEL_CORE::EXT_FindNext (EXT ext)
 
string LEVEL_CORE::EXT_StringShort (EXT ext, BOOL tiny)
 
string LEVEL_CORE::EXT_ListString (EXT ext)
 
VOID LEVEL_CORE::EXT_Check (EXT ext)
 
VOID LEVEL_CORE::EXT_CheckFree ()
 
const ATTRIBUTE LEVEL_CORE::ATTR_ins_delete ("ins_delete","inst","ins_delete", EXT_ATTR_MODE_SINGLE, VAL_TYPE_NONE, FALSE, FALSE,"Delete instruction")
 

Variables

GLOBALCONST BOOL LEVEL_CORE::B_HIDDEN = 1
 
GLOBALCONST BOOL LEVEL_CORE::B_CROSSLINK = 1
 

Detailed Description

This module contains all the EXT extension/attribute management fuctions.