Ignore:
Timestamp:
Aug 30, 2000, 6:11:33 AM (25 years ago)
Author:
bird
Message:

Corrected more JAVA problems. (now working)
In that case an new function was imported. This wasn't present in SMP Warp 3
kernels, so a not requied, EPT_NOT_REQ, flag was introduced. (But, the
new function turned out to be unneeded.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GRACE/src/win32k/dev32/d32init.c

    r4108 r4117  
    1 /* $Id: d32init.c,v 1.19.4.11 2000-08-28 22:44:21 bird Exp $
     1/* $Id: d32init.c,v 1.19.4.12 2000-08-30 04:11:28 bird Exp $
    22 *
    33 * d32init.c - 32-bits init routines.
     
    7676void            R3TstFixImportTab(void);
    7777#endif
     78PSZ SECCALL     nopSecPathFromSFN(SFN hFile);
    7879
    7980
     
    10541055        if (!_aImportTab[i].fFound)
    10551056        {
    1056             kprintf(("VerifyImportTab32: procedure no.%d was not fFound!\n", i));
    1057             return STATUS_DONE | STERR | ERROR_D32_PROC_NOT_FOUND;
     1057            if (_aImportTab[i].fType & EPT_NOT_REQ)
     1058                continue;
     1059            else
     1060            {
     1061                kprintf(("VerifyImportTab32: procedure no.%d was not fFound!\n", i));
     1062                return STATUS_DONE | STERR | ERROR_D32_PROC_NOT_FOUND;
     1063            }
    10581064        }
    10591065
     
    10761082
    10771083        #ifndef R3TST
    1078         if (_aImportTab[i].ulAddress < 0xffc00000UL)
     1084        if (_aImportTab[i].ulAddress < 0xff400000UL)
    10791085        {
    10801086            kprintf(("VerifyImportTab32: procedure no.%d has an invalid address, %#08x!\n",
     
    10841090        #endif
    10851091
    1086         switch (_aImportTab[i].fType & ~EPT_BIT_MASK)
     1092        switch (_aImportTab[i].fType & ~(EPT_BIT_MASK | EPT_NOT_REQ))
    10871093        {
    10881094            case EPT_PROC:
     
    11351141int importTabInit(void)
    11361142{
    1137     /* This table must be updated with the overloading functions. */
     1143    /* This table must be updated with the overloading functions.
     1144     * It should also hold NOP functions for functions which are of the
     1145     * not required type.
     1146     */
    11381147    static unsigned auFuncs[NBR_OF_KRNLIMPORTS] =
    11391148    {
     
    11781187        0,                              /* 38 */
    11791188        0,                              /* 39 */
    1180         0                               /* 40 */
     1189        0,                              /* 40 */
     1190        (unsigned)nopSecPathFromSFN,    /* 41 */
    11811191    };
    11821192    int i;
     
    11961206        if ((_aImportTab[i].fType & ~EPT_BIT_MASK) == EPT_VARIMPORT)
    11971207            continue;
     1208        /* EPT_NOT_REQ which is not found are set pointing to the nop function provided. */
     1209        if (!_aImportTab[i].fFound && (_aImportTab[i].fType & EPT_NOT_REQ))
     1210        {
     1211            _aImportTab[i].ulAddress = auFuncs[i];
     1212            continue;
     1213        }
    11981214
    11991215        if (EPT32BitEntry(_aImportTab[i]))
     
    12191235    for (i = 0; i < NBR_OF_KRNLIMPORTS; i++)
    12201236    {
    1221         switch (_aImportTab[i].fType)
     1237        switch (_aImportTab[i].fType & ~EPT_NOT_REQ)
    12221238        {
    12231239            /*
     
    14691485        {(unsigned)&fakeptda_module,        4},
    14701486        {(unsigned)&fakeptda_pBeginLIBPATH, 4},
    1471         {(unsigned)&fakeldrpFileNameBuf,    3}
     1487        {(unsigned)&fakeldrpFileNameBuf,    3},
     1488        {(unsigned)&fakeSecPathFromSFN,     3}
    14721489    };
    14731490    int i;
     
    15221539#endif
    15231540
     1541/**
     1542 * Dummy nop function if SecPathFromSFN isn't found.
     1543 */
     1544PSZ SECCALL nopSecPathFromSFN(SFN hFile)
     1545{
     1546    NOREF(hFile);
     1547    return NULL;
     1548}
Note: See TracChangeset for help on using the changeset viewer.