Changeset 2944 for trunk/kLdr/kLdrHlp.h
- Timestamp:
- Jan 13, 2007, 4:55:40 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kLdr/kLdrHlp.h
r2891 r2944 63 63 64 64 /* 65 * Compiler specific helpers .65 * Compiler specific helpers / CRT. 66 66 * (I.e. operations that tend to have compiler intrinsic implementations). 67 67 */ 68 #ifdef __GNUC__ 68 #ifndef KLDR_USE_CRT 69 70 # ifdef __GNUC__ 69 71 /** memchr */ 70 # define kLdrHlpMemChr(a,b,c) __builtin_memchr(a,b,c)72 # define kLdrHlpMemChr(a,b,c) __builtin_memchr(a,b,c) 71 73 /** memcmp */ 72 # define kLdrHlpMemComp(a,b,c) __builtin_memcmp(a,b,c)74 # define kLdrHlpMemComp(a,b,c) __builtin_memcmp(a,b,c) 73 75 /** memcpy */ 74 # define kLdrHlpMemCopy(a,b,c) __builtin_memcpy(a,b,c)76 # define kLdrHlpMemCopy(a,b,c) __builtin_memcpy(a,b,c) 75 77 /** memmove */ 76 78 /*# define kLdrHlpMemMove(a,b,c) __builtin_memmove(a,b,c)*/ 77 # define kLdrHlpMemMove_needed79 # define kLdrHlpMemMove_needed 78 80 /** memset */ 79 # define kLdrHlpMemSet(a,b,c) __builtin_memset(a,b,c)81 # define kLdrHlpMemSet(a,b,c) __builtin_memset(a,b,c) 80 82 /** strchr */ 81 # define kLdrHlpStrChr(a, b) __builtin_strchr(a, b)83 # define kLdrHlpStrChr(a, b) __builtin_strchr(a, b) 82 84 /** strcmp */ 83 # define kLdrHlpStrComp(a, b) __builtin_strcmp(a, b)85 # define kLdrHlpStrComp(a, b) __builtin_strcmp(a, b) 84 86 /** strncmp */ 85 # define kLdrHlpStrNComp(a,b,c) __builtin_strncmp(a, b, c)87 # define kLdrHlpStrNComp(a,b,c) __builtin_strncmp(a, b, c) 86 88 /** strlen */ 87 # define kLdrHlpStrLen(a) __builtin_strlen(a)89 # define kLdrHlpStrLen(a) __builtin_strlen(a) 88 90 /** alloca */ 89 # define kLdrHlpAllocA(a) __builtin_alloca(a)91 # define kLdrHlpAllocA(a) __builtin_alloca(a) 90 92 /** int3 */ 91 # define kldrHlpBreakpoint() do { __asm__ __volatile__ ("int3\n\tnop"); } while (0)93 # define kldrHlpBreakpoint() do { __asm__ __volatile__ ("int3\n\tnop"); } while (0) 92 94 /** NULL */ 93 # ifndef NULL94 # define NULL 095 # endif96 # endif97 98 # ifdef _MSC_VER99 # 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) 102 104 /** memchr */ 103 # define kLdrHlpMemChr_needed105 # define kLdrHlpMemChr_needed 104 106 /** memcmp */ 105 # define kLdrHlpMemComp(a,b,c) memcmp(a,b,c)107 # define kLdrHlpMemComp(a,b,c) memcmp(a,b,c) 106 108 /** memcpy */ 107 # define kLdrHlpMemCopy(a,b,c) memcpy(a,b,c)109 # define kLdrHlpMemCopy(a,b,c) memcpy(a,b,c) 108 110 /** memmove */ 109 # define kLdrHlpMemMove_needed111 # define kLdrHlpMemMove_needed 110 112 /** memset */ 111 # define kLdrHlpMemSet(a,b,c) memset(a,b,c)113 # define kLdrHlpMemSet(a,b,c) memset(a,b,c) 112 114 /** strcmp */ 113 # define kLdrHlpStrComp(a, b) strcmp(a, b)115 # define kLdrHlpStrComp(a, b) strcmp(a, b) 114 116 /** strncmp */ 115 # define kLdrHlpStrNComp_needed117 # define kLdrHlpStrNComp_needed 116 118 /** strlen */ 117 # define kLdrHlpStrLen(a) strlen(a)119 # define kLdrHlpStrLen(a) strlen(a) 118 120 /** strchr */ 119 # define kLdrHlpStrChr_needed121 # define kLdrHlpStrChr_needed 120 122 /** alloca */ 121 # define kLdrHlpAllocA(a) alloca(a)123 # define kLdrHlpAllocA(a) alloca(a) 122 124 /** int3 */ 123 # define kldrHlpBreakpoint() __debugbreak()125 # define kldrHlpBreakpoint() __debugbreak() 124 126 /** NULL */ 125 # ifndef NULL126 # define NULL 0127 # endif128 # endif129 130 # ifdef kLdrHlpStrChr_needed127 # ifndef NULL 128 # define NULL 0 129 # endif 130 # endif 131 132 # ifdef kLdrHlpStrChr_needed 131 133 char *kLdrHlpStrChr(const char *psz, int ch); 132 # endif133 # ifdef kLdrHlpStrChr_needed134 # endif 135 # ifdef kLdrHlpStrChr_needed 134 136 int kLdrHlpStrNComp(const char *psz1, const char *psz2, size_t cch); 135 # endif136 # ifdef kLdrHlpMemChr_needed137 # endif 138 # ifdef kLdrHlpMemChr_needed 137 139 void *kLdrHlpMemChr(const void *pv, int ch, size_t cb); 138 # endif139 # ifdef kLdrHlpMemMove_needed140 # endif 141 # ifdef kLdrHlpMemMove_needed 140 142 void *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 145 182 146 183 #if (!defined(kLdrHlpMemChr) && !defined(kLdrHlpStrChr_needed))\ … … 157 194 #endif 158 195 196 #ifdef __cplusplus 197 extern "C" { 198 #endif 199 200 int kLdrHlpMemIComp(const void *pv1, const void *pv2, size_t cb); 201 int kLdrHlpStrIComp(const char *pv1, const char *pv2); 202 159 203 int kldrHlpSemInit(void); 160 204 void kldrHlpSemTerm(void); … … 183 227 char *kldrHlpInt2Ascii(char *psz, size_t cch, long lVal, unsigned iBase); 184 228 void kldrHlpAssertMsg(const char *pszExpr, const char *pszFile, unsigned iLine, const char *pszFunction); 229 230 #ifdef __cplusplus 231 } 232 #endif 233 185 234 186 235 /** Assertion macro.
Note:
See TracChangeset
for help on using the changeset viewer.