00001 #ifndef _DYLIB_STD_H
00002 #define _DYLIB_STD_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <stddef.h>
00031 #include <stdlib.h>
00032
00033 #include "DylpConfig.h"
00034
00035
00036
00037
00038
00039
00040 #ifndef UNUSED
00041 # if defined(_GNU_SOURCE) || defined(__GNUC__)
00042 # define UNUSED __attribute__((unused))
00043 # else
00044 # define UNUSED
00045 # endif
00046 #endif
00047
00048
00049
00050
00051
00052 #include <string.h>
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 #ifndef __cplusplus
00065 #define FALSE 0
00066 #define TRUE 1
00067 # ifdef BOOL
00068 typedef BOOL bool ;
00069 # else
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 # warning The compile-time symbol BOOL is not defined (dylib_std.h)
00080 typedef int bool ;
00081 # endif
00082 #endif
00083
00084 #ifdef __cplusplus
00085 #ifndef FALSE
00086 # define FALSE false
00087 #endif
00088 #ifndef TRUE
00089 # define TRUE true
00090 #endif
00091 #endif
00092
00093
00094
00095
00096
00097
00098 typedef unsigned int flags ;
00099
00100 #define setflg(zz_flgs,zz_flg) ((zz_flgs) |= (zz_flg))
00101 #define clrflg(zz_flgs,zz_flg) ((zz_flgs) &= ~(zz_flg))
00102 #define comflg(zz_flgs,zz_flg) ((zz_flgs) ^= (zz_flg))
00103 #define getflg(zz_flgs,zz_flg) ((zz_flgs)&(zz_flg))
00104 #define flgon(zz_flgs,zz_flg) ((zz_flgs)&(zz_flg)?TRUE:FALSE)
00105 #define flgoff(zz_flgs,zz_flg) ((zz_flgs)&(zz_flg)?FALSE:TRUE)
00106 #define flgall(zz_flgs,zz_flg) ((((zz_flgs)&(zz_flg)) == (zz_flg))?TRUE:FALSE)
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118 typedef struct lnk_struct_tag
00119 { struct lnk_struct_tag *llnxt ;
00120 void *llval ; } lnk_struct ;
00121
00122 #define lnk_in(qqlnk,qqval) ((qqlnk)->llval = (void *) (qqval))
00123 #define lnk_out(qqlnk,qqtype) ((qqtype) (qqlnk)->llval)
00124
00125
00126
00127
00128 #define minn(qa,qb) (((qa) > (qb))?(qb):(qa))
00129 #define maxx(qa,qb) (((qa) > (qb))?(qa):(qb))
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148 #if (MALLOC_DEBUG == 2)
00149
00150 #include "dylib_io.h"
00151
00152 void *zz_ptr_zz ;
00153 ioid zz_chn_zz ;
00154
00155 #define MALLOC_DBG_INIT(chn) ( zz_chn_zz = chn )
00156
00157 #define MALLOC(zz_sze_zz) \
00158 ( zz_ptr_zz = (void *) malloc(zz_sze_zz), \
00159 outfmt(zz_chn_zz,FALSE,":malloc: %d bytes at %#08x in %s.\n", \
00160 zz_sze_zz,zz_ptr_zz,rtnnme), \
00161 zz_ptr_zz )
00162
00163 #define CALLOC(zz_cnt_zz,zz_sze_zz) \
00164 ( zz_ptr_zz = (void *) calloc(zz_cnt_zz,zz_sze_zz), \
00165 outfmt(zz_chn_zz,FALSE,":calloc: %d (%d*%d) bytes at %#08x in %s.\n", \
00166 zz_cnt_zz*zz_sze_zz,zz_cnt_zz,zz_sze_zz,zz_ptr_zz,rtnnme), \
00167 zz_ptr_zz )
00168
00169 #define REALLOC(zz_rptr_zz,zz_sze_zz) \
00170 ( zz_ptr_zz = (void *) realloc(zz_rptr_zz,zz_sze_zz), \
00171 outfmt(zz_chn_zz,FALSE, \
00172 ":realloc: %#08x changed to %d bytes at %#08x in %s.\n", \
00173 zz_rptr_zz,zz_sze_zz,zz_ptr_zz,rtnnme), \
00174 zz_ptr_zz )
00175
00176 #define FREE(zz_fptr_zz) \
00177 ( outfmt(zz_chn_zz,FALSE,":free: %#08x in %s.\n",zz_fptr_zz,rtnnme), \
00178 free((void *) zz_fptr_zz) )
00179
00180 #elif (MALLOC_DEBUG == 1)
00181
00182 #include <stdio.h>
00183 void *zz_ptr_zz ;
00184
00185 #define MALLOC(zz_sze_zz) \
00186 ( zz_ptr_zz = (void *) malloc(zz_sze_zz), \
00187 (zz_ptr_zz != 0)?0:\
00188 fprintf(stderr,":malloc: failed to get %d bytes at %s:%d.\n", \
00189 zz_sze_zz,__FILE__,__LINE__), \
00190 zz_ptr_zz )
00191
00192 #define CALLOC(zz_cnt_zz,zz_sze_zz) \
00193 ( zz_ptr_zz = (void *) calloc(zz_cnt_zz,zz_sze_zz), \
00194 (zz_ptr_zz != 0)?0:\
00195 fprintf(stderr,":calloc: failed to get %d bytes at %s:%d.\n", \
00196 zz_sze_zz*zz_cnt_zz,__FILE__,__LINE__), \
00197 zz_ptr_zz )
00198
00199 #define REALLOC(zz_rptr_zz,zz_sze_zz) \
00200 ( zz_ptr_zz = (void *) realloc(zz_rptr_zz,zz_sze_zz), \
00201 (zz_ptr_zz != 0)?0:\
00202 fprintf(stderr,":realloc: failed to get %d bytes at %s:%d.\n", \
00203 zz_sze_zz,__FILE__,__LINE__), \
00204 zz_ptr_zz )
00205
00206 #define FREE(zz_fptr_zz) free((void *) zz_fptr_zz)
00207
00208 #else
00209
00210 #define MALLOC_DBG_INIT(chn)
00211
00212 #define MALLOC(zz_sze_zz) malloc(zz_sze_zz)
00213
00214 #define CALLOC(zz_cnt_zz,zz_sze_zz) calloc(zz_cnt_zz,zz_sze_zz)
00215
00216 #define REALLOC(zz_rptr_zz,zz_sze_zz) realloc(zz_rptr_zz,zz_sze_zz)
00217
00218 #define FREE(zz_fptr_zz) free((void *) zz_fptr_zz)
00219
00220 #endif
00221
00222
00223 #endif