Ignore:
Timestamp:
Aug 25, 2007, 8:10:29 AM (18 years ago)
Author:
bird
Message:

kRdr hacking.

Location:
trunk/kStuff/include/k
Files:
3 added
1 edited
1 copied

Legend:

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

    r3542 r3543  
    2929
    3030#include <k/kDefs.h>
    31 #ifndef ___k_kLdr___
    32 /* avoid dragging in kLdr.h */
    33 typedef enum KLDRPROT { KLDRPROT_32BIT_HACK = 0x7fffffff } KLDRPROT;
    34 typedef const struct KLDRSEG *PCKLDRSEG;
    35 #endif
     31#include <k/kTypes.h>
    3632
    3733#ifdef __cplusplus
     
    4339 * @{ */
    4440
    45 /** Pointer to a file provider instance core. */
     41/** Pointer to a file provider instance. */
    4642typedef struct KRDR *PKRDR;
    47 /** Pointer to a file provider instance core pointer. */
     43/** Pointer to a file provider instance pointer. */
    4844typedef struct KRDR **PPKRDR;
    49 
    50 /**
    51  * File provider instance operations.
    52  */
    53 typedef struct KRDROPS
    54 {
    55     /** The name of this file provider. */
    56     const char *pszName;
    57     /** Pointer to the next file provider. */
    58     const struct KRDROPS *pNext;
    59 
    60     /** Try create a new file provider instance.
    61      *
    62      * @returns 0 on success, OS specific error code on failure.
    63      * @param   ppRdr       Where to store the file provider instance.
    64      * @param   pszFilename The filename to open.
    65      */
    66     int     (* pfnCreate)(  PPKRDR ppRdr, const char *pszFilename);
    67     /** Destroy the file provider instance.
    68      *
    69      * @returns 0 on success, OS specific error code on failure.
    70      *          On failure, the file provider instance will be in an indeterminate state - don't touch it!
    71      * @param   pRdr        The file provider instance.
    72      */
    73     int     (* pfnDestroy)( PKRDR pRdr);
    74     /** @copydoc kRdrRead */
    75     int     (* pfnRead)(    PKRDR pRdr, void *pvBuf, size_t cb, KLDRFOFF off);
    76     /** @copydoc kRdrAllMap */
    77     int     (* pfnAllMap)(  PKRDR pRdr, const void **ppvBits);
    78     /** @copydoc kRdrAllUnmap */
    79     int     (* pfnAllUnmap)(PKRDR pRdr, const void *pvBits);
    80     /** @copydoc kRdrSize */
    81     KFOFF   (* pfnSize)(    PKRDR pRdr);
    82     /** @copydoc kRdrTell */
    83     KFOFF   (* pfnTell)(    PKRDR pRdr);
    84     /** @copydoc kRdrName */
    85     const char * (* pfnName)(PKRDR pRdr);
    86     /** @copydoc kRdrPageSize */
    87     KSIZE   (* pfnPageSize)(PKRDR pRdr);
    88     /** @copydoc kRdrMap */
    89     int     (* pfnMap)(     PKRDR pRdr, void **ppvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fFixed);
    90     /** @copydoc kRdrRefresh */
    91     int     (* pfnRefresh)( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    92     /** @copydoc kRdrProtect */
    93     int     (* pfnProtect)( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fUnprotectOrProtect);
    94     /** @copydoc kRdrUnmap */
    95     int     (* pfnUnmap)(   PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    96     /** @copydoc kRdrDone */
    97     void    (* pfnDone)(    PKRDR pRdr);
    98     /** The usual non-zero dummy that makes sure we've initialized all members. */
    99     KU32    u32Dummy;
    100 } KRDROPS;
    101 /** Pointer to file provider operations. */
    102 typedef KRDROPS *PKRDROPS;
    103 /** Pointer to const file provider operations. */
    104 typedef const KRDROPS *PCKRDROPS;
    105 
    106 
    107 /**
    108  * File provider instance core.
    109  */
    110 typedef struct KRDR
    111 {
    112     /** Magic number (KLDRRDR_MAGIC). */
    113     KU32        u32Magic;
    114     /** Pointer to the file provider operations. */
    115     PCKRDROPS   pOps;
    116 } KRDR;
    117 
    118 /** The magic for KRDR::u32Magic. (Katsu Aki (Katsuaki Nakamura)) */
    119 #define KRDR_MAGIC   0x19610919
    120 
    121 void    kRdrAddProvider(PKRDROPS pAdd);
    12245
    12346int     kRdrOpen(PPKRDR ppRdr, const char *pszFilename);
    12447int     kRdrOpenBuffered(PPKRDR ppRdr, const char *pszFilename);
    125 
    12648int     kRdrClose(   PKRDR pRdr);
    127 int     kRdrRead(    PKRDR pRdr, void *pvBuf, size_t cb, KLDRFOFF off);
     49int     kRdrRead(    PKRDR pRdr, void *pvBuf, KSIZE cb, KFOFF off);
    12850int     kRdrAllMap(  PKRDR pRdr, const void **ppvBits);
    12951int     kRdrAllUnmap(PKRDR pRdr, const void *pvBits);
     
    13254const char *kRdrName(PKRDR pRdr);
    13355KIPTR   kRdrNativeFH(PKRDR pRdr);
    134 
    13556KSIZE   kRdrPageSize(PKRDR pRdr);
     57#ifndef ___k_kLdr___
    13658int     kRdrMap(     PKRDR pRdr, void **ppvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fFixed);
    13759int     kRdrRefresh( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    13860int     kRdrProtect( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fUnprotectOrProtect);
    13961int     kRdrUnmap(   PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
     62#endif /* !___k_kLdr___ */
    14063void    kRdrDone(    PKRDR pRdr);
    14164
  • trunk/kStuff/include/k/kRdrAll.h

    r3542 r3543  
    11/* $Id$ */
    22/** @file
    3  * kRdr - The File Provider.
     3 * kRdr - The File Provider, All Dependencies Included.
    44 */
    55
     
    2525 */
    2626
    27 #ifndef ___kRdr_h___
    28 #define ___kRdr_h___
     27#ifndef ___kRdrAll_h___
     28#define ___kRdrAll_h___
    2929
    3030#include <k/kDefs.h>
    31 #ifndef ___k_kLdr___
    32 /* avoid dragging in kLdr.h */
    33 typedef enum KLDRPROT { KLDRPROT_32BIT_HACK = 0x7fffffff } KLDRPROT;
    34 typedef const struct KLDRSEG *PCKLDRSEG;
    35 #endif
     31#include "../kLdr/kLdr.h" //later - <k/kLdr.h>
     32#include <k/kRdr.h>
    3633
    3734#ifdef __cplusplus
     
    4037
    4138
    42 /** @defgroup grp_kRdr      kRdr - The File Provider
    43  * @{ */
    44 
    45 /** Pointer to a file provider instance core. */
    46 typedef struct KRDR *PKRDR;
    47 /** Pointer to a file provider instance core pointer. */
    48 typedef struct KRDR **PPKRDR;
     39/** @defgroup grp_kRdrAll   All
     40 * @addtogroup grp_kRdr
     41 * @{
     42 */
    4943
    5044/**
     
    7367    int     (* pfnDestroy)( PKRDR pRdr);
    7468    /** @copydoc kRdrRead */
    75     int     (* pfnRead)(    PKRDR pRdr, void *pvBuf, size_t cb, KLDRFOFF off);
     69    int     (* pfnRead)(    PKRDR pRdr, void *pvBuf, size_t cb, KFOFF off);
    7670    /** @copydoc kRdrAllMap */
    7771    int     (* pfnAllMap)(  PKRDR pRdr, const void **ppvBits);
     
    8478    /** @copydoc kRdrName */
    8579    const char * (* pfnName)(PKRDR pRdr);
     80    /** @copydoc kRdrNativeFH */
     81    KIPTR  (* pfnNativeFH)(PKRDR pRdr);
    8682    /** @copydoc kRdrPageSize */
    8783    KSIZE   (* pfnPageSize)(PKRDR pRdr);
     
    110106typedef struct KRDR
    111107{
    112     /** Magic number (KLDRRDR_MAGIC). */
     108    /** Magic number (KRDR_MAGIC). */
    113109    KU32        u32Magic;
    114110    /** Pointer to the file provider operations. */
     
    116112} KRDR;
    117113
    118 /** The magic for KRDR::u32Magic. (Katsu Aki (Katsuaki Nakamura)) */
    119 #define KRDR_MAGIC   0x19610919
    120 
    121114void    kRdrAddProvider(PKRDROPS pAdd);
    122 
    123 int     kRdrOpen(PPKRDR ppRdr, const char *pszFilename);
    124 int     kRdrOpenBuffered(PPKRDR ppRdr, const char *pszFilename);
    125 
    126 int     kRdrClose(   PKRDR pRdr);
    127 int     kRdrRead(    PKRDR pRdr, void *pvBuf, size_t cb, KLDRFOFF off);
    128 int     kRdrAllMap(  PKRDR pRdr, const void **ppvBits);
    129 int     kRdrAllUnmap(PKRDR pRdr, const void *pvBits);
    130 KFOFF   kRdrSize(    PKRDR pRdr);
    131 KFOFF   kRdrTell(    PKRDR pRdr);
    132 const char *kRdrName(PKRDR pRdr);
    133 KIPTR   kRdrNativeFH(PKRDR pRdr);
    134 
    135 KSIZE   kRdrPageSize(PKRDR pRdr);
    136 int     kRdrMap(     PKRDR pRdr, void **ppvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fFixed);
    137 int     kRdrRefresh( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    138 int     kRdrProtect( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments, unsigned fUnprotectOrProtect);
    139 int     kRdrUnmap(   PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    140 void    kRdrDone(    PKRDR pRdr);
    141115
    142116/** @} */
Note: See TracChangeset for help on using the changeset viewer.