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

Enumerations

enum  SEGMENT_TYPE {
  SEGMENT_TYPE_INVALID,
  LEVEL_CORE::SEGMENT_TYPE_TEXT,
  LEVEL_CORE::SEGMENT_TYPE_DATA,
  LEVEL_CORE::SEGMENT_TYPE_BSS,
  SEGMENT_TYPE_STACK,
  SEGMENT_TYPE_THREAD,
  SEGMENT_TYPE_COMMENT,
  SEGMENT_TYPE_LAST
}
 
enum  SEC_STATE {
  SEC_STATE_INVALID,
  SEC_STATE_RAW_I,
  SEC_STATE_CHUNKED_I,
  SEC_STATE_DISASSEMBLED,
  SEC_STATE_CHUNKED_O,
  SEC_STATE_COOKED,
  SEC_STATE_RAW_O,
  SEC_STATE_LAST
}
 
enum  LEVEL_CORE::SEC_TYPE {
  SEC_TYPE_INVALID,
  SEC_TYPE_UNUSED,
  LEVEL_CORE::SEC_TYPE_REGREL,
  LEVEL_CORE::SEC_TYPE_DYNREL,
  LEVEL_CORE::SEC_TYPE_EXEC,
  LEVEL_CORE::SEC_TYPE_DATA,
  SEC_TYPE_DYNAMIC,
  SEC_TYPE_OPD,
  SEC_TYPE_GOT,
  SEC_TYPE_STACK,
  SEC_TYPE_PLTOFF,
  SEC_TYPE_HASH,
  LEVEL_CORE::SEC_TYPE_LSDA,
  SEC_TYPE_UNWIND,
  SEC_TYPE_UNWINDINFO,
  SEC_TYPE_REGSYM,
  SEC_TYPE_DYNSYM,
  SEC_TYPE_DEBUG,
  LEVEL_CORE::SEC_TYPE_BSS,
  SEC_TYPE_SYMSTR,
  SEC_TYPE_DYNSTR,
  SEC_TYPE_SECSTR,
  SEC_TYPE_COMMENT,
  LEVEL_CORE::SEC_TYPE_LOOS,
  LEVEL_CORE::SEC_TYPE_USER,
  SEC_TYPE_LAST
}
 

Functions

ARRAYBASE LEVEL_CORE::SecArrayBase ("sec pool", 1024)
 
STRIPE< SEC_STRUCT_BASE > LEVEL_CORE::SecStripeBase ("sec stripe base","core",&SecArrayBase)
 
SEC LEVEL_CORE::SEC_INVALID ()
 
BOOL LEVEL_CORE::SEC_valid (SEC x)
 
INT32 LEVEL_CORE::SEC_no (SEC x)
 
BOOL LEVEL_CORE::SEC_allocated (SEC x)
 
BOOL LEVEL_CORE::SEC_mapped (SEC x)
 
BOOL LEVEL_CORE::SEC_original (SEC x)
 
BOOL LEVEL_CORE::SEC_readonly (SEC x)
 
VOID LEVEL_CORE::SEC_readonly_set (SEC x, BOOL y)
 
BOOL LEVEL_CORE::SEC_rel_processed (SEC x)
 
BOOL LEVEL_CORE::SEC_sparse (SEC x)
 
VOID LEVEL_CORE::SEC_sparse_set (SEC x, BOOL y)
 
BOOL LEVEL_CORE::SEC_on_disk (SEC x)
 
VOID LEVEL_CORE::SEC_on_disk_set (SEC x, BOOL y)
 
BOOL LEVEL_CORE::SEC_cooked (SEC x)
 
VOID LEVEL_CORE::SEC_cooked_set (SEC x, BOOL y)
 
SEC_TYPE LEVEL_CORE::SEC_type (SEC x)
 
VOID LEVEL_CORE::SEC_type_set (SEC x, SEC_TYPE y)
 
SEGMENT_TYPE LEVEL_CORE::SEC_segment (SEC x)
 
VOID LEVEL_CORE::SEC_segment_set (SEC x, SEGMENT_TYPE y)
 
SEC_STATE LEVEL_CORE::SEC_state (SEC x)
 
IMG LEVEL_CORE::SEC_img (SEC x)
 
SYM LEVEL_CORE::SEC_regsym (SEC x)
 
