Changeset 81 for trunk/include/k/kLdr.h


Ignore:
Timestamp:
Aug 19, 2016, 12:10:38 AM (9 years ago)
Author:
bird
Message:

kLdr: some refactoring and fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/k/kLdr.h

    r58 r81  
    637637int     kLdrModMap(PKLDRMOD pMod);
    638638int     kLdrModUnmap(PKLDRMOD pMod);
    639 int     kLdrModAllocTLS(PKLDRMOD pMod);
    640 void    kLdrModFreeTLS(PKLDRMOD pMod);
    641639int     kLdrModReload(PKLDRMOD pMod);
    642640int     kLdrModFixupMapping(PKLDRMOD pMod, PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser);
    643 int     kLdrModCallInit(PKLDRMOD pMod, KUPTR uHandle);
    644 int     kLdrModCallTerm(PKLDRMOD pMod, KUPTR uHandle);
    645 int     kLdrModCallThread(PKLDRMOD pMod, KUPTR uHandle, unsigned fAttachingOrDetaching);
    646641/** @} */
    647642
     
    652647int     kLdrModRelocateBits(PKLDRMOD pMod, void *pvBits, KLDRADDR NewBaseAddress, KLDRADDR OldBaseAddress,
    653648                            PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser);
     649/** @} */
     650
     651/** @name Operations on both internally and externally managed mappings.
     652 * @{ */
     653/** Special pvMapping value to pass to kLdrModAllocTLS,
     654 * kLdrModFreeTLS, kLdrModCallInit, kLdrModCallTerm, and kLdrModCallThread that
     655 * specifies the internal mapping (kLdrModMap). */
     656#define KLDRMOD_INT_MAP    ((void *)~(KUPTR)0)
     657int     kLdrModAllocTLS(PKLDRMOD pMod, void *pvMapping);
     658void    kLdrModFreeTLS(PKLDRMOD pMod, void *pvMapping);
     659int     kLdrModCallInit(PKLDRMOD pMod, void *pvMapping, KUPTR uHandle);
     660int     kLdrModCallTerm(PKLDRMOD pMod, void *pvMapping, KUPTR uHandle);
     661int     kLdrModCallThread(PKLDRMOD pMod, void *pvMapping, KUPTR uHandle, unsigned fAttachingOrDetaching);
    654662/** @} */
    655663
     
    726734    int (* pfnUnmap)(PKLDRMOD pMod);
    727735    /** @copydoc kLdrModAllocTLS */
    728     int (* pfnAllocTLS)(PKLDRMOD pMod);
     736    int (* pfnAllocTLS)(PKLDRMOD pMod, void *pvMapping);
    729737    /** @copydoc kLdrModFreeTLS */
    730     void (*pfnFreeTLS)(PKLDRMOD pMod);
     738    void (*pfnFreeTLS)(PKLDRMOD pMod, void *pvMapping);
    731739    /** @copydoc kLdrModReload */
    732740    int (* pfnReload)(PKLDRMOD pMod);
     
    734742    int (* pfnFixupMapping)(PKLDRMOD pMod, PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser);
    735743    /** @copydoc kLdrModCallInit */
    736     int (* pfnCallInit)(PKLDRMOD pMod, KUPTR uHandle);
     744    int (* pfnCallInit)(PKLDRMOD pMod, void *pvMapping, KUPTR uHandle);
    737745    /** @copydoc kLdrModCallTerm */
    738     int (* pfnCallTerm)(PKLDRMOD pMod, KUPTR uHandle);
     746    int (* pfnCallTerm)(PKLDRMOD pMod, void *pvMapping, KUPTR uHandle);
    739747    /** @copydoc kLdrModCallThread */
    740     int (* pfnCallThread)(PKLDRMOD pMod, KUPTR uHandle, unsigned fAttachingOrDetaching);
     748    int (* pfnCallThread)(PKLDRMOD pMod, void *pvMapping, KUPTR uHandle, unsigned fAttachingOrDetaching);
    741749    /** @copydoc kLdrModSize */
    742750    KLDRADDR (* pfnSize)(PKLDRMOD pMod);
Note: See TracChangeset for help on using the changeset viewer.