Changeset 2899


Ignore:
Timestamp:
Dec 24, 2006, 4:20:40 AM (19 years ago)
Author:
bird
Message:

Made it build (version + name length).

Location:
trunk/kLdr
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/Makefile.kmk

    r2886 r2899  
    5858  TEMPLATE_TST_LIBS = gcc
    5959 endif
    60  TEMPLATE_TST_CFLAGS = -Wall -pedantic -g
     60 TEMPLATE_TST_CFLAGS = -Wall -pedantic -g -std=gnu99
    6161 TEMPLATE_TST_CFLAGS.release = -O2
    6262 TEMPLATE_TST_LDFLAGS =
  • trunk/kLdr/kLdrHlp-gcc.c

    r2883 r2899  
    179179}
    180180
     181
     182int strncmp(const char *psz1, const char *psz2, size_t cch)
     183{
     184    while (cch-- > 0)
     185    {
     186        const char ch1 = *psz1++;
     187        const char ch2 = *psz2++;
     188        if (ch1 != ch2)
     189            return (int)ch1 - (int)ch2;
     190        if (!ch1)
     191            break;
     192    }
     193    return 0;
     194}
     195
    181196char *strchr(const char *psz, int ch)
    182197{
  • trunk/kLdr/kLdrModPE.c

    r2893 r2899  
    107107
    108108static int  kldrModPEDoCreate(PKLDRRDR pRdr, off_t offNewHdr, PKLDRMODPE *ppMod);
    109 static void kldrModPEDoLoadConfigConversion(PIMAGE_LOAD_CONFIG_DIRECTORY64 pLoadCfg);
     109/*static void kldrModPEDoLoadConfigConversion(PIMAGE_LOAD_CONFIG_DIRECTORY64 pLoadCfg); */
    110110static int  kLdrModPEDoOptionalHeaderValidation(PKLDRMODPE pModPE);
    111111static int  kLdrModPEDoSectionHeadersValidation(PKLDRMODPE pModPE);
     
    457457
    458458
     459#if 0
    459460/**
    460461 * Converts a 32-bit load config directory to a 64 bit one.
     
    487488    /* the remainder matches. */
    488489}
     490#endif
    489491
    490492
  • trunk/kLdr/tstkLdrMod.c

    r2890 r2899  
    7070
    7171/** Dummy import resolver callback. */
    72 static int BasicTestsGetImport(PKLDRMOD pMod, uint32_t iImport, uint32_t iSymbol, const char *pszSymbol,
    73                                PKLDRADDR puValue, uint32_t *pfKind, void *pvUser)
     72static int BasicTestsGetImport(PKLDRMOD pMod, uint32_t iImport, uint32_t iSymbol, const char *pchSymbol, size_t cchSymbol,
     73                               const char *pszVersion, PKLDRADDR puValue, uint32_t *pfKind, void *pvUser)
    7474{
    7575    *puValue = 0xdeadface;
     
    197197 * Dump symbols and check that we can query each of them recursivly.
    198198 */
    199 static int BasicTestsEnumSymCallback(PKLDRMOD pMod, uint32_t iSymbol, const char *pszSymbol,
    200                                      KLDRADDR uValue, uint32_t fKind, void *pvUser)
     199static int BasicTestsEnumSymCallback(PKLDRMOD pMod, uint32_t iSymbol, const char *pchSymbol, size_t cchSymbol,
     200                                     const char *pszVersion, KLDRADDR uValue, uint32_t fKind, void *pvUser)
    201201{
    202202    KLDRADDR    uValue2;
     
    206206    /* dump */
    207207    printf("#0x%08x: %016" PRI_KLDRADDR " %#08x", iSymbol, uValue, fKind);
    208     if (pszSymbol)
    209         printf(" %s", pszSymbol);
     208    if (pchSymbol)
     209        printf(" %.*s", cchSymbol, pchSymbol);
    210210    printf("\n");
    211211
     
    213213    if (iSymbol != NIL_KLDRMOD_SYM_ORDINAL)
    214214    {
    215         rc = kLdrModQuerySymbol(pMod, pvUser, MY_BASEADDRESS, iSymbol, NULL, NULL, NULL,
     215        rc = kLdrModQuerySymbol(pMod, pvUser, MY_BASEADDRESS, iSymbol, NULL, 0, NULL, NULL, NULL,
    216216                                &uValue2, &fKind2);
    217217        if (rc)
    218             return Failure("Couldn't find symbol %#x (%s) by ordinal. rc=%d", iSymbol, pszSymbol, rc);
     218            return Failure("Couldn't find symbol %#x (%.*s) by ordinal. rc=%d", iSymbol, cchSymbol, pchSymbol, rc);
    219219        if (uValue != uValue2)
    220             return Failure("Symbol %#x (%s): Value mismatch %016" PRI_KLDRADDR " != %016" PRI_KLDRADDR " (enum!=query/ord)  pvBits=%p",
    221                            iSymbol, pszSymbol, uValue, uValue2, pvUser);
     220            return Failure("Symbol %#x (%.*s): Value mismatch %016" PRI_KLDRADDR " != %016" PRI_KLDRADDR " (enum!=query/ord)  pvBits=%p",
     221                           iSymbol, cchSymbol, pchSymbol, uValue, uValue2, pvUser);
    222222        if (fKind != fKind2)
    223             return Failure("Symbol %#x (%s): Kind mismatch %#x != %#x (enum!=query/ord) pvBits=%p",
    224                            iSymbol, pszSymbol, fKind, fKind2, pvUser);
     223            return Failure("Symbol %#x (%.*s): Kind mismatch %#x != %#x (enum!=query/ord) pvBits=%p",
     224                           iSymbol, cchSymbol, pchSymbol, fKind, fKind2, pvUser);
    225225    }
    226226
    227227    /* query by name. */
    228     if (pszSymbol)
    229     {
    230         rc = kLdrModQuerySymbol(pMod, pvUser, MY_BASEADDRESS, NIL_KLDRMOD_SYM_ORDINAL, pszSymbol, NULL, NULL,
    231                                 &uValue2, &fKind2);
     228    if (pchSymbol)
     229    {
     230        rc = kLdrModQuerySymbol(pMod, pvUser, MY_BASEADDRESS, NIL_KLDRMOD_SYM_ORDINAL, pchSymbol, cchSymbol, pszVersion,
     231                                NULL, NULL, &uValue2, &fKind2);
    232232        if (rc)
    233             return Failure("Couldn't find symbol %#x (%s) by name. rc=%d", iSymbol, pszSymbol, rc);
     233            return Failure("Couldn't find symbol %#x (%.*s) by name. rc=%d", iSymbol, cchSymbol, pchSymbol, rc);
    234234        if (uValue != uValue2)
    235             return Failure("Symbol %#x (%s): Value mismatch %016" PRI_KLDRADDR " != %016" PRI_KLDRADDR " (enum!=query/name) pvBits=%p",
    236                            iSymbol, pszSymbol, uValue, uValue2, pvUser);
     235            return Failure("Symbol %#x (%.*s): Value mismatch %016" PRI_KLDRADDR " != %016" PRI_KLDRADDR " (enum!=query/name) pvBits=%p",
     236                           iSymbol, cchSymbol, pchSymbol, uValue, uValue2, pvUser);
    237237        if (fKind != fKind2)
    238             return Failure("Symbol %#x (%s): Kind mismatch %#x != %#x (enum!=query/name) pvBits=%p",
    239                            iSymbol, pszSymbol, fKind, fKind2, pvUser);
     238            return Failure("Symbol %#x (%.*s): Kind mismatch %#x != %#x (enum!=query/name) pvBits=%p",
     239                           iSymbol, cchSymbol, pchSymbol, fKind, fKind2, pvUser);
    240240    }
    241241
     
    353353    fKind = 0xdeadf00d;
    354354    Value = 0x0badc0de;
    355     rc = kLdrModQuerySymbol(pMod, pvBits, MY_BASEADDRESS, NIL_KLDRMOD_SYM_ORDINAL - 20, NULL, NULL, NULL,
     355    rc = kLdrModQuerySymbol(pMod, pvBits, MY_BASEADDRESS, NIL_KLDRMOD_SYM_ORDINAL - 20, NULL, 0, NULL, NULL, NULL,
    356356                            &Value, &fKind);
    357357    if (rc)
     
    365365    fKind = 0xdeadf00d;
    366366    Value = 0x0badc0de;
    367     rc = kLdrModQuerySymbol(pMod, pvBits, MY_BASEADDRESS, NIL_KLDRMOD_SYM_ORDINAL, NULL, NULL, NULL,
     367    rc = kLdrModQuerySymbol(pMod, pvBits, MY_BASEADDRESS, NIL_KLDRMOD_SYM_ORDINAL, NULL, 0, NULL, NULL, NULL,
    368368                            &Value, &fKind);
    369369    if (!rc)
     
    404404     * Check/dump the module structure.
    405405     */
    406     printf("pMod=%p u32Magic=%#x cSegments=%d\n", pMod, pMod->u32Magic, pMod->cSegments);
     406    printf("pMod=%p u32Magic=%#x cSegments=%d\n", (void *)pMod, pMod->u32Magic, pMod->cSegments);
    407407    printf("enmType=%d enmFmt=%d enmArch=%d enmCpu=%d enmEndian=%d\n",
    408408           pMod->enmType, pMod->enmFmt, pMod->enmArch, pMod->enmCpu, pMod->enmEndian);
     
    436436               pMod->aSegments[i].LinkAddress, pMod->aSegments[i].cb, pMod->aSegments[i].Alignment);
    437437        printf("        RVA: %016" PRI_KLDRADDR " cbMapped: %016" PRI_KLDRSIZE " MapAddress=%p\n",
    438                pMod->aSegments[i].RVA, (KLDRSIZE)pMod->aSegments[i].cbMapped, pMod->aSegments[i].MapAddress);
     438               pMod->aSegments[i].RVA, (KLDRSIZE)pMod->aSegments[i].cbMapped, (void *)pMod->aSegments[i].MapAddress);
    439439        printf("    offFile: %016" PRI_KLDRADDR "   cbFile: %016" PRI_KLDRSIZE "\n",
    440440               (KLDRADDR)pMod->aSegments[i].offFile, (KLDRSIZE)pMod->aSegments[i].cbFile);
Note: See TracChangeset for help on using the changeset viewer.