VOID LEVEL_CORE::SEC_regsym_set (SEC x, SYM y)
 
SYM LEVEL_CORE::SEC_dynsym (SEC x)
 
VOID LEVEL_CORE::SEC_dynsym_set (SEC x, SYM y)
 
INS LEVEL_CORE::SEC_first_original_ins (SEC x)
 
VOID LEVEL_CORE::SEC_first_original_ins_set (SEC x, INS y)
 
SEC LEVEL_CORE::SEC_next (SEC x)
 
SEC LEVEL_CORE::SEC_prev (SEC x)
 
RTN LEVEL_CORE::SEC_rtn_head (SEC x)
 
VOID LEVEL_CORE::SEC_rtn_head_set (SEC x, RTN y)
 
RTN LEVEL_CORE::SEC_rtn_tail (SEC x)
 
VOID LEVEL_CORE::SEC_rtn_tail_set (SEC x, RTN y)
 
CHUNK LEVEL_CORE::SEC_chunk_head (SEC x)
 
VOID LEVEL_CORE::SEC_chunk_head_set (SEC x, CHUNK y)
 
CHUNK LEVEL_CORE::SEC_chunk_tail (SEC x)
 
VOID LEVEL_CORE::SEC_chunk_tail_set (SEC x, CHUNK y)
 
const string & LEVEL_CORE::SEC_name (SEC x)
 
UINT32 LEVEL_CORE::SEC_alignment (SEC x)
 
VOID LEVEL_CORE::SEC_alignment_set (SEC x, UINT32 y)
 
const VOID * LEVEL_CORE::SEC_data_i (SEC x)
 
VOID LEVEL_CORE::SEC_data_i_set (SEC x, const VOID *y)
 
VOID * LEVEL_CORE::SEC_data_o (SEC x)
 
USIZE LEVEL_CORE::SEC_foffset_i (SEC x)
 
USIZE LEVEL_CORE::SEC_foffset_o (SEC x)
 
USIZE LEVEL_CORE::SEC_size_o (SEC x)
 
USIZE LEVEL_CORE::SEC_size_i (SEC x)
 
const VOID * LEVEL_CORE::SEC_sectheader_i (SEC x)
 
VOID LEVEL_CORE::SEC_sectheader_i_set (SEC x, const VOID *y)
 
VOID * LEVEL_CORE::SEC_sectheader_o (SEC x)
 
IADDR LEVEL_CORE::SEC_vaddr_i (SEC x)
 
OADDR LEVEL_CORE::SEC_vaddr_o (SEC x)
 
SEC LEVEL_CORE::SEC_sec_dynrel (SEC x)
 
SEC LEVEL_CORE::SEC_sec_regrel (SEC x)
 
UINT32 LEVEL_CORE::SEC_index_i (SEC x)
 
VOID LEVEL_CORE::SEC_name_set (SEC x, const string *y)
 
string LEVEL_CORE::str (SEC sec)
 
string LEVEL_CORE::longstr (SEC sec)
 
