Changeset 2877


Ignore:
Timestamp:
Nov 12, 2006, 1:39:49 PM (19 years ago)
Author:
bird
Message:

Module interpreter for modules loaded by the native loader. (untested)

Location:
trunk/kLdr
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/Makefile.kmk

    r2875 r2877  
    111111        kLdrMod.c \
    112112        kLdrModLX.c \
    113         kLdrModPE.c
     113        kLdrModPE.c \
     114        kLdrModNative.c
    114115kLdr_SOURCES.os2 = \
    115116        kLdr-os2.def \
  • trunk/kLdr/kLdr-win.def

    r2874 r2877  
    4949    kLdrModOpenFromRdr
    5050    kLdrModOpenNative
     51    kLdrModOpenNativeByHandle
    5152    kLdrModClose
    5253    kLdrModQuerySymbol
  • trunk/kLdr/kLdr.h

    r2875 r2877  
    675675int     kLdrModOpenFromRdr(PKLDRRDR pRdr, PPKLDRMOD ppMod);
    676676int     kLdrModOpenNative(const char *pszFilename, PPKLDRMOD ppMod);
     677int     kLdrModOpenNativeByHandle(uintptr_t uHandle, PPKLDRMOD ppMod);
    677678int     kLdrModClose(PKLDRMOD pMod);
    678679
  • trunk/kLdr/kLdrInternal.h

    r2875 r2877  
    415415 * @{ */
    416416extern KLDRMODOPS       g_kLdrModPEOps;
     417extern KLDRMODOPS       g_kLdrModNativeOps;
    417418/** @} */
    418419
  • trunk/kLdr/kLdrMod.c

    r2859 r2877  
    208208
    209209/**
    210  * Open a executable image using the native loader (if any).
    211  *
    212  * @returns 0 on success and *ppMod pointing to a module instance.
    213  *          On failure, a non-zero OS specific error code is returned.
    214  * @param   pszFilename     The filename to open.
    215  * @param   ppMod           Where to store the module handle.
    216  */
    217 int kLdrModOpenNative(const char *pszFilename, PPKLDRMOD ppMod)
    218 {
    219 #ifdef __OS2__
    220 
    221     //DosLoadModule()
    222 #elif defined(__WIN__)
    223 
    224 #else
    225 # error "Port me"
    226 #endif
    227     return -1;
    228 }
    229 
    230 
    231 
    232 /**
    233210 * Closes an open module.
    234211 *
  • trunk/kLdr/kLdrModPE.c

    r2869 r2877  
    4040/** @def KLDRMODPE_STRICT
    4141 * Define KLDRMODPE_STRICT to enabled strict checks in KLDRMODPE. */
    42 #define KLDRMOD_STRICT 1
     42#define KLDRMODPE_STRICT 1
    4343
    4444/** @def KLDRMODPE_ASSERT
     
    523523    PKLDRMODPE pModPE = (PKLDRMODPE)pMod->pvData;
    524524    int rc = 0;
    525     KLDRMODPE_ASSERT(pModPE->fMapped);
     525    KLDRMODPE_ASSERT(pModPE->pvMapping);
    526526
    527527    if (pMod->pRdr)
     
    741741            {
    742742#ifdef KLDRMODPE_STRICT /* Make sure the linker and we both did our job right. */
    743                 for (i = 0; i < pExpDir->NumberOfNames; i++)
     743                for (i = 0; i < (int32_t)pExpDir->NumberOfNames; i++)
    744744
    745745                {
Note: See TracChangeset for help on using the changeset viewer.