Logo Search packages:      
Sourcecode: virtualbox-ose version File versions

kLdrMod - The executable image intepreter


Classes

struct  KLDRMOD
struct  KLDRMODOPS
struct  KLDRSEG
struct  KLDRSTACKINFO

Operations On The Internally Managed Mapping

int kLdrModAllocTLS (PKLDRMOD pMod)
int kLdrModCallInit (PKLDRMOD pMod, KUPTR uHandle)
int kLdrModCallTerm (PKLDRMOD pMod, KUPTR uHandle)
int kLdrModCallThread (PKLDRMOD pMod, KUPTR uHandle, unsigned fAttachingOrDetaching)
int kLdrModFixupMapping (PKLDRMOD pMod, PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser)
void kLdrModFreeTLS (PKLDRMOD pMod)
int kLdrModMap (PKLDRMOD pMod)
int kLdrModReload (PKLDRMOD pMod)
int kLdrModUnmap (PKLDRMOD pMod)

Operations On The Externally Managed Mappings

int kLdrModGetBits (PKLDRMOD pMod, void *pvBits, KLDRADDR BaseAddress, PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser)
int kLdrModRelocateBits (PKLDRMOD pMod, void *pvBits, KLDRADDR NewBaseAddress, KLDRADDR OldBaseAddress, PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser)
KLDRADDR kLdrModSize (PKLDRMOD pMod)

Language ID

Except for the special IDs defined here, the values are considered format specific for now since it's only used by the PE resources.

#define KLDR_LANG_ID_ANY   ( ~(KU32)1 )
#define KLDR_LANG_ID_CUSTOM_DEFAULT   ( ~(KU32)5 )
#define KLDR_LANG_ID_CUSTOM_UNSPECIFIED   ( ~(KU32)6 )
#define KLDR_LANG_ID_NEUTRAL   ( ~(KU32)2 )
#define KLDR_LANG_ID_SYS_DEFAULT   ( ~(KU32)4 )
#define KLDR_LANG_ID_UI_CUSTOM_DEFAULT   ( ~(KU32)7 )
#define KLDR_LANG_ID_USER_DEFAULT   ( ~(KU32)3 )
#define NIL_KLDR_LANG_ID   ( ~(KU32)0 )

kLdrModEnumSymbols flags.

#define KLDRMOD_ENUM_SYMS_FLAGS_ALL   0x00000001

Segment flags

#define KLDRSEG_FLAG_16BIT   1
#define KLDRSEG_FLAG_OS2_ALIAS16   2
#define KLDRSEG_FLAG_OS2_CONFORM   4
#define KLDRSEG_FLAG_OS2_IOPL   8

Load symbol kind flags.

#define KLDRSYMKIND_16BIT   0x00000001
#define KLDRSYMKIND_32BIT   0x00000002
#define KLDRSYMKIND_64BIT   0x00000003
#define KLDRSYMKIND_BIT_MASK   0x00000003
#define KLDRSYMKIND_CODE   0x00000010
#define KLDRSYMKIND_DATA   0x00000020
#define KLDRSYMKIND_FORWARDER   0x00000200
#define KLDRSYMKIND_MASK   0x00000033
#define KLDRSYMKIND_NO_BIT   0x00000000
#define KLDRSYMKIND_NO_TYPE   0x00000000
#define KLDRSYMKIND_REQ_FLAT   0x00000000
#define KLDRSYMKIND_REQ_SEGMENTED   0x40000000
#define KLDRSYMKIND_REQ_TYPE_MASK   0x40000000
#define KLDRSYMKIND_TYPE_MASK   0x00000030
#define KLDRSYMKIND_WEAK   0x00000100

Defines

#define KLDRMOD_BASEADDRESS_LINK   (~(KLDRADDR)1)
#define KLDRMOD_BASEADDRESS_MAP   (~(KLDRADDR)2)
#define KLDRMOD_MAGIC   0x19640707
#define NIL_KLDRMOD_IMPORT   (~(KU32)0)
#define NIL_KLDRMOD_RSRC_NAME_ID   ( ~(KU32)0 )
#define NIL_KLDRMOD_RSRC_TYPE_ID   ( ~(KU32)0 )
#define NIL_KLDRMOD_SYM_ORDINAL   (~(KU32)0)

Typedefs

typedef int FNKLDRENUMDBG (PKLDRMOD pMod, KU32 iDbgInfo, KLDRDBGINFOTYPE enmType, KI16 iMajorVer, KI16 iMinorVer, KLDRFOFF offFile, KLDRADDR LinkAddress, KLDRSIZE cb, const char *pszExtFile, void *pvUser)
typedef int FNKLDRENUMRSRC (PKLDRMOD pMod, KU32 idType, const char *pszType, KU32 idName, const char *pszName, KU32 idLang, KLDRADDR AddrRsrc, KLDRSIZE cbRsrc, void *pvUser)
typedef int FNKLDRMODENUMSYMS (PKLDRMOD pMod, KU32 iSymbol, const char *pchSymbol, KSIZE cchSymbol, const char *pszVersion, KLDRADDR uValue, KU32 fKind, void *pvUser)
typedef int FNKLDRMODGETIMPORT (PKLDRMOD pMod, KU32 iImport, KU32 iSymbol, const char *pchSymbol, KSIZE cchSymbol, const char *pszVersion, PKLDRADDR puValue, KU32 *pfKind, void *pvUser)
typedef struct KLDRMODOPSPCKLDRMODOPS
typedef const KLDRSTACKINFOPCKLDRSTACKINFO
typedef FNKLDRENUMDBGPFNKLDRENUMDBG
typedef FNKLDRENUMRSRCPFNKLDRENUMRSRC
typedef FNKLDRMODENUMSYMSPFNKLDRMODENUMSYMS
typedef FNKLDRMODGETIMPORTPFNKLDRMODGETIMPORT
typedef KLDRDBGINFOTYPEPKLDRDBGINFOTYPE
typedef struct KLDRMODPKLDRMOD
typedef struct KLDRMODOPSPKLDRMODOPS
typedef KLDRSTACKINFOPKLDRSTACKINFO
typedef struct KLDRMOD ** PPKLDRMOD

Enumerations

enum  KLDRDBGINFOTYPE {
  KLDRDBGINFOTYPE_INVALID = 0, KLDRDBGINFOTYPE_UNKNOWN, KLDRDBGINFOTYPE_STABS, KLDRDBGINFOTYPE_DWARF,
  KLDRDBGINFOTYPE_CODEVIEW, KLDRDBGINFOTYPE_WATCOM, KLDRDBGINFOTYPE_HLL, KLDRDBGINFOTYPE_END,
  KLDRDBGINFOTYPE_32BIT_HACK = 0x7fffffff
}
enum  KLDRENDIAN {
  KLDRENDIAN_INVALID, KLDRENDIAN_LITTLE, KLDRENDIAN_BIG, KLDRENDIAN_NA,
  KLDRENDIAN_END, KLDRENDIAN_32BIT_HACK = 0x7fffffff
}
enum  KLDRFMT {
  KLDRFMT_INVALID = 0, KLDRFMT_NATIVE, KLDRFMT_AOUT, KLDRFMT_ELF,
  KLDRFMT_LX, KLDRFMT_MACHO, KLDRFMT_PE, KLDRFMT_END,
  KLDRFMT_32BIT_HACK = 0x7fffffff
}
enum  KLDRTYPE {
  KLDRTYPE_INVALID = 0, KLDRTYPE_OBJECT, KLDRTYPE_EXECUTABLE_FIXED, KLDRTYPE_EXECUTABLE_RELOCATABLE,
  KLDRTYPE_EXECUTABLE_PIC, KLDRTYPE_SHARED_LIBRARY_FIXED, KLDRTYPE_SHARED_LIBRARY_RELOCATABLE, KLDRTYPE_SHARED_LIBRARY_PIC,
  KLDRTYPE_FORWARDER_DLL, KLDRTYPE_CORE, KLDRTYPE_END, KLDRTYPE_32BIT_HACK = 0x7fffffff
}

Functions

int kLdrModCanExecuteOn (PKLDRMOD pMod, const void *pvBits, KCPUARCH enmArch, KCPU enmCpu)
int kLdrModClose (PKLDRMOD pMod)
int kLdrModEnumDbgInfo (PKLDRMOD pMod, const void *pvBits, PFNKLDRENUMDBG pfnCallback, void *pvUser)
int kLdrModEnumResources (PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, KU32 idType, const char *pszType, KU32 idName, const char *pszName, KU32 idLang, PFNKLDRENUMRSRC pfnCallback, void *pvUser)
int kLdrModEnumSymbols (PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, KU32 fFlags, PFNKLDRMODENUMSYMS pfnCallback, void *pvUser)
int kLdrModGetImport (PKLDRMOD pMod, const void *pvBits, KU32 iImport, char *pszName, KSIZE cchName)
int kLdrModGetStackInfo (PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, PKLDRSTACKINFO pStackInfo)
int kLdrModHasDbgInfo (PKLDRMOD pMod, const void *pvBits)
int kLdrModMostlyDone (PKLDRMOD pMod)
KI32 kLdrModNumberOfImports (PKLDRMOD pMod, const void *pvBits)
int kLdrModOpen (const char *pszFilename, PPKLDRMOD ppMod)
int kLdrModOpenFromRdr (PKRDR pRdr, PPKLDRMOD ppMod)
int kLdrModOpenNative (const char *pszFilename, PPKLDRMOD ppMod)
int kLdrModOpenNativeByHandle (KUPTR uHandle, PPKLDRMOD ppMod)
int kLdrModQueryMainEntrypoint (PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, PKLDRADDR pMainEPAddress)
int kLdrModQueryResource (PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, KU32 idType, const char *pszType, KU32 idName, const char *pszName, KU32 idLang, PKLDRADDR pAddrRsrc, KSIZE *pcbRsrc)
int kLdrModQuerySymbol (PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, KU32 iSymbol, const char *pchSymbol, KSIZE cchSymbol, const char *pszVersion, PFNKLDRMODGETIMPORT pfnGetForwarder, void *pvUser, PKLDRADDR puValue, KU32 *pfKind)


Generated by  Doxygen 1.6.0   Back to index