Ignore:
Timestamp:
Dec 22, 2006, 7:01:38 PM (19 years ago)
Author:
bird
Message:

made it compile again.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/kLdrModLX.c

    r2890 r2893  
    118118static int kldrModLXDoCreate(PKLDRRDR pRdr, off_t offNewHdr, PKLDRMODLX *ppModLX);
    119119static const uint8_t *kldrModLXDoNameTableLookupByOrdinal(const uint8_t *pbNameTable, int32_t cbNameTable, uint32_t iOrdinal);
    120 static int kldrModLXDoNameLookup(PKLDRMODLX pModLX, const char *pszSymbol, uint32_t *piSymbol);
     120static int kldrModLXDoNameLookup(PKLDRMODLX pModLX, const char *pchSymbol, uint32_t cchSymbol, uint32_t *piSymbol);
    121121#if 0
    122122static const uint8_t *kldrModLXDoNameTableLookupByName(const uint8_t *pbNameTable, int32_t cbNameTable,
     
    542542/** @copydoc kLdrModQuerySymbol */
    543543static int kldrModLXQuerySymbol(PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, uint32_t iSymbol,
    544                                 const char *pszSymbol, PFNKLDRMODGETIMPORT pfnGetForwarder, void *pvUser,
    545                                 PKLDRADDR puValue, uint32_t *pfKind)
     544                                const char *pchSymbol, size_t cchSymbol, const char *pszVersion,
     545                                PFNKLDRMODGETIMPORT pfnGetForwarder, void *pvUser, PKLDRADDR puValue, uint32_t *pfKind)
    546546{
    547547    PKLDRMODLX                  pModLX = (PKLDRMODLX)pMod->pvData;
     
    560560     * Translate the symbol name into an ordinal.
    561561     */
    562     if (pszSymbol)
    563     {
    564         rc = kldrModLXDoNameLookup(pModLX, pszSymbol, &iSymbol);
     562    if (pchSymbol)
     563    {
     564        rc = kldrModLXDoNameLookup(pModLX, pchSymbol, cchSymbol, &iSymbol);
    565565        if (rc)
    566566            return rc;
     
    625625                    /* anyone actually using TYPEINFO will end up here. */
    626626                    KLDRMODLX_ASSERT(!"Bad bundle type");
    627                     break;
     627                    return KLDR_ERR_LX_BAD_BUNDLE;
    628628            }
    629629
     
    664664 * @returns See kLdrModQuerySymbol.
    665665 * @param   pModLX      The module to lookup the symbol in.
    666  * @param   pszSymbol   The symbol to lookup.
     666 * @param   pchSymbol   The symbol to lookup.
     667 * @param   cchSymbol   The symbol name length.
    667668 * @param   piSymbol    Where to store the symbol ordinal.
    668669 */
    669 static int kldrModLXDoNameLookup(PKLDRMODLX pModLX, const char *pszSymbol, uint32_t *piSymbol)
     670static int kldrModLXDoNameLookup(PKLDRMODLX pModLX, const char *pchSymbol, uint32_t cchSymbol, uint32_t *piSymbol)
    670671{
    671672
     
    774775    int rc;
    775776    uint32_t iSymbol;
    776     const char *pszSymbol;
     777    const char *pchSymbol;
     778    uint8_t cchSymbol;
    777779
    778780    if (!pfnGetForwarder)
     
    792794    {
    793795        iSymbol = pEntry->e32_variant.e32_fwd.value;
    794         pszSymbol = NULL;                   /* no symbol name. */
     796        pchSymbol = NULL;                   /* no symbol name. */
     797        cchSymbol = 0;
    795798    }
    796799    else
     
    858861                return KLDR_ERR_LX_BAD_FORWARDER;
    859862
    860             pszSymbol = NULL;               /* no symbol name. */
     863            pchSymbol = NULL;               /* no symbol name. */
     864            cchSymbol = 0;
    861865        }
    862866        else
    863867        {
    864             /* Make a stack copy of the name that's zero terminated. */
    865             char *pszCopy = kLdrHlpAllocA(*pbName + 1);
    866             kLdrHlpMemCopy(pszCopy, pbName + 1, *pbName);
    867             pszCopy[*pbName] = '\0';
    868 
    869             pszSymbol = pszCopy;
     868            pchSymbol = (char *)pbName + 1;
     869            cchSymbol = *pbName;
    870870            iSymbol = NIL_KLDRMOD_SYM_ORDINAL;
    871871        }
     
    875875     * Resolve the forwarder.
    876876     */
    877     rc = pfnGetForwarder(pModLX->pMod, pEntry->e32_variant.e32_fwd.modord - 1, iSymbol, pszSymbol, puValue, pfKind, pvUser);
     877    rc = pfnGetForwarder(pModLX->pMod, pEntry->e32_variant.e32_fwd.modord - 1, iSymbol, pchSymbol, cchSymbol, NULL, puValue, pfKind, pvUser);
    878878    if (!rc && pfKind)
    879879        *pfKind |= KLDRSYMKIND_FORWARDER;
     
    20042004         * Iterate the page map pages.
    20052005         */
    2006         for (iPage = 0; !rc && iPage < pObj->o32_mapsize; iPage++, pbPage += OBJPAGELEN)
     2006        for (iPage = 0, rc = 0; !rc && iPage < pObj->o32_mapsize; iPage++, pbPage += OBJPAGELEN)
    20072007        {
    20082008            const uint8_t * const   pbFixupRecEnd = pModLX->pbFixupRecs + pModLX->paoffPageFixups[iPage + pObj->o32_pagemap];
     
    21152115
    21162116                        /* resolve it. */
    2117                         rc = pfnGetImport(pMod, iModule, iSymbol, NULL, &uValue, &fKind, pvUser);
     2117                        rc = pfnGetImport(pMod, iModule, iSymbol, NULL, 0, NULL, &uValue, &fKind, pvUser);
    21182118                        if (rc)
    21192119                            return rc;
     
    21292129                        uint16_t offSymbol;
    21302130                        const uint8_t *pbSymbol;
    2131                         char szSymbol[260];
    21322131
    21332132                        /* the module ordinal */
     
    21662165
    21672166                        /* resolve it. */
    2168                         kLdrHlpMemCopy(szSymbol, pbSymbol + 1, *pbSymbol);
    2169                         szSymbol[*pbSymbol] = '\0';
    2170                         rc = pfnGetImport(pMod, iModule, NIL_KLDRMOD_SYM_ORDINAL, szSymbol, &uValue, &fKind, pvUser);
     2167                        rc = pfnGetImport(pMod, iModule, NIL_KLDRMOD_SYM_ORDINAL, (const char *)pbSymbol + 1, *pbSymbol, NULL,
     2168                                          &uValue, &fKind, pvUser);
    21712169                        if (rc)
    21722170                            return rc;
     
    22632261    kldrModLXGetStackInfo,
    22642262    kldrModLXQueryMainEntrypoint,
     2263    NULL /* fixme */,
     2264    NULL /* fixme */,
    22652265    kldrModLXEnumDbgInfo,
    22662266    kldrModLXHasDbgInfo,
     
    22772277    kldrModLXGetBits,
    22782278    kldrModLXRelocateBits,
     2279    NULL /* fixme: pfnMostlyDone */,
    22792280    42 /* the end */
    22802281};
Note: See TracChangeset for help on using the changeset viewer.