Changeset 2944 for trunk/kLdr/kLdrHlp.h


Ignore:
Timestamp:
Jan 13, 2007, 4:55:40 PM (19 years ago)
Author:
bird
Message:

split up kLdrHlp.c and kLdr.c to make it more flexible (like using the module interpreters without the dynamic loader bit and similar).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/kLdrHlp.h

    r2891 r2944  
    6363
    6464/*
    65  * Compiler specific helpers.
     65 * Compiler specific helpers / CRT.
    6666 * (I.e. operations that tend to have compiler intrinsic implementations).
    6767 */
    68 #ifdef __GNUC__
     68#ifndef KLDR_USE_CRT
     69
     70# ifdef __GNUC__
    6971/** memchr */
    70 # define kLdrHlpMemChr(a,b,c)  __builtin_memchr(a,b,c)
     72#  define kLdrHlpMemChr(a,b,c)  __builtin_memchr(a,b,c)
    7173/** memcmp */
    72 # define kLdrHlpMemComp(a,b,c) __builtin_memcmp(a,b,c)
     74#  define kLdrHlpMemComp(a,b,c) __builtin_memcmp(a,b,c)
    7375/** memcpy */
    74 # define kLdrHlpMemCopy(a,b,c) __builtin_memcpy(a,b,c)
     76#  define kLdrHlpMemCopy(a,b,c) __builtin_memcpy(a,b,c)
    7577/** memmove */
    7678/*# define kLdrHlpMemMove(a,b,c) __builtin_memmove(a,b,c)*/
    77 # define kLdrHlpMemMove_needed
     79#  define kLdrHlpMemMove_needed
    7880/** memset */
    79 # define kLdrHlpMemSet(a,b,c)  __builtin_memset(a,b,c)
     81#  define kLdrHlpMemSet(a,b,c)  __builtin_memset(a,b,c)
    8082/** strchr */
    81 # define kLdrHlpStrChr(a, b)   __builtin_strchr(a, b)
     83#  define kLdrHlpStrChr(a, b)   __builtin_strchr(a, b)
    8284/** strcmp */
    83 # define kLdrHlpStrComp(a, b)  __builtin_strcmp(a, b)
     85#  define kLdrHlpStrComp(a, b)  __builtin_strcmp(a, b)
    8486/** strncmp */
    85 # define kLdrHlpStrNComp(a,b,c) __builtin_strncmp(a, b, c)
     87#  define kLdrHlpStrNComp(a,b,c) __builtin_strncmp(a, b, c)
    8688/** strlen */
    87 # define kLdrHlpStrLen(a)      __builtin_strlen(a)
     89#  define kLdrHlpStrLen(a)      __builtin_strlen(a)
    8890/** alloca */
    89 # define kLdrHlpAllocA(a)      __builtin_alloca(a)
     91#  define kLdrHlpAllocA(a)      __builtin_alloca(a)
    9092/** int3 */
    91 # define kldrHlpBreakpoint() do { __asm__ __volatile__ ("int3\n\tnop"); } while (0)
     93#  define kldrHlpBreakpoint() do { __asm__ __volatile__ ("int3\n\tnop"); } while (0)
    9294/** NULL */
    93 # ifndef NULL
    94 define NULL 0
    95 # endif
    96 #endif
    97 
    98 #ifdef _MSC_VER
    99 # include <string.h>
    100 # include <malloc.h>
    101 # pragma intrinsic(memcmp, memcpy, memset, strcmp, strlen, __debugbreak)
     95#  ifndef NULL
     96 define NULL 0
     97#  endif
     98# endif
     99
     100# ifdef _MSC_VER
     101#  include <string.h>
     102#  include <malloc.h>
     103#  pragma intrinsic(memcmp, memcpy, memset, strcmp, strlen, __debugbreak)
    102104/** memchr */
    103 # define kLdrHlpMemChr_needed
     105#  define kLdrHlpMemChr_needed
    104106/** memcmp */
    105 # define kLdrHlpMemComp(a,b,c) memcmp(a,b,c)
     107#  define kLdrHlpMemComp(a,b,c) memcmp(a,b,c)
    106108/** memcpy */
    107 # define kLdrHlpMemCopy(a,b,c) memcpy(a,b,c)
     109#  define kLdrHlpMemCopy(a,b,c) memcpy(a,b,c)
    108110/** memmove */
    109 # define kLdrHlpMemMove_needed
     111#  define kLdrHlpMemMove_needed
    110112/** memset */
    111 # define kLdrHlpMemSet(a,b,c)  memset(a,b,c)
     113#  define kLdrHlpMemSet(a,b,c)  memset(a,b,c)
    112114/** strcmp */
    113 # define kLdrHlpStrComp(a, b)  strcmp(a, b)
     115#  define kLdrHlpStrComp(a, b)  strcmp(a, b)
    114116/** strncmp */
    115 # define kLdrHlpStrNComp_needed
     117#  define kLdrHlpStrNComp_needed
    116118/** strlen */
    117 # define kLdrHlpStrLen(a)      strlen(a)
     119#  define kLdrHlpStrLen(a)      strlen(a)
    118120/** strchr */
    119 # define kLdrHlpStrChr_needed
     121#  define kLdrHlpStrChr_needed
    120122/** alloca */
    121 # define kLdrHlpAllocA(a)      alloca(a)
     123#  define kLdrHlpAllocA(a)      alloca(a)
    122124/** int3 */
    123 # define kldrHlpBreakpoint() __debugbreak()
     125#  define kldrHlpBreakpoint() __debugbreak()
    124126/** NULL */
    125 # ifndef NULL
    126 define NULL 0
    127 # endif
    128 #endif
    129 
    130 #ifdef kLdrHlpStrChr_needed
     127#  ifndef NULL
     128 define NULL 0
     129#  endif
     130# endif
     131
     132# ifdef kLdrHlpStrChr_needed
    131133char   *kLdrHlpStrChr(const char *psz, int ch);
    132 #endif
    133 #ifdef kLdrHlpStrChr_needed
     134# endif
     135# ifdef kLdrHlpStrChr_needed
    134136int     kLdrHlpStrNComp(const char *psz1, const char *psz2, size_t cch);
    135 #endif
    136 #ifdef kLdrHlpMemChr_needed
     137# endif
     138# ifdef kLdrHlpMemChr_needed
    137139void   *kLdrHlpMemChr(const void *pv, int ch, size_t cb);
    138 #endif
    139 #ifdef kLdrHlpMemMove_needed
     140# endif
     141# ifdef kLdrHlpMemMove_needed
    140142void   *kLdrHlpMemMove(void *pv1, const void *pv2, size_t cb);
    141 #endif
    142 int     kLdrHlpMemIComp(const void *pv1, const void *pv2, size_t cb);
    143 int     kLdrHlpStrIComp(const char *pv1, const char *pv2);
    144 
     143# endif
     144
     145
     146#else /* KLDR_USE_CRT */
     147
     148#  include <string.h>
     149#  include <stdlib.h>
     150#  ifdef _MSC_VER
     151#   include <malloc.h>
     152#  endif
     153
     154#  define kLdrHlpMemChr(a,b,c)  memchr(a,b,c)
     155/** memcmp */
     156#  define kLdrHlpMemComp(a,b,c) memcmp(a,b,c)
     157/** memcpy */
     158#  define kLdrHlpMemCopy(a,b,c) memcpy(a,b,c)
     159/** memmove */
     160#  define kLdrHlpMemMove(a,b,c) memmove(a,b,c)
     161/** memset */
     162#  define kLdrHlpMemSet(a,b,c)  memset(a,b,c)
     163/** strchr */
     164#  define kLdrHlpStrChr(a, b)   strchr(a, b)
     165/** strcmp */
     166#  define kLdrHlpStrComp(a, b)  strcmp(a, b)
     167/** strncmp */
     168#  define kLdrHlpStrNComp(a,b,c) strncmp(a, b, c)
     169/** strlen */
     170#  define kLdrHlpStrLen(a)      strlen(a)
     171/** alloca */
     172#  define kLdrHlpAllocA(a)      alloca(a)
     173/** int3 */
     174#  ifdef __GNUC__
     175#   define kldrHlpBreakpoint() do { __asm__ __volatile__ ("int3\n\tnop"); } while (0)
     176#  endif
     177#  ifdef _MSC_VER
     178#   define kldrHlpBreakpoint() __debugbreak()
     179#  endif
     180
     181#endif
    145182
    146183#if (!defined(kLdrHlpMemChr) && !defined(kLdrHlpStrChr_needed))\
     
    157194#endif
    158195
     196#ifdef __cplusplus
     197extern "C" {
     198#endif
     199
     200int     kLdrHlpMemIComp(const void *pv1, const void *pv2, size_t cb);
     201int     kLdrHlpStrIComp(const char *pv1, const char *pv2);
     202
    159203int     kldrHlpSemInit(void);
    160204void    kldrHlpSemTerm(void);
     
    183227char   *kldrHlpInt2Ascii(char *psz, size_t cch, long lVal, unsigned iBase);
    184228void    kldrHlpAssertMsg(const char *pszExpr, const char *pszFile, unsigned iLine, const char *pszFunction);
     229
     230#ifdef __cplusplus
     231}
     232#endif
     233
    185234
    186235/** Assertion macro.
Note: See TracChangeset for help on using the changeset viewer.