VOID LEVEL_CORE::SEC_vaddr_o_set (SEC x, OADDR y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_allocated_set (SEC x, BOOL y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_mapped_set (SEC x, BOOL y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_original_set (SEC x, BOOL y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_size_i_set (SEC x, UINT32 y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_index_i_set (SEC x, UINT32 y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_next_set (SEC x, SEC y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_prev_set (SEC x, SEC y)
 
LOCALINLINE BOOL LEVEL_CORE::SEC_short_data (SEC x)
 
LOCALINLINE VOID LEVEL_CORE::SEC_short_data_set (SEC x, BOOL y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_size_o_set (SEC x, USIZE y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_data_o_set (SEC x, VOID *y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_state_set (SEC x, SEC_STATE y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_img_set (SEC x, IMG y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_foffset_i_set (SEC x, USIZE y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_foffset_o_set (SEC x, USIZE y)
 
LOCALINLINE VOID LEVEL_CORE::SEC_vaddr_i_set (SEC x, IADDR y)
 
VOID LEVEL_CORE::SEC_GarbageCollect ()
 
SEC LEVEL_CORE::SEC_Alloc ()
 
VOID LEVEL_CORE::SEC_Free (SEC sec)
 
VOID LEVEL_CORE::SEC_InsertBefore (SEC sec, SEC before, IMG parent)
 
VOID LEVEL_CORE::SEC_Append (SEC sec, IMG parent)
 
VOID LEVEL_CORE::SEC_InsertAfter (SEC sec, SEC after, IMG parent)
 
VOID LEVEL_CORE::SEC_Prepend (SEC sec, IMG parent)
 
VOID LEVEL_CORE::SEC_Unlink (SEC sec)
 
VOID LEVEL_CORE::SEC_InitOriginalSec (SEC sec, const string &name, UINT32 index, IADDR iaddr, USIZE offset, USIZE size, const VOID *data, UINT32 alignment, BOOL short_data, BOOL mapped, BOOL on_disk, const VOID *sectheader)
 
VOID LEVEL_CORE::SEC_InitDynamicCodeSection (SEC newSec, IADDR iaddr, USIZE size)
 
RTN LEVEL_CORE::SEC_FindRtnByName (SEC sec, const string &name)
 
RTN LEVEL_CORE::SEC_FindRtnByIaddr (SEC sec, IADDR iaddr)
 
CHUNK LEVEL_CORE::SEC_FindChunkByIaddr (SEC sec, IADDR iaddr)
 
BOOL LEVEL_CORE::SEC_ContainsIaddr (SEC sec, IADDR iaddr)
 
BOOL LEVEL_CORE::SEC_ContainsIaddrEndInclusive (SEC sec, IADDR iaddr)
 
BOOL LEVEL_CORE::SEC_ContainsOaddr (SEC sec, OADDR oaddr)
 
BOOL LEVEL_CORE::SEC_ContainsOaddrEndInclusive (SEC sec, OADDR oaddr)
 
LOCALFUN SEC_STATE LEVEL_CORE::FindNextState (SEC_STATE state, const SEC_STATE *list)
 
VOID LEVEL_CORE::SEC_StateSet (SEC sec, SEC_STATE state)
 
UINT64 LEVEL_CORE::SEC_GetUnalignedIDataByOffsetUINT64 (SEC sec, USIZE offset)
 
UINT64 LEVEL_CORE::SEC_GetIDataByOffsetUINT64 (SEC sec, UINT64 offset)
 
UINT64 LEVEL_CORE::SEC_GetIDataUINT64 (SEC sec, IADDR iaddr)
 
INT32 LEVEL_CORE::SEC_GetUnalignedIDataByOffsetINT32 (SEC sec, UINT64 offset)
 
INT32 LEVEL_CORE::SEC_GetIDataByOffsetUINT32 (SEC sec, UINT64 offset)
 
INT32 LEVEL_CORE::SEC_GetIDataINT32 (SEC sec, IADDR iaddr)
 
UINT32 LEVEL_CORE::SEC_NumRtn (SEC sec)
 
BOOL LEVEL_CORE::SEC_IsShortData (SEC sec)
 
string LEVEL_CORE::SEC_String (SEC_TYPE type)
 
string LEVEL_CORE::SEC_String (SEC_STATE state)
 
string LEVEL_CORE::SEGMENT_StringShort (SEGMENT_TYPE segment)
 
string LEVEL_CORE::SEC_StringLong (SEC sec)
 
string LEVEL_CORE::SEC_StringLongWithChunks (SEC sec)
 
string LEVEL_CORE::SEC_StringDataDumpI (SEC sec, UINT32 width)
 
VOID LEVEL_CORE::SEC_SetNewSize (SEC sec, USIZE size)
 
VOID LEVEL_CORE::SEC_SetNewAddressAndOffset (SEC sec, OADDR oaddr, USIZE offset)
 
VOID LEVEL_CORE::SEC_IncNewSize (SEC sec, USIZE size)
 
VOID LEVEL_CORE::SEC_SetNewData (SEC sec, VOID *data)
 
VOID LEVEL_CORE::SEC_SetDataCopy (SEC sec)
 
VOID LEVEL_CORE::SEC_Check (SEC sec)
 

Variables

LOCALVAR const SEC_STATE LEVEL_CORE::SEC_StateMachineExe []
 
LOCALVAR const SEC_STATE LEVEL_CORE::SEC_StateMachineData []
 
LOCALVAR const SEC_STATE LEVEL_CORE::SEC_StateMachineCooked []
 

Detailed Description

This file contains SEC and Mapping primitives