Changeset 2963 for trunk/kLdr/kLdr.h


Ignore:
Timestamp:
Feb 13, 2007, 9:40:28 AM (19 years ago)
Author:
bird
Message:

Implemented generic fixups for 32-bit symbol tables.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/kLdr.h

    r2962 r2963  
    5858#  define INT32_C(c)            (c)
    5959#  define INT64_C(c)            (c ## LL)
     60#  define INT8_MIN              (INT8_C(-0x7f) - 1)
     61#  define INT16_MIN             (INT16_C(-0x7fff) - 1)
     62#  define INT32_MIN             (INT32_C(-0x7fffffff) - 1)
     63#  define INT64_MIN             (INT64_C(-0x7fffffffffffffff) - 1)
     64#  define INT8_MAX              INT8_C(0x7f)
     65#  define INT16_MAX             INT16_C(0x7fff)
     66#  define INT32_MAX             INT32_C(0x7fffffff)
     67#  define INT64_MAX             INT64_C(0x7fffffffffffffff)
     68#  define UINT8_MAX             UINT8_C(0xff)
     69#  define UINT16_MAX            UINT16_C(0xffff)
     70#  define UINT32_MAX            UINT32_C(0xffffffff)
     71#  define UINT64_MAX            UINT64_C(0xffffffffffffffff)
    6072# else
    6173#  include <stdint.h>
     
    6476
    6577
    66 /** @defgroup grp_kLdrRdr   kLdrRdr - The file provider
     78/** @defgroup grp_kLdrBasic     kLdr Basic Types
    6779 * @{ */
    6880
     
    101113#endif
    102114
    103 /** Pointer to a loader segment. */
    104 typedef struct KLDRSEG *PKLDRSEG;
    105 /** Pointer to a loader segment. */
    106 typedef const struct KLDRSEG *PCKLDRSEG;
    107 
    108 
     115
     116/**
     117 * Union of all the integer types.
     118 */
     119typedef union KLDRU
     120{
     121    int8_t          i8;     /**< int8_t view. */
     122    uint8_t         u8;     /**< uint8_t view. */
     123    int16_t         i16;    /**< int16_t view. */
     124    uint16_t        u16;    /**< uint16_t view. */
     125    int32_t         i32;    /**< int32_t view. */
     126    uint32_t        u32;    /**< uint32_t view. */
     127    int64_t         i64;    /**< int64_t view. */
     128    uint64_t        u64;    /**< uint64_t view. */
     129
     130    int8_t          ai8[8]; /**< int8_t array view . */
     131    uint8_t         au8[8]; /**< uint8_t array view. */
     132    int16_t         ai16[4];/**< int16_t array view . */
     133    uint16_t        au16[4];/**< uint16_t array view. */
     134    int32_t         ai32[2];/**< int32_t array view . */
     135    uint32_t        au32[2];/**< uint32_t array view. */
     136
     137    signed char     ch;     /**< signed char view. */
     138    unsigned char   uch;    /**< unsigned char view. */
     139    signed short    s;      /**< signed short view. */
     140    unsigned short  us;     /**< unsigned short view. */
     141    signed int      i;      /**< signed int view. */
     142    unsigned int    u;      /**< unsigned int view. */
     143    signed long     l;      /**< signed long view. */
     144    unsigned long   ul;     /**< unsigned long view. */
     145    void           *pv;     /**< void pointer view. */
     146
     147    KLDRADDR        Addr;   /**< kLdr address view. */
     148    KLDRSIZE        Size;   /**< kLdr size view. */
     149} KLDRU;
     150/** Pointer to an integer union. */
     151typedef KLDRU *PKLDRU;
     152/** Pointer to a const integer union. */
     153typedef const KLDRU *PCKLDRU;
     154
     155
     156/**
     157 * Union of pointers to all the integer types.
     158 */
     159typedef union KLDRPU
     160{
     161    int8_t         *pi8;    /**< int8_t view. */
     162    uint8_t        *pu8;    /**< uint8_t view. */
     163    int16_t        *pi16;   /**< int16_t view. */
     164    uint16_t       *pu16;   /**< uint16_t view. */
     165    int32_t        *pi32;   /**< int32_t view. */
     166    uint32_t       *pu32;   /**< uint32_t view. */
     167    int64_t        *pi64;   /**< int64_t view. */
     168    uint64_t       *pu64;   /**< uint64_t view. */
     169
     170    signed char    *pch;    /**< signed char view. */
     171    unsigned char  *puch;   /**< unsigned char view. */
     172    signed short   *ps;     /**< signed short view. */
     173    unsigned short *pus;    /**< unsigned short view. */
     174    signed int     *pi;     /**< signed int view. */
     175    unsigned int   *pu;     /**< unsigned int view. */
     176    signed long    *pl;     /**< signed long view. */
     177    unsigned long  *pul;    /**< unsigned long view. */
     178    void           *pv;     /**< void pointer view. */
     179} KLDRPU;
     180/** Pointer to an integer pointer union. */
     181typedef KLDRPU *PKLDRPU;
     182/** Pointer to a const integer pointer union. */
     183typedef const KLDRPU *PCKLDRPU;
    109184
    110185
     
    142217} KLDRPROT;
    143218
     219/** Pointer to a loader segment. */
     220typedef struct KLDRSEG *PKLDRSEG;
     221/** Pointer to a loader segment. */
     222typedef const struct KLDRSEG *PCKLDRSEG;
     223
     224/** @} */
     225
     226
     227/** @defgroup grp_kLdrRdr   kLdrRdr - The file provider
     228 * @{ */
    144229
    145230/** Pointer to a file provider instance core. */
Note: See TracChangeset for help on using the changeset viewer.