Ignore:
Timestamp:
Sep 2, 2007, 10:55:51 PM (18 years ago)
Author:
bird
Message:

kLdrRdr cleanup.

File:
1 edited

Legend:

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

    r3573 r3578  
    161161typedef const KLDRPU *PCKLDRPU;
    162162
    163 
    164 /** Pointer to a loader segment. */
    165 typedef struct KLDRSEG *PKLDRSEG;
    166 /** Pointer to a loader segment. */
    167 typedef const struct KLDRSEG *PCKLDRSEG;
    168 
    169 /** @} */
    170 
    171 
    172 /** @defgroup grp_kLdrRdr   kLdrRdr - The file provider
    173  * @{ */
    174 
    175 /** Pointer to a file provider instance core. */
    176 typedef struct KLDRRDR *PKLDRRDR;
    177 /** Pointer to a file provider instance core pointer. */
    178 typedef struct KLDRRDR **PPKLDRRDR;
    179 
    180 /**
    181  * File provider instance operations.
    182  */
    183 typedef struct KLDRRDROPS
    184 {
    185     /** The name of this file provider. */
    186     const char *pszName;
    187     /** Pointer to the next file provider. */
    188     const struct KLDRRDROPS *pNext;
    189 
    190     /** Try create a new file provider instance.
    191      *
    192      * @returns 0 on success, OS specific error code on failure.
    193      * @param   ppRdr       Where to store the file provider instance.
    194      * @param   pszFilename The filename to open.
    195      */
    196     int     (* pfnCreate)(  PPKLDRRDR ppRdr, const char *pszFilename);
    197     /** Destroy the file provider instance.
    198      *
    199      * @returns 0 on success, OS specific error code on failure.
    200      *          On failure, the file provider instance will be in an indeterminate state - don't touch it!
    201      * @param   pRdr        The file provider instance.
    202      */
    203     int     (* pfnDestroy)( PKLDRRDR pRdr);
    204     /** @copydoc kLdrRdrRead */
    205     int     (* pfnRead)(    PKLDRRDR pRdr, void *pvBuf, KSIZE cb, KLDRFOFF off);
    206     /** @copydoc kLdrRdrAllMap */
    207     int     (* pfnAllMap)(  PKLDRRDR pRdr, const void **ppvBits);
    208     /** @copydoc kLdrRdrAllUnmap */
    209     int     (* pfnAllUnmap)(PKLDRRDR pRdr, const void *pvBits);
    210     /** @copydoc kLdrRdrSize */
    211     KLDRFOFF (* pfnSize)(    PKLDRRDR pRdr);
    212     /** @copydoc kLdrRdrTell */
    213     KLDRFOFF (* pfnTell)(    PKLDRRDR pRdr);
    214     /** @copydoc kLdrRdrName */
    215     const char * (* pfnName)(PKLDRRDR pRdr);
    216     /** @copydoc kLdrRdrPageSize */
    217     KSIZE   (* pfnPageSize)(PKLDRRDR pRdr);
    218     /** @copydoc kLdrRdrMap */
    219     int     (* pfnMap)(     PKLDRRDR pRdr, void **ppvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fFixed);
    220     /** @copydoc kLdrRdrRefresh */
    221     int     (* pfnRefresh)( PKLDRRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    222     /** @copydoc kLdrRdrProtect */
    223     int     (* pfnProtect)( PKLDRRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fUnprotectOrProtect);
    224     /** @copydoc kLdrRdrUnmap */
    225     int     (* pfnUnmap)(   PKLDRRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    226     /** @copydoc kLdrRdrDone */
    227     void    (* pfnDone)(    PKLDRRDR pRdr);
    228     /** The usual non-zero dummy that makes sure we've initialized all members. */
    229     KU32 u32Dummy;
    230 } KLDRRDROPS;
    231 /** Pointer to file provider operations. */
    232 typedef KLDRRDROPS *PKLDRRDROPS;
    233 /** Pointer to const file provider operations. */
    234 typedef const KLDRRDROPS *PCKLDRRDROPS;
    235 
    236 
    237 /**
    238  * File provider instance core.
    239  */
    240 typedef struct KLDRRDR
    241 {
    242     /** Magic number (KLDRRDR_MAGIC). */
    243     KU32         u32Magic;
    244     /** Pointer to the file provider operations. */
    245     PCKLDRRDROPS pOps;
    246 } KLDRRDR;
    247 
    248 /** The magic for KLDRRDR::u32Magic. (Katsu Aki (Katsuaki Nakamura)) */
    249 #define KLDRRDR_MAGIC   0x19610919
    250 
    251 void    kLdrRdrAddProvider(PKLDRRDROPS pAdd);
    252 
    253 int     kLdrRdrOpen(    PPKLDRRDR ppRdr, const char *pszFilename);
    254 int     kLdrRdrClose(   PKLDRRDR pRdr);
    255 int     kLdrRdrRead(    PKLDRRDR pRdr, void *pvBuf, KSIZE cb, KLDRFOFF off);
    256 int     kLdrRdrAllMap(  PKLDRRDR pRdr, const void **ppvBits);
    257 int     kLdrRdrAllUnmap(PKLDRRDR pRdr, const void *pvBits);
    258 KLDRFOFF kLdrRdrSize(    PKLDRRDR pRdr);
    259 KLDRFOFF kLdrRdrTell(    PKLDRRDR pRdr);
    260 const char *kLdrRdrName(PKLDRRDR pRdr);
    261 KSIZE   kLdrRdrPageSize(PKLDRRDR pRdr);
    262 int     kLdrRdrMap(     PKLDRRDR pRdr, void **ppvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fFixed);
    263 int     kLdrRdrRefresh( PKLDRRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    264 int     kLdrRdrProtect( PKLDRRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fUnprotectOrProtect);
    265 int     kLdrRdrUnmap(   PKLDRRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    266 void    kLdrRdrDone(    PKLDRRDR pRdr);
    267 
    268 /** @} */
    269 
     163/** @} */
    270164
    271165
     
    613507    PCKLDRMODOPS        pOps;
    614508    /** Pointer to the read instance. (Can be NULL after kLdrModDone().)*/
    615     PKLDRRDR            pRdr;
     509    PKRDR               pRdr;
    616510    /** The module data. */
    617511    void               *pvData;
     
    798692
    799693int     kLdrModOpen(const char *pszFilename, PPKLDRMOD ppMod);
    800 int     kLdrModOpenFromRdr(PKLDRRDR pRdr, PPKLDRMOD ppMod);
     694int     kLdrModOpenFromRdr(PKRDR pRdr, PPKLDRMOD ppMod);
    801695int     kLdrModOpenNative(const char *pszFilename, PPKLDRMOD ppMod);
    802696int     kLdrModOpenNativeByHandle(KUPTR uHandle, PPKLDRMOD ppMod);
     
    865759     * @param   ppMod           Where to store the module instance pointer.
    866760     */
    867     int (* pfnCreate)(PCKLDRMODOPS pOps, PKLDRRDR pRdr, KLDRFOFF offNewHdr, PPKLDRMOD ppMod);
     761    int (* pfnCreate)(PCKLDRMODOPS pOps, PKRDR pRdr, KLDRFOFF offNewHdr, PPKLDRMOD ppMod);
    868762    /**
    869763     * Destroys an loader module instance.
     
    911805    int (* pfnAllocTLS)(PKLDRMOD pMod);
    912806    /** @copydoc kLdrModFreeTLS */
    913     void (* pfnFreeTLS)(PKLDRMOD pMod);
     807    void (*pfnFreeTLS)(PKLDRMOD pMod);
    914808    /** @copydoc kLdrModReload */
    915809    int (* pfnReload)(PKLDRMOD pMod);
Note: See TracChangeset for help on using the changeset viewer.