CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 - 2 0 0 3 M y S Q L A B 00002 00003 T h i s p r o g r a m i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y 00004 00005 i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y 00006 00007 t h e F r e e S o f t w a r e F o u n d a t i o n ; v e r s i o n 2 o f t h e L i c e n s e . 00008 00009 T h i s p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , 00010 00011 b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f 00012 00013 M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e 00014 00015 G N U G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s . 00016 00017 Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e 00018 00019 a l o n g w i t h t h i s p r o g r a m ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e 00020 00021 F o u n d a t i o n , I n c . , 5 9 T e m p l e P l a c e , S u i t e 3 3 0 , B o s t o n , M A 0 2 1 1 1 - 1 3 0 7 U S A * / 00022 00023 / * * 00024 00025 @ f i l e 00026 00027 m y s y s l i b r a r y A P I 00028 00029 * / 00030 00031 # i f n d e f _ m y _ s y s _ h 00032 00033 # d e f i n e _ m y _ s y s _ h 00034 00035 C _ M O D E _ S T A R T 00036 00037 # i f d e f H A V E _ A I O W A I T 00038 00039 # i n c l u d e < s y s / a s y n c h . h > / * U s e d b y r e c o r d - c a c h e * / 00040 00041 t y p e d e f s t r u c t m y _ a i o _ r e s u l t { 00042 00043 a i o _ r e s u l t _ t r e s u l t ; 00044 00045 i n t p e n d i n g ; 00046 00047 } m y _ a i o _ r e s u l t ; 00048 00049 # e n d i f 00050 00051 # i f n d e f T H R E A D 00052 00053 e x t e r n i n t N E A R m y _ e r r n o ; / * L a s t e r r o r i n m y s y s * / 00054 00055 # e l s e 00056 00057 # i n c l u d e < m y _ p t h r e a d . h > 00058 00059 # e n d i f 00060 00061 # i n c l u d e < m _ c t y p e . h > / * f o r C H A R S E T _ I N F O * / 00062 00063 # i n c l u d e < s t d a r g . h > 00064 00065 # i n c l u d e < t y p e l i b . h > 00066 00067 # d e f i n e M Y S Y S _ P R O G R A M _ D O N T _ U S E _ C U R S E S ( ) { e r r o r _ h a n d l e r _ h o o k = m y _ m e s s a g e _ n o _ c u r s e s ; m y s y s _ u s e s _ c u r s e s = 0 ; } 00068 00069 # d e f i n e M Y _ I N I T ( n a m e ) ; { m y _ p r o g n a m e = n a m e ; m y _ i n i t ( ) ; } 00070 00071 / * * 00072 00073 M a x l e n g t h o f a n e r r o r m e s s a g e g e n e r a t e d b y m y s y s u t i l i t i e s . 00074 00075 S o m e m y s y s f u n c t i o n s p r o d u c e e r r o r m e s s a g e s . T h e s e m o s t l y g o 00076 00077 t o s t d e r r . 00078 00079 T h i s c o n s t a n t d e f i n e s t h e s i z e o f t h e b u f f e r u s e d t o f o r m a t 00080 00081 t h e m e s s a g e . I t s h o u l d b e k e p t i n s y n c w i t h M Y S Q L _ E R R M S G _ S I Z E , 00082 00083 s i n c e s o m e t i m e s m y s y s e r r o r s a r e s t o r e d i n t h e s e r v e r d i a g n o s t i c s 00084 00085 a r e a , a n d w e w o u l d l i k e t o a v o i d u n e x p e c t e d t r u n c a t i o n . 00086 00087 * / 00088 00089 # d e f i n e M Y S Y S _ E R R M S G _ S I Z E ( 5 1 2 ) 00090 00091 # d e f i n e M Y _ F I L E _ E R R O R ( ( s i z e _ t ) - 1 ) 00092 00093 / * G e n e r a l b i t m a p s f o r m y _ f u n c ' s * / 00094 00095 # d e f i n e M Y _ F F N F 1 / * F a t a l i f f i l e n o t f o u n d * / 00096 00097 # d e f i n e M Y _ F N A B P 2 / * F a t a l i f n o t a l l b y t e s r e a d / w r i t e n * / 00098 00099 # d e f i n e M Y _ N A B P 4 / * E r r o r i f n o t a l l b y t e s r e a d / w r i t e n * / 00100 00101 # d e f i n e M Y _ F A E 8 / * F a t a l i f a n y e r r o r * / 00102 00103 # d e f i n e M Y _ W M E 1 6 / * W r i t e m e s s a g e o n e r r o r * / 00104 00105 # d e f i n e M Y _ W A I T _ I F _ F U L L 3 2 / * W a i t a n d t r y a g a i n i f d i s k f u l l e r r o r * / 00106 00107 # d e f i n e M Y _ I G N O R E _ B A D F D 3 2 / * m y _ s y n c : i g n o r e ' b a d d e s c r i p t o r ' e r r o r s * / 00108 00109 # d e f i n e M Y _ S Y N C _ D I R 1 0 2 4 / * m y _ c r e a t e / d e l e t e / r e n a m e : s y n c d i r e c t o r y * / 00110 00111 # d e f i n e M Y _ R A I D 6 4 / * S u p p o r t f o r R A I D * / 00112 00113 # d e f i n e M Y _ F U L L _ I O 5 1 2 / * F o r m y _ r e a d - l o o p i n t i l I / O i s c o m p l e t e * / 00114 00115 # d e f i n e M Y _ D O N T _ C H E C K _ F I L E S I Z E 1 2 8 / * O p t i o n t o i n i t _ i o _ c a c h e ( ) * / 00116 00117 # d e f i n e M Y _ L I N K _ W A R N I N G 3 2 / * m y _ r e d e l ( ) g i v e s w a r n i n g i f l i n k s * / 00118 00119 # d e f i n e M Y _ C O P Y T I M E 6 4 / * m y _ r e d e l ( ) c o p y s t i m e * / 00120 00121 # d e f i n e M Y _ D E L E T E _ O L D 2 5 6 / * m y _ c r e a t e _ w i t h _ s y m l i n k ( ) * / 00122 00123 # d e f i n e M Y _ R E S O L V E _ L I N K 1 2 8 / * m y _ r e a l p a t h ( ) ; O n l y r e s o l v e l i n k s * / 00124 00125 # d e f i n e M Y _ H O L D _ O R I G I N A L _ M O D E S 1 2 8 / * m y _ c o p y ( ) h o l d s t o f i l e m o d e s * / 00126 00127 # d e f i n e M Y _ R E D E L _ M A K E _ B A C K U P 2 5 6 00128 00129 # d e f i n e M Y _ S E E K _ N O T _ D O N E 3 2 / * m y _ l o c k m a y h a v e t o d o a s e e k * / 00130 00131 # d e f i n e M Y _ S H O R T _ W A I T 6 4 / * m y _ l o c k ( ) d o n ' t w a i t i f c a n ' t l o c k * / 00132 00133 # d e f i n e M Y _ F O R C E _ L O C K 1 2 8 / * u s e m y _ l o c k ( ) e v e n i f d i s a b l e _ l o c k i n g * / 00134 00135 # d e f i n e M Y _ N O _ W A I T 2 5 6 / * m y _ l o c k ( ) d o n ' t w a i t a t a l l * / 00136 00137 # d e f i n e M Y _ Z E R O F I L L 3 2 / * m y _ m a l l o c ( ) , f i l l a r r a y w i t h z e r o * / 00138 00139 # d e f i n e M Y _ A L L O W _ Z E R O _ P T R 6 4 / * m y _ r e a l l o c ( ) ; z e r o p t r - > m a l l o c * / 00140 00141 # d e f i n e M Y _ F R E E _ O N _ E R R O R 1 2 8 / * m y _ r e a l l o c ( ) ; F r e e o l d p t r o n e r r o r * / 00142 00143 # d e f i n e M Y _ H O L D _ O N _ E R R O R 2 5 6 / * m y _ r e a l l o c ( ) ; R e t u r n o l d p t r o n e r r o r * / 00144 00145 # d e f i n e M Y _ D O N T _ O V E R W R I T E _ F I L E 2 0 4 8 / * m y _ c o p y : D o n ' t o v e r w r i t e f i l e * / 00146 00147 # d e f i n e M Y _ T H R E A D S A F E 2 0 4 8 / * m y _ s e e k ( ) : l o c k f d m u t e x * / 00148 00149 # d e f i n e M Y _ C H E C K _ E R R O R 1 / * P a r a m s t o m y _ e n d ; C h e c k o p e n - c l o s e * / 00150 00151 # d e f i n e M Y _ G I V E _ I N F O 2 / * G i v e t i m e i n f o a b o u t p r o c e s s * / 00152 00153 # d e f i n e M Y _ D O N T _ F R E E _ D B U G 4 / * D o n o t c a l l D B U G _ E N D ( ) i n m y _ e n d ( ) * / 00154 00155 # d e f i n e M Y _ R E M O V E _ N O N E 0 / * P a r a m s f o r m o d i f y _ d e f a u l t s _ f i l e * / 00156 00157 # d e f i n e M Y _ R E M O V E _ O P T I O N 1 00158 00159 # d e f i n e M Y _ R E M O V E _ S E C T I O N 2 00160 00161 # d e f i n e M E _ H I G H B Y T E 8 / * S h i f t f o r c o l o u r s * / 00162 00163 # d e f i n e M E _ N O C U R 1 / * D o n ' t u s e c u r s e s m e s s a g e * / 00164 00165 # d e f i n e M E _ O L D W I N 2 / * U s e o l d w i n d o w * / 00166 00167 # d e f i n e M E _ B E L L 4 / * R i n g b e l l t h e n p r i n t i n g m e s s a g e * / 00168 00169 # d e f i n e M E _ H O L D T A N G 8 / * D o n ' t d e l e t e l a s t k e y s * / 00170 00171 # d e f i n e M E _ W A I T T O T 1 6 / * W a i t f o r e r r t i m e s e c s o f f o r a a c t i o n * / 00172 00173 # d e f i n e M E _ W A I T T A N G 3 2 / * W a i t f o r a u s e r a c t i o n * / 00174 00175 # d e f i n e M E _ N O R E F R E S H 6 4 / * D o n t r e f r e s h s c r e e n * / 00176 00177 # d e f i n e M E _ N O I N P U T 1 2 8 / * D o n t u s e t h e i n p u t l i b a r y * / 00178 00179 # d e f i n e M E _ C O L O U R 1 ( ( 1 < < M E _ H I G H B Y T E ) ) / * P o s s i b l y e r r o r - c o l o u r s * / 00180 00181 # d e f i n e M E _ C O L O U R 2 ( ( 2 < < M E _ H I G H B Y T E ) ) 00182 00183 # d e f i n e M E _ C O L O U R 3 ( ( 3 < < M E _ H I G H B Y T E ) ) 00184 00185 # d e f i n e M E _ F A T A L E R R O R 1 0 2 4 / * F a t a l s t a t e m e n t e r r o r * / 00186 00187 # d e f i n e M E _ J U S T _ I N F O 8 1 9 2 / * * < n o t e r r o r b u t j u s t i n f o * / 00188 00189 # d e f i n e M E _ J U S T _ W A R N I N G 1 6 3 8 4 / * * < n o t e r r o r b u t j u s t w a r n i n g * / 00190 00191 / * B i t s i n l a s t a r g u m e n t t o f n _ f o r m a t * / 00192 00193 # d e f i n e M Y _ R E P L A C E _ D I R 1 / * r e p l a c e d i r i n n a m e w i t h ' d i r ' * / 00194 00195 # d e f i n e M Y _ R E P L A C E _ E X T 2 / * r e p l a c e e x t e n s i o n w i t h ' e x t ' * / 00196 00197 # d e f i n e M Y _ U N P A C K _ F I L E N A M E 4 / * U n p a c k n a m e ( ~ - > h o m e ) * / 00198 00199 # d e f i n e M Y _ P A C K _ F I L E N A M E 8 / * P a c k n a m e ( h o m e - > ~ ) * / 00200 00201 # d e f i n e M Y _ R E S O L V E _ S Y M L I N K S 1 6 / * R e s o l v e a l l s y m b o l i c l i n k s * / 00202 00203 # d e f i n e M Y _ R E T U R N _ R E A L _ P A T H 3 2 / * r e t u r n f u l l p a t h f o r f i l e * / 00204 00205 # d e f i n e M Y _ S A F E _ P A T H 6 4 / * R e t u r n N U L L i f t o o l o n g p a t h * / 00206 00207 # d e f i n e M Y _ R E L A T I V E _ P A T H 1 2 8 / * n a m e i s r e l a t i v e t o ' d i r ' * / 00208 00209 # d e f i n e M Y _ A P P E N D _ E X T 2 5 6 / * a d d ' e x t ' a s a d d i t i o n a l e x t e n s i o n * / 00210 00211 00212 00213 / * M y s e e k f l a g s * / 00214 00215 # d e f i n e M Y _ S E E K _ S E T 0 00216 00217 # d e f i n e M Y _ S E E K _ C U R 1 00218 00219 # d e f i n e M Y _ S E E K _ E N D 2 00220 00221 / * S o m e c o n s t a n t s * / 00222 00223 # d e f i n e M Y _ W A I T _ F O R _ U S E R _ T O _ F I X _ P A N I C 6 0 / * i n s e c o n d s * / 00224 00225 # d e f i n e M Y _ W A I T _ G I V E _ U S E R _ A _ M E S S A G E 1 0 / * E v e r y 1 0 t i m e s o f p r e v * / 00226 00227 # d e f i n e M I N _ C O M P R E S S _ L E N G T H 5 0 / * D o n ' t c o m p r e s s s m a l l b l . * / 00228 00229 # d e f i n e D F L T _ I N I T _ H I T S 3 00230 00231 / * r o o t _ a l l o c f l a g s * / 00232 00233 # d e f i n e M Y _ K E E P _ P R E A L L O C 1 00234 00235 # d e f i n e M Y _ M A R K _ B L O C K S _ F R E E 2 / * m o v e u s e d t o f r e e l i s t a n d r e u s e t h e m * / 00236 00237 / * I n t e r n a l e r r o r n u m b e r s ( f o r a s s e m b l e r f u n c t i o n s ) * / 00238 00239 # d e f i n e M Y _ E R R N O _ E D O M 3 3 00240 00241 # d e f i n e M Y _ E R R N O _ E R A N G E 3 4 00242 00243 / * B i t s f o r g e t _ d a t e t i m e f l a g * / 00244 00245 # d e f i n e G E T D A T E _ D A T E _ T I M E 1 00246 00247 # d e f i n e G E T D A T E _ S H O R T _ D A T E 2 00248 00249 # d e f i n e G E T D A T E _ H H M M S S T I M E 4 00250 00251 # d e f i n e G E T D A T E _ G M T 8 00252 00253 # d e f i n e G E T D A T E _ F I X E D L E N G T H 1 6 00254 00255 / * d e f i n e s w h e n a l l o c a t i n g d a t a * / 00256 00257 # i f d e f S A F E M A L L O C 00258 00259 # d e f i n e m y _ m a l l o c ( S Z , F L A G ) _ m y m a l l o c ( ( S Z ) , _ _ F I L E _ _ , _ _ L I N E _ _ , F L A G ) 00260 00261 # d e f i n e m y _ m a l l o c _ c i ( S Z , F L A G ) _ m y m a l l o c ( ( S Z ) , s F i l e , u L i n e , F L A G ) 00262 00263 # d e f i n e m y _ r e a l l o c ( P T R , S Z , F L A G ) _ m y r e a l l o c ( ( P T R ) , ( S Z ) , _ _ F I L E _ _ , _ _ L I N E _ _ , F L A G ) 00264 00265 # d e f i n e m y _ c h e c k m a l l o c ( ) _ s a n i t y ( _ _ F I L E _ _ , _ _ L I N E _ _ ) 00266 00267 # d e f i n e m y _ f r e e ( P T R , F L A G ) _ m y f r e e ( ( P T R ) , _ _ F I L E _ _ , _ _ L I N E _ _ , F L A G ) 00268 00269 # d e f i n e m y _ m e m d u p ( A , B , C ) _ m y _ m e m d u p ( ( A ) , ( B ) , _ _ F I L E _ _ , _ _ L I N E _ _ , C ) 00270 00271 # d e f i n e m y _ s t r d u p ( A , C ) _ m y _ s t r d u p ( ( A ) , _ _ F I L E _ _ , _ _ L I N E _ _ , C ) 00272 00273 # d e f i n e m y _ s t r n d u p ( A , B , C ) _ m y _ s t r n d u p ( ( A ) , ( B ) , _ _ F I L E _ _ , _ _ L I N E _ _ , C ) 00274 00275 # d e f i n e Q U I C K _ S A F E M A L L O C s f _ m a l l o c _ q u i c k = 1 00276 00277 # d e f i n e N O R M A L _ S A F E M A L L O C s f _ m a l l o c _ q u i c k = 0 00278 00279 e x t e r n u i n t s f _ m a l l o c _ p r e h u n c , s f _ m a l l o c _ e n d h u n c , s f _ m a l l o c _ q u i c k ; 00280 00281 e x t e r n u l o n g l o n g s f _ m a l l o c _ m e m _ l i m i t ; 00282 00283 # d e f i n e C A L L E R _ I N F O _ P R O T O , c o n s t c h a r * s F i l e , u i n t u L i n e 00284 00285 # d e f i n e C A L L E R _ I N F O , _ _ F I L E _ _ , _ _ L I N E _ _ 00286 00287 # d e f i n e O R I G _ C A L L E R _ I N F O , s F i l e , u L i n e 00288 00289 # e l s e 00290 00291 # d e f i n e m y _ c h e c k m a l l o c ( ) 00292 00293 # u n d e f T E R M I N A T E 00294 00295 # d e f i n e T E R M I N A T E ( A , B ) { } 00296 00297 # d e f i n e Q U I C K _ S A F E M A L L O C 00298 00299 # d e f i n e N O R M A L _ S A F E M A L L O C 00300 00301 e x t e r n v o i d * m y _ m a l l o c ( s i z e _ t S i z e , m y f M y F l a g s ) ; 00302 00303 # d e f i n e m y _ m a l l o c _ c i ( S Z , F L A G ) m y _ m a l l o c ( S Z , F L A G ) 00304 00305 e x t e r n v o i d * m y _ r e a l l o c ( v o i d * o l d p o i n t , s i z e _ t S i z e , m y f M y F l a g s ) ; 00306 00307 e x t e r n v o i d m y _ n o _ f l a g s _ f r e e ( v o i d * p t r ) ; 00308 00309 e x t e r n v o i d * m y _ m e m d u p ( c o n s t v o i d * f r o m , s i z e _ t l e n g t h , m y f M y F l a g s ) ; 00310 00311 e x t e r n c h a r * m y _ s t r d u p ( c o n s t c h a r * f r o m , m y f M y F l a g s ) ; 00312 00313 e x t e r n c h a r * m y _ s t r n d u p ( c o n s t c h a r * f r o m , s i z e _ t l e n g t h , 00314 00315 m y f M y F l a g s ) ; 00316 00317 / * w e d o u s e F G ( a s a n o - o p ) i n b e l o w s o t h a t a t y p o o n F G i s c a u g h t * / 00318 00319 # d e f i n e m y _ f r e e ( P T R , F G ) ( ( v o i d ) F G , m y _ n o _ f l a g s _ f r e e ( P T R ) ) 00320 00321 # d e f i n e C A L L E R _ I N F O _ P R O T O / * n o t h i n g * / 00322 00323 # d e f i n e C A L L E R _ I N F O / * n o t h i n g * / 00324 00325 # d e f i n e O R I G _ C A L L E R _ I N F O / * n o t h i n g * / 00326 00327 # e n d i f 00328 00329 / * 00330 00331 E R R O R I N J E C T I O N : N o n - t h r e a d - s a f e g l o b a l v a r i a b l e t o r e q u e s t e r r o r i n j e c t . 00332 00333 S e t t h i s v a r i a b l e t o n o n - z e r o t o r e q u e s t t h e n e x t m y _ m a l l o c ( ) t o f a i l . 00334 00335 T h i s w o r k s w i t h m y _ m a l l o c . c : m y _ m a l l o c ( ) a n d s a f e m a l l o c . c : _ m y m a l l o c ( ) . 00336 00337 I f u s i n g t h i s i n t e s t s , n o t e t h a t t h e e r r o r m e s s a g e s p r o d u c e d b y 00338 00339 m y _ m a l l o c a n d s a f e m a l l o c a r e d i f f e r e n t . Y o u m a y n e e d t o m o d i f y t h e 00340 00341 r e s u l t s w i t h - - r e p l a c e _ r e g e x . Y o u m a y f i n d e x a m p l e s i n 00342 00343 c l i e n t / b a c k u p _ s t r e a m . c a n d b a c k u p _ c l i e n t _ c o v e r a g e . t e s t . 00344 00345 T h e g l o b a l v a r i a b l e i s d e f i n e d i n m y _ s t a t i c . c . 00346 00347 * / 00348 00349 I F _ D B U G ( e x t e r n i n t m y _ m a l l o c _ e r r o r _ i n j e c t ) ; 00350 00351 # i f d e f H A V E _ L A R G E _ P A G E S 00352 00353 e x t e r n u i n t m y _ g e t _ l a r g e _ p a g e _ s i z e ( v o i d ) ; 00354 00355 e x t e r n u c h a r * m y _ l a r g e _ m a l l o c ( s i z e _ t s i z e , m y f m y _ f l a g s ) ; 00356 00357 e x t e r n v o i d m y _ l a r g e _ f r e e ( u c h a r * p t r , m y f m y _ f l a g s ) ; 00358 00359 # e l s e 00360 00361 # d e f i n e m y _ g e t _ l a r g e _ p a g e _ s i z e ( ) ( 0 ) 00362 00363 # d e f i n e m y _ l a r g e _ m a l l o c ( A , B ) m y _ m a l l o c _ l o c k ( ( A ) , ( B ) ) 00364 00365 # d e f i n e m y _ l a r g e _ f r e e ( A , B ) m y _ f r e e _ l o c k ( ( A ) , ( B ) ) 00366 00367 # e n d i f / * H A V E _ L A R G E _ P A G E S * / 00368 00369 # i f d e f H A V E _ A L L O C A 00370 00371 # i f d e f i n e d ( _ A I X ) & & ! d e f i n e d ( _ _ G N U C _ _ ) & & ! d e f i n e d ( _ A I X 4 3 ) 00372 00373 # p r a g m a a l l o c a 00374 00375 # e n d i f / * _ A I X * / 00376 00377 # i f d e f i n e d ( _ _ M W E R K S _ _ ) 00378 00379 # u n d e f a l l o c a 00380 00381 # d e f i n e a l l o c a _ a l l o c a 00382 00383 # e n d i f / * _ _ M W E R K S _ _ * / 00384 00385 # i f d e f i n e d ( _ _ G N U C _ _ ) & & ! d e f i n e d ( H A V E _ A L L O C A _ H ) & & ! d e f i n e d ( a l l o c a ) 00386 00387 # d e f i n e a l l o c a _ _ b u i l t i n _ a l l o c a 00388 00389 # e n d i f / * G N U C * / 00390 00391 # d e f i n e m y _ a l l o c a ( S Z ) a l l o c a ( ( s i z e _ t ) ( S Z ) ) 00392 00393 # d e f i n e m y _ a f r e e ( P T R ) { } 00394 00395 # e l s e 00396 00397 # d e f i n e m y _ a l l o c a ( S Z ) m y _ m a l l o c ( S Z , M Y F ( 0 ) ) 00398 00399 # d e f i n e m y _ a f r e e ( P T R ) m y _ f r e e ( P T R , M Y F ( M Y _ W M E ) ) 00400 00401 # e n d i f / * H A V E _ A L L O C A * / 00402 00403 # i f n d e f e r r n o / * d i d w e a l r e a d y g e t i t ? * / 00404 00405 # i f d e f H A V E _ E R R N O _ A S _ D E F I N E 00406 00407 # i n c l u d e < e r r n o . h > / * e r r n o i s a d e f i n e * / 00408 00409 # e l s e 00410 00411 e x t e r n i n t e r r n o ; / * d e c l a r e e r r n o * / 00412 00413 # e n d i f 00414 00415 # e n d i f / * # i f n d e f e r r n o * / 00416 00417 e x t e r n c h a r * h o m e _ d i r ; / * H o m e d i r e c t o r y f o r u s e r * / 00418 00419 e x t e r n c o n s t c h a r * m y _ p r o g n a m e ; / * p r o g r a m - n a m e ( p r i n t e d i n e r r o r s ) * / 00420 00421 e x t e r n c o n s t c h a r * m y _ p r o g n a m e _ s h o r t ; / * l i k e a b o v e b u t w i t h o u t d i r e c t o r y * / 00422 00423 e x t e r n c h a r N E A R c u r r _ d i r [ ] ; / * C u r r e n t d i r e c t o r y f o r u s e r * / 00424 00425 e x t e r n v o i d ( * e r r o r _ h a n d l e r _ h o o k ) ( u i n t m y _ e r r , c o n s t c h a r * s t r , m y f M y F l a g s ) ; 00426 00427 e x t e r n v o i d ( * f a t a l _ e r r o r _ h a n d l e r _ h o o k ) ( u i n t m y _ e r r , c o n s t c h a r * s t r , 00428 00429 m y f M y F l a g s ) ; 00430 00431 e x t e r n u i n t m y _ f i l e _ l i m i t ; 00432 00433 e x t e r n u l o n g m y _ t h r e a d _ s t a c k _ s i z e ; 00434 00435 e x t e r n c o n s t c h a r * ( * p r o c _ i n f o _ h o o k ) ( v o i d * , c o n s t c h a r * , c o n s t c h a r * , 00436 00437 c o n s t c h a r * , c o n s t u n s i g n e d i n t ) ; 00438 00439 # i f d e f i n e d ( E N A B L E D _ D E B U G _ S Y N C ) 00440 00441 e x t e r n v o i d ( * d e b u g _ s y n c _ C _ c a l l b a c k _ p t r ) ( c o n s t c h a r * , s i z e _ t ) ; 00442 00443 # d e f i n e D E B U G _ S Y N C _ C ( _ s y n c _ p o i n t _ n a m e _ ) d o { \ 00444 00445 i f ( d e b u g _ s y n c _ C _ c a l l b a c k _ p t r ! = N U L L ) \ 00446 00447 ( * d e b u g _ s y n c _ C _ c a l l b a c k _ p t r ) ( S T R I N G _ W I T H _ L E N ( _ s y n c _ p o i n t _ n a m e _ ) ) ; } \ 00448 00449 w h i l e ( 0 ) 00450 00451 # e l s e 00452 00453 # d e f i n e D E B U G _ S Y N C _ C ( _ s y n c _ p o i n t _ n a m e _ ) 00454 00455 # e n d i f / * d e f i n e d ( E N A B L E D _ D E B U G _ S Y N C ) * / 00456 00457 # i f d e f H A V E _ L A R G E _ P A G E S 00458 00459 e x t e r n m y _ b o o l m y _ u s e _ l a r g e _ p a g e s ; 00460 00461 e x t e r n u i n t m y _ l a r g e _ p a g e _ s i z e ; 00462 00463 # e n d i f 00464 00465 / * c h a r s e t s * / 00466 00467 # d e f i n e M Y _ A L L _ C H A R S E T S _ S I Z E 2 0 4 8 00468 00469 e x t e r n M Y S Q L _ P L U G I N _ I M P O R T C H A R S E T _ I N F O * d e f a u l t _ c h a r s e t _ i n f o ; 00470 00471 e x t e r n M Y S Q L _ P L U G I N _ I M P O R T C H A R S E T _ I N F O * a l l _ c h a r s e t s [ M Y _ A L L _ C H A R S E T S _ S I Z E ] ; 00472 00473 e x t e r n C H A R S E T _ I N F O c o m p i l e d _ c h a r s e t s [ ] ; 00474 00475 / * s t a t i s t i c s * / 00476 00477 e x t e r n u l o n g m y _ f i l e _ o p e n e d , m y _ s t r e a m _ o p e n e d , m y _ t m p _ f i l e _ c r e a t e d ; 00478 00479 e x t e r n u l o n g m y _ f i l e _ t o t a l _ o p e n e d ; 00480 00481 e x t e r n u i n t m y s y s _ u s a g e _ i d ; 00482 00483 e x t e r n m y _ b o o l m y _ i n i t _ d o n e ; 00484 00485 / * P o i n t t o c u r r e n t m y _ m e s s a g e ( ) * / 00486 00487 e x t e r n v o i d ( * m y _ s i g t s t p _ c l e a n u p ) ( v o i d ) , 00488 00489 / * E x e c u t e d b e f o r e j u m p t o s h e l l * / 00490 00491 ( * m y _ s i g t s t p _ r e s t a r t ) ( v o i d ) , 00492 00493 ( * m y _ a b o r t _ h o o k ) ( i n t ) ; 00494 00495 / * E x e c u t e d w h e n c o m m i n g f r o m s h e l l * / 00496 00497 e x t e r n M Y S Q L _ P L U G I N _ I M P O R T i n t N E A R m y _ u m a s k ; / * D e f a u l t c r e a t i o n m a s k * / 00498 00499 e x t e r n i n t N E A R m y _ u m a s k _ d i r , 00500 00501 N E A R m y _ r e c i v e d _ s i g n a l s , / * S i g n a l s w e h a v e g o t * / 00502 00503 N E A R m y _ s a f e _ t o _ h a n d l e _ s i g n a l , / * S e t w h e n a l l o w e d t o S I G T S T P * / 00504 00505 N E A R m y _ d o n t _ i n t e r r u p t ; / * c a l l r e m e m b e r _ i n t r w h e n s e t * / 00506 00507 e x t e r n m y _ b o o l N E A R m y s y s _ u s e s _ c u r s e s , m y _ u s e _ s y m d i r ; 00508 00509 e x t e r n s i z e _ t s f _ m a l l o c _ c u r _ m e m o r y , s f _ m a l l o c _ m a x _ m e m o r y ; 00510 00511 e x t e r n u l o n g m y _ d e f a u l t _ r e c o r d _ c a c h e _ s i z e ; 00512 00513 e x t e r n m y _ b o o l N E A R m y _ d i s a b l e _ l o c k i n g , N E A R m y _ d i s a b l e _ a s y n c _ i o , 00514 00515 N E A R m y _ d i s a b l e _ f l u s h _ k e y _ b l o c k s , N E A R m y _ d i s a b l e _ s y m l i n k s ; 00516 00517 e x t e r n c h a r w i l d _ m a n y , w i l d _ o n e , w i l d _ p r e f i x ; 00518 00519 e x t e r n c o n s t c h a r * c h a r s e t s _ d i r ; 00520 00521 / * f r o m d e f a u l t . c * / 00522 00523 e x t e r n c h a r * m y _ d e f a u l t s _ e x t r a _ f i l e ; 00524 00525 e x t e r n c o n s t c h a r * m y _ d e f a u l t s _ g r o u p _ s u f f i x ; 00526 00527 e x t e r n c o n s t c h a r * m y _ d e f a u l t s _ f i l e ; 00528 00529 e x t e r n m y _ b o o l t i m e d _ m u t e x e s ; 00530 00531 t y p e d e f s t r u c t w i l d _ f i l e _ p a c k / * S t r u c t t o h o l d i n f o w h e n s e l e c t i n g f i l e s * / 00532 00533 { 00534 00535 u i n t w i l d s ; / * H o w m a n y w i l d c a r d s * / 00536 00537 u i n t n o t _ p o s ; / * S t a r t o f n o t - t h e e s e - f i l e s * / 00538 00539 c h a r * * w i l d ; / * P o i n t e r t o w i l d c a r d s * / 00540 00541 } W F _ P A C K ; 00542 00543 e n u m l o g l e v e l { 00544 00545 E R R O R _ L E V E L , 00546 00547 W A R N I N G _ L E V E L , 00548 00549 I N F O R M A T I O N _ L E V E L 00550 00551 } ; 00552 00553 e n u m c a c h e _ t y p e 00554 00555 { 00556 00557 T Y P E _ N O T _ S E T = 0 , R E A D _ C A C H E , W R I T E _ C A C H E , 00558 00559 S E Q _ R E A D _ A P P E N D / * s e q u e n t i a l r e a d o r a p p e n d * / , 00560 00561 R E A D _ F I F O , R E A D _ N E T , W R I T E _ N E T } ; 00562 00563 e n u m f l u s h _ t y p e 00564 00565 { 00566 00567 F L U S H _ K E E P , / * f l u s h b l o c k a n d k e e p i t i n t h e c a c h e * / 00568 00569 F L U S H _ R E L E A S E , / * f l u s h b l o c k a n d r e m o v e i t f r o m t h e c a c h e * / 00570 00571 F L U S H _ I G N O R E _ C H A N G E D , / * r e m o v e b l o c k f r o m t h e c a c h e * / 00572 00573 / * 00574 00575 A s m y _ d i s a b l e _ f l u s h _ p a g e c a c h e _ b l o c k s i s a l w a y s 0 , t h e f o l l o w i n g o p t i o n 00576 00577 i s s t r i c t l y e q u i v a l e n t t o F L U S H _ K E E P 00578 00579 * / 00580 00581 F L U S H _ F O R C E _ W R I T E , 00582 00583 / * * 00584 00585 @ b r i e f l i k e F L U S H _ K E E P b u t r e t u r n i m m e d i a t e l y i f f i l e i s a l r e a d y b e i n g 00586 00587 f l u s h e d ( e v e n p a r t i a l l y ) b y a n o t h e r t h r e a d ; o n l y f o r p a g e c a c h e , 00588 00589 f o r b i d d e n f o r k e y c a c h e . 00590 00591 * / 00592 00593 F L U S H _ K E E P _ L A Z Y 00594 00595 } ; 00596 00597 t y p e d e f s t r u c t s t _ r e c o r d _ c a c h e / * U s e d w h e n c a c h e i n g r e c o r d s * / 00598 00599 { 00600 00601 F i l e f i l e ; 00602 00603 i n t r c _ s e e k , e r r o r , i n i t e d ; 00604 00605 u i n t r c _ l e n g t h , r e a d _ l e n g t h , r e c l e n g t h ; 00606 00607 m y _ o f f _ t r c _ r e c o r d _ p o s , e n d _ o f _ f i l e ; 00608 00609 u c h a r * r c _ b u f f , * r c _ b u f f 2 , * r c _ p o s , * r c _ e n d , * r c _ r e q u e s t _ p o s ; 00610 00611 # i f d e f H A V E _ A I O W A I T 00612 00613 i n t u s e _ a s y n c _ i o ; 00614 00615 m y _ a i o _ r e s u l t a i o _ r e s u l t ; 00616 00617 # e n d i f 00618 00619 e n u m c a c h e _ t y p e t y p e ; 00620 00621 } R E C O R D _ C A C H E ; 00622 00623 e n u m f i l e _ t y p e 00624 00625 { 00626 00627 U N O P E N = 0 , F I L E _ B Y _ O P E N , F I L E _ B Y _ C R E A T E , S T R E A M _ B Y _ F O P E N , S T R E A M _ B Y _ F D O P E N , 00628 00629 F I L E _ B Y _ M K S T E M P , F I L E _ B Y _ D U P 00630 00631 } ; 00632 00633 s t r u c t s t _ m y _ f i l e _ i n f o 00634 00635 { 00636 00637 c h a r * n a m e ; 00638 00639 # i f d e f _ W I N 3 2 00640 00641 H A N D L E f h a n d l e ; / * w i n 3 2 f i l e h a n d l e * / 00642 00643 i n t o f l a g ; / * o p e n f l a g s , e . g O _ A P P E N D * / 00644 00645 # e n d i f 00646 00647 e n u m f i l e _ t y p e t y p e ; 00648 00649 # i f d e f i n e d ( T H R E A D ) & & ! d e f i n e d ( H A V E _ P R E A D ) & & ! d e f i n e d ( _ W I N 3 2 ) 00650 00651 p t h r e a d _ m u t e x _ t m u t e x ; 00652 00653 # e n d i f 00654 00655 } ; 00656 00657 e x t e r n s t r u c t s t _ m y _ f i l e _ i n f o * m y _ f i l e _ i n f o ; 00658 00659 t y p e d e f s t r u c t s t _ d y n a m i c _ a r r a y 00660 00661 { 00662 00663 u c h a r * b u f f e r ; 00664 00665 u i n t e l e m e n t s , m a x _ e l e m e n t ; 00666 00667 u i n t a l l o c _ i n c r e m e n t ; 00668 00669 u i n t s i z e _ o f _ e l e m e n t ; 00670 00671 } D Y N A M I C _ A R R A Y ; 00672 00673 t y p e d e f s t r u c t s t _ m y _ t m p d i r 00674 00675 { 00676 00677 D Y N A M I C _ A R R A Y f u l l _ l i s t ; 00678 00679 c h a r * * l i s t ; 00680 00681 u i n t c u r , m a x ; 00682 00683 # i f d e f T H R E A D 00684 00685 p t h r e a d _ m u t e x _ t m u t e x ; 00686 00687 # e n d i f 00688 00689 } M Y _ T M P D I R ; 00690 00691 t y p e d e f s t r u c t s t _ d y n a m i c _ s t r i n g 00692 00693 { 00694 00695 c h a r * s t r ; 00696 00697 s i z e _ t l e n g t h , m a x _ l e n g t h , a l l o c _ i n c r e m e n t ; 00698 00699 } D Y N A M I C _ S T R I N G ; 00700 00701 s t r u c t s t _ i o _ c a c h e ; 00702 00703 / * * F u n c t i o n c a l l e d w h e n c e r t a i n e v e n t s h a p p e n t o a n I O _ C A C H E * / 00704 00705 t y p e d e f i n t ( * I O _ C A C H E _ C A L L B A C K ) ( s t r u c t s t _ i o _ c a c h e * c a c h e , 00706 00707 c o n s t u c h a r * b u f f e r t , u i n t l e n g t h , 00708 00709 m y _ o f f _ t f i l e p o s ) ; 00710 00711 # i f d e f T H R E A D 00712 00713 t y p e d e f s t r u c t s t _ i o _ c a c h e _ s h a r e 00714 00715 { 00716 00717 p t h r e a d _ m u t e x _ t m u t e x ; / * T o s y n c o n r e a d s i n t o b u f f e r . * / 00718 00719 p t h r e a d _ c o n d _ t c o n d ; / * T o w a i t f o r s i g n a l s . * / 00720 00721 p t h r e a d _ c o n d _ t c o n d _ w r i t e r ; / * F o r a s y n c h r o n i z e d w r i t e r . * / 00722 00723 / * O f f s e t i n f i l e c o r r e s p o n d i n g t o t h e f i r s t b y t e o f b u f f e r . * / 00724 00725 m y _ o f f _ t p o s _ i n _ f i l e ; 00726 00727 / * I f a s y n c h r o n i z e d w r i t e c a c h e i s t h e s o u r c e o f t h e d a t a . * / 00728 00729 s t r u c t s t _ i o _ c a c h e * s o u r c e _ c a c h e ; 00730 00731 u c h a r * b u f f e r ; / * T h e r e a d b u f f e r . * / 00732 00733 u c h a r * r e a d _ e n d ; / * B e h i n d l a s t v a l i d b y t e o f b u f f e r . * / 00734 00735 i n t r u n n i n g _ t h r e a d s ; / * t h r e a d s n o t i n l o c k . * / 00736 00737 i n t t o t a l _ t h r e a d s ; / * t h r e a d s s h a r i n g t h e c a c h e . * / 00738 00739 i n t e r r o r ; / * L a s t e r r o r . * / 00740 00741 # i f d e f N O T _ Y E T _ I M P L E M E N T E D 00742 00743 / * w h e t h e r t h e s t r u c t u r e s h o u l d b e f r e e ' d * / 00744 00745 m y _ b o o l a l l o c e d ; 00746 00747 # e n d i f 00748 00749 } I O _ C A C H E _ S H A R E ; 00750 00751 # e n d i f 00752 00753 t y p e d e f s t r u c t s t _ i o _ c a c h e / * U s e d w h e n c a c h e i n g f i l e s * / 00754 00755 { 00756 00757 / * O f f s e t i n f i l e c o r r e s p o n d i n g t o t h e f i r s t b y t e o f u c h a r * b u f f e r . * / 00758 00759 m y _ o f f _ t p o s _ i n _ f i l e ; 00760 00761 / * 00762 00763 T h e o f f s e t o f e n d o f f i l e f o r R E A D _ C A C H E a n d W R I T E _ C A C H E . 00764 00765 F o r S E Q _ R E A D _ A P P E N D i t t h e m a x i m u m o f t h e a c t u a l e n d o f f i l e a n d 00766 00767 t h e p o s i t i o n r e p r e s e n t e d b y r e a d _ e n d . 00768 00769 * / 00770 00771 m y _ o f f _ t e n d _ o f _ f i l e ; 00772 00773 / * P o i n t s t o c u r r e n t r e a d p o s i t i o n i n t h e b u f f e r * / 00774 00775 u c h a r * r e a d _ p o s ; 00776 00777 / * t h e n o n - i n c l u s i v e b o u n d a r y i n t h e b u f f e r f o r t h e c u r r e n t l y v a l i d r e a d * / 00778 00779 u c h a r * r e a d _ e n d ; 00780 00781 u c h a r * b u f f e r ; / * T h e r e a d b u f f e r * / 00782 00783 / * U s e d i n A S Y N C _ I O * / 00784 00785 u c h a r * r e q u e s t _ p o s ; 00786 00787 / * O n l y u s e d i n W R I T E c a c h e s a n d i n S E Q _ R E A D _ A P P E N D t o b u f f e r w r i t e s * / 00788 00789 u c h a r * w r i t e _ b u f f e r ; 00790 00791 / * 00792 00793 O n l y u s e d i n S E Q _ R E A D _ A P P E N D , a n d p o i n t s t o t h e c u r r e n t r e a d p o s i t i o n 00794 00795 i n t h e w r i t e b u f f e r . N o t e t h a t r e a d s i n S E Q _ R E A D _ A P P E N D c a c h e s c a n 00796 00797 h a p p e n f r o m b o t h r e a d b u f f e r ( u c h a r * b u f f e r ) a n d w r i t e b u f f e r 00798 00799 ( u c h a r * w r i t e _ b u f f e r ) . 00800 00801 * / 00802 00803 u c h a r * a p p e n d _ r e a d _ p o s ; 00804 00805 / * P o i n t s t o c u r r e n t w r i t e p o s i t i o n i n t h e w r i t e b u f f e r * / 00806 00807 u c h a r * w r i t e _ p o s ; 00808 00809 / * T h e n o n - i n c l u s i v e b o u n d a r y o f t h e v a l i d w r i t e a r e a * / 00810 00811 u c h a r * w r i t e _ e n d ; 00812 00813 / * 00814 00815 C u r r e n t _ p o s a n d c u r r e n t _ e n d a r e c o n v e n i e n c e v a r i a b l e s u s e d b y 00816 00817 m y _ b _ t e l l ( ) a n d o t h e r r o u t i n e s t h a t n e e d t o k n o w t h e c u r r e n t o f f s e t 00818 00819 c u r r e n t _ p o s p o i n t s t o & w r i t e _ p o s , a n d c u r r e n t _ e n d t o & w r i t e _ e n d i n a 00820 00821 W R I T E _ C A C H E , a n d & r e a d _ p o s a n d & r e a d _ e n d r e s p e c t i v e l y o t h e r w i s e 00822 00823 * / 00824 00825 u c h a r * * c u r r e n t _ p o s , * * c u r r e n t _ e n d ; 00826 00827 # i f d e f T H R E A D 00828 00829 / * 00830 00831 T h e l o c k i s f o r a p p e n d b u f f e r u s e d i n S E Q _ R E A D _ A P P E N D c a c h e 00832 00833 n e e d m u t e x c o p y i n g f r o m a p p e n d b u f f e r t o r e a d b u f f e r . 00834 00835 * / 00836 00837 p t h r e a d _ m u t e x _ t a p p e n d _ b u f f e r _ l o c k ; 00838 00839 / * 00840 00841 T h e f o l l o w i n g i s u s e d w h e n s e v e r a l t h r e a d s a r e r e a d i n g t h e 00842 00843 s a m e f i l e i n p a r a l l e l . T h e y a r e s y n c h r o n i z e d o n d i s k 00844 00845 a c c e s s e s r e a d i n g t h e c a c h e d p a r t o f t h e f i l e a s y n c h r o n o u s l y . 00846 00847 I t s h o u l d b e s e t t o N U L L t o d i s a b l e t h e f e a t u r e . O n l y 00848 00849 R E A D _ C A C H E m o d e i s s u p p o r t e d . 00850 00851 * / 00852 00853 I O _ C A C H E _ S H A R E * s h a r e ; 00854 00855 # e n d i f 00856 00857 / * 00858 00859 A c a l l e r w i l l u s e m y _ b _ r e a d ( ) m a c r o t o r e a d f r o m t h e c a c h e 00860 00861 i f t h e d a t a i s a l r e a d y i n c a c h e , i t w i l l b e s i m p l y c o p i e d w i t h 00862 00863 m e m c p y ( ) a n d i n t e r n a l v a r i a b l e s w i l l b e a c c o r d i n g i n g u p d a t e d w i t h 00864 00865 n o f u n c t i o n s i n v o k e d . H o w e v e r , i f t h e d a t a i s n o t f u l l y i n t h e c a c h e , 00866 00867 m y _ b _ r e a d ( ) w i l l c a l l r e a d _ f u n c t i o n t o f e t c h t h e d a t a . r e a d _ f u n c t i o n 00868 00869 m u s t n e v e r b e i n v o k e d d i r e c t l y . 00870 00871 * / 00872 00873 i n t ( * r e a d _ f u n c t i o n ) ( s t r u c t s t _ i o _ c a c h e * , u c h a r * , s i z e _ t ) ; 00874 00875 / * 00876 00877 S a m e i d e a a s i n t h e c a s e o f r e a d _ f u n c t i o n , e x c e p t m y _ b _ w r i t e ( ) n e e d s t o 00878 00879 b e r e p l a c e d w i t h m y _ b _ a p p e n d ( ) f o r a S E Q _ R E A D _ A P P E N D c a c h e 00880 00881 * / 00882 00883 i n t ( * w r i t e _ f u n c t i o n ) ( s t r u c t s t _ i o _ c a c h e * , c o n s t u c h a r * , s i z e _ t ) ; 00884 00885 / * 00886 00887 S p e c i f i e s t h e t y p e o f t h e c a c h e . D e p e n d i n g o n t h e t y p e o f t h e c a c h e 00888 00889 c e r t a i n o p e r a t i o n s m i g h t n o t b e a v a i l a b l e a n d y i e l d u n p r e d i c a t a b l e 00890 00891 r e s u l t s . D e t a i l s t o b e d o c u m e n t e d l a t e r 00892 00893 * / 00894 00895 e n u m c a c h e _ t y p e t y p e ; 00896 00897 / * 00898 00899 C a l l b a c k s w e r e a d d e d a n d a r e c u r r e n t l y u s e d f o r b i n a r y l o g g i n g o f L O A D 00900 00901 D A T A I N F I L E - w h e n a b l o c k i s r e a d f r o m t h e f i l e , w e c r e a t e a b l o c k 00902 00903 c r e a t e / a p p e n d e v e n t , a n d w h e n I O _ C A C H E i s c l o s e d , w e c r e a t e a n e n d e v e n t ; 00904 00905 a l s o u s e d t o w r i t e t h e M y I S A M W R I T E _ C A C H E b l o c k s t o t h e M y I S A M p h y s i c a l 00906 00907 l o g . T h e s e f u n c t i o n s c o u l d , o f c o u r s e b e u s e d f o r o t h e r t h i n g s . N o t e : s o m e 00908 00909 c a l l b a c k s s h a r e t h e s a m e a r g u m e n t ( " a r g " ) . 00910 00911 * / 00912 00913 I O _ C A C H E _ C A L L B A C K p r e _ r e a d ; / * * < c a l l e d b e f o r e r e a d i n g f r o m d i s k * / 00914 00915 I O _ C A C H E _ C A L L B A C K p o s t _ r e a d ; / * * < c a l l e d a f t e r r e a d i n g f r o m d i s k * / 00916 00917 I O _ C A C H E _ C A L L B A C K p r e _ c l o s e ; / * * < c a l l e d b e f o r e e n d i n g t h e c a c h e * / 00918 00919 / * * C a l l e d _ a f t e r _ w r i t i n g t o d i s k ; n o t h o n o u r e d b y S E Q _ R E A D _ A P P E N D * / 00920 00921 I O _ C A C H E _ C A L L B A C K p o s t _ w r i t e ; 00922 00923 / * 00924 00925 C o u n t s t h e n u m b e r o f t i m e s , w h e n w e w e r e f o r c e d t o u s e d i s k . W e u s e i t t o 00926 00927 i n c r e a s e t h e b i n l o g _ c a c h e _ d i s k _ u s e s t a t u s v a r i a b l e . 00928 00929 * / 00930 00931 u l o n g d i s k _ w r i t e s ; 00932 00933 v o i d * a r g ; / * * < u s e d b y p r e / p o s t _ r e a d , p o s t _ w r i t e * / 00934 00935 c h a r * f i l e _ n a m e ; / * i f u s e d w i t h ' o p e n _ c a c h e d _ f i l e ' * / 00936 00937 c h a r * d i r , * p r e f i x ; 00938 00939 F i l e f i l e ; / * f i l e d e s c r i p t o r * / 00940 00941 / * 00942 00943 s e e k _ n o t _ d o n e i s s e t b y m y _ b _ s e e k ( ) t o i n f o r m t h e u p c o m i n g r e a d / w r i t e 00944 00945 o p e r a t i o n t h a t a s e e k n e e d s t o b e p r e f o r m e d p r i o r t o t h e a c t u a l I / O 00946 00947 e r r o r i s 0 i f t h e c a c h e o p e r a t i o n w a s s u c c e s s f u l , - 1 i f t h e r e w a s a 00948 00949 " h a r d " e r r o r , a n d t h e a c t u a l n u m b e r o f I / O - e d b y t e s i f t h e r e a d / w r i t e w a s 00950 00951 p a r t i a l . 00952 00953 * / 00954 00955 i n t s e e k _ n o t _ d o n e , e r r o r ; 00956 00957 / * * 00958 00959 C u m u l a t i v e ' e r r o r ' s i n c e l a s t [ r e ] i n i t _ i o _ c a c h e ( ) . U s e f u l i f c a c h e ' s u s e r 00960 00961 p o l l s f o r e r r o r s o n l y o n c e i n a w h i l e . 00962 00963 * / 00964 00965 i n t h a r d _ w r i t e _ e r r o r _ i n _ t h e _ p a s t ; 00966 00967 / * b u f f e r _ l e n g t h i s m e m o r y s i z e a l l o c a t e d f o r b u f f e r o r w r i t e _ b u f f e r * / 00968 00969 s i z e _ t b u f f e r _ l e n g t h ; 00970 00971 / * r e a d _ l e n g t h i s t h e s a m e a s b u f f e r _ l e n g t h e x c e p t w h e n w e u s e a s y n c i o * / 00972 00973 s i z e _ t r e a d _ l e n g t h ; 00974 00975 m y f m y f l a g s ; / * F l a g s u s e d t o m y _ r e a d / m y _ w r i t e * / 00976 00977 / * 00978 00979 a l l o c e d _ b u f f e r i s 1 i f t h e b u f f e r w a s a l l o c a t e d b y i n i t _ i o _ c a c h e ( ) a n d 00980 00981 0 i f i t w a s s u p p l i e d b y t h e u s e r . 00982 00983 C u r r e n t l y R E A D _ N E T i s t h e o n l y o n e t h a t w i l l u s e a b u f f e r a l l o c a t e d 00984 00985 s o m e w h e r e e l s e 00986 00987 * / 00988 00989 m y _ b o o l a l l o c e d _ b u f f e r ; 00990 00991 # i f d e f H A V E _ A I O W A I T 00992 00993 / * 00994 00995 A s i n i d i c a t e d b y i f d e f , t h i s i s f o r a s y n c I / O , w h i c h i s n o t c u r r e n t l y 00996 00997 u s e d ( b e c a u s e i t ' s n o t r e l i a b l e o n a l l s y s t e m s ) 00998 00999 * / 01000 01001 u i n t i n i t e d ; 01002 01003 m y _ o f f _ t a i o _ r e a d _ p o s ; 01004 01005 m y _ a i o _ r e s u l t a i o _ r e s u l t ; 01006 01007 # e n d i f 01008 01009 } I O _ C A C H E ; 01010 01011 t y p e d e f i n t ( * q s o r t 2 _ c m p ) ( c o n s t v o i d * , c o n s t v o i d * , c o n s t v o i d * ) ; 01012 01013 / * d e f i n e s f o r m f _ i o c a c h e * / 01014 01015 / * T e s t i f b u f f e r i s i n i t e d * / 01016 01017 # d e f i n e m y _ b _ c l e a r ( i n f o ) ( i n f o ) - > b u f f e r = 0 01018 01019 # d e f i n e m y _ b _ i n i t e d ( i n f o ) ( i n f o ) - > b u f f e r 01020 01021 # d e f i n e m y _ b _ E O F I N T _ M I N 01022 01023 # d e f i n e m y _ b _ r e a d ( i n f o , B u f f e r , C o u n t ) \ 01024 01025 ( ( i n f o ) - > r e a d _ p o s + ( C o u n t ) < = ( i n f o ) - > r e a d _ e n d ? \ 01026 01027 ( m e m c p y ( B u f f e r , ( i n f o ) - > r e a d _ p o s , ( s i z e _ t ) ( C o u n t ) ) , \ 01028 01029 ( ( i n f o ) - > r e a d _ p o s + = ( C o u n t ) ) , 0 ) : \ 01030 01031 ( * ( i n f o ) - > r e a d _ f u n c t i o n ) ( ( i n f o ) , B u f f e r , C o u n t ) ) 01032 01033 # d e f i n e m y _ b _ w r i t e ( i n f o , B u f f e r , C o u n t ) \ 01034 01035 ( ( i n f o ) - > w r i t e _ p o s + ( C o u n t ) < = ( i n f o ) - > w r i t e _ e n d ? \ 01036 01037 ( m e m c p y ( ( i n f o ) - > w r i t e _ p o s , ( B u f f e r ) , ( s i z e _ t ) ( C o u n t ) ) , \ 01038 01039 ( ( i n f o ) - > w r i t e _ p o s + = ( C o u n t ) ) , 0 ) : \ 01040 01041 ( * ( i n f o ) - > w r i t e _ f u n c t i o n ) ( ( i n f o ) , ( B u f f e r ) , ( C o u n t ) ) ) 01042 01043 # d e f i n e m y _ b _ g e t ( i n f o ) \ 01044 01045 ( ( i n f o ) - > r e a d _ p o s ! = ( i n f o ) - > r e a d _ e n d ? \ 01046 01047 ( ( i n f o ) - > r e a d _ p o s + + , ( i n t ) ( u c h a r ) ( i n f o ) - > r e a d _ p o s [ - 1 ] ) : \ 01048 01049 _ m y _ b _ g e t ( i n f o ) ) 01050 01051 / * m y _ b _ w r i t e _ b y t e d o s n ' t h a v e a n y e r r - c h e c k * / 01052 01053 # d e f i n e m y _ b _ w r i t e _ b y t e ( i n f o , c h r ) \ 01054 01055 ( ( ( i n f o ) - > w r i t e _ p o s < ( i n f o ) - > w r i t e _ e n d ) ? \ 01056 01057 ( ( * ( i n f o ) - > w r i t e _ p o s + + ) = ( c h r ) ) : \ 01058 01059 ( _ m y _ b _ w r i t e ( i n f o , 0 , 0 ) , ( ( * ( i n f o ) - > w r i t e _ p o s + + ) = ( c h r ) ) ) ) 01060 01061 # d e f i n e m y _ b _ f i l l _ c a c h e ( i n f o ) \ 01062 01063 ( ( ( i n f o ) - > r e a d _ e n d = ( i n f o ) - > r e a d _ p o s ) , ( * ( i n f o ) - > r e a d _ f u n c t i o n ) ( i n f o , 0 , 0 ) ) 01064 01065 # d e f i n e m y _ b _ t e l l ( i n f o ) ( ( i n f o ) - > p o s _ i n _ f i l e + \ 01066 01067 ( s i z e _ t ) ( * ( i n f o ) - > c u r r e n t _ p o s - ( i n f o ) - > r e q u e s t _ p o s ) ) 01068 01069 # d e f i n e m y _ b _ g e t _ b u f f e r _ s t a r t ( i n f o ) ( i n f o ) - > r e q u e s t _ p o s 01070 01071 # d e f i n e m y _ b _ g e t _ b y t e s _ i n _ b u f f e r ( i n f o ) ( c h a r * ) ( i n f o ) - > r e a d _ e n d - \ 01072 01073 ( c h a r * ) m y _ b _ g e t _ b u f f e r _ s t a r t ( i n f o ) 01074 01075 # d e f i n e m y _ b _ g e t _ p o s _ i n _ f i l e ( i n f o ) ( i n f o ) - > p o s _ i n _ f i l e 01076 01077 / * t e l l w r i t e o f f s e t i n t h e S E Q _ A P P E N D c a c h e * / 01078 01079 i n t m y _ b _ c o p y _ t o _ f i l e ( I O _ C A C H E * c a c h e , F I L E * f i l e ) ; 01080 01081 m y _ o f f _ t m y _ b _ a p p e n d _ t e l l ( I O _ C A C H E * i n f o ) ; 01082 01083 m y _ o f f _ t m y _ b _ s a f e _ t e l l ( I O _ C A C H E * i n f o ) ; / * p i c k s t h e c o r r e c t t e l l ( ) * / 01084 01085 # d e f i n e m y _ b _ b y t e s _ i n _ c a c h e ( i n f o ) ( s i z e _ t ) ( * ( i n f o ) - > c u r r e n t _ e n d - \ 01086 01087 * ( i n f o ) - > c u r r e n t _ p o s ) 01088 01089 t y p e d e f u i n t 3 2 h a _ c h e c k s u m ; 01090 01091 e x t e r n h a _ c h e c k s u m m y _ c r c _ d b u g _ c h e c k ; 01092 01093 / * D e f i n e t h e t y p e o f f u n c t i o n t o b e p a s s e d t o p r o c e s s _ d e f a u l t _ o p t i o n _ f i l e s * / 01094 01095 t y p e d e f i n t ( * P r o c e s s _ o p t i o n _ f u n c ) ( v o i d * c t x , c o n s t c h a r * g r o u p _ n a m e , 01096 01097 c o n s t c h a r * o p t i o n ) ; 01098 01099 # i n c l u d e < m y _ a l l o c . h > 01100 01101 01102 01103 / * P r o t o t y p e s f o r m y s y s a n d m y _ f u n c f u n c t i o n s * / 01104 01105 e x t e r n i n t m y _ c o p y ( c o n s t c h a r * f r o m , c o n s t c h a r * t o , m y f M y F l a g s ) ; 01106 01107 e x t e r n i n t m y _ a p p e n d ( c o n s t c h a r * f r o m , c o n s t c h a r * t o , m y f M y F l a g s ) ; 01108 01109 e x t e r n i n t m y _ d e l e t e ( c o n s t c h a r * n a m e , m y f M y F l a g s ) ; 01110 01111 e x t e r n i n t m y _ g e t w d ( c h a r * b u f , s i z e _ t s i z e , m y f M y F l a g s ) ; 01112 01113 e x t e r n i n t m y _ s e t w d ( c o n s t c h a r * d i r , m y f M y F l a g s ) ; 01114 01115 e x t e r n i n t m y _ l o c k ( F i l e f d , i n t o p , m y _ o f f _ t s t a r t , m y _ o f f _ t l e n g t h , m y f M y F l a g s ) ; 01116 01117 e x t e r n v o i d * m y _ o n c e _ a l l o c ( s i z e _ t S i z e , m y f M y F l a g s ) ; 01118 01119 e x t e r n v o i d m y _ o n c e _ f r e e ( v o i d ) ; 01120 01121 e x t e r n c h a r * m y _ o n c e _ s t r d u p ( c o n s t c h a r * s r c , m y f m y f l a g s ) ; 01122 01123 e x t e r n v o i d * m y _ o n c e _ m e m d u p ( c o n s t v o i d * s r c , s i z e _ t l e n , m y f m y f l a g s ) ; 01124 01125 e x t e r n F i l e m y _ o p e n ( c o n s t c h a r * F i l e N a m e , i n t F l a g s , m y f M y F l a g s ) ; 01126 01127 e x t e r n F i l e m y _ r e g i s t e r _ f i l e n a m e ( F i l e f d , c o n s t c h a r * F i l e N a m e , 01128 01129 e n u m f i l e _ t y p e t y p e _ o f _ f i l e , 01130 01131 u i n t e r r o r _ m e s s a g e _ n u m b e r , m y f M y F l a g s ) ; 01132 01133 e x t e r n F i l e m y _ c r e a t e ( c o n s t c h a r * F i l e N a m e , i n t C r e a t e F l a g s , 01134 01135 i n t A c c e s s F l a g s , m y f M y F l a g s ) ; 01136 01137 e x t e r n i n t m y _ c l o s e ( F i l e F i l e d e s , m y f M y F l a g s ) ; 01138 01139 e x t e r n F i l e m y _ d u p ( F i l e f i l e , m y f M y F l a g s ) ; 01140 01141 e x t e r n i n t m y _ m k d i r ( c o n s t c h a r * d i r , i n t F l a g s , m y f M y F l a g s ) ; 01142 01143 e x t e r n i n t m y _ r e a d l i n k ( c h a r * t o , c o n s t c h a r * f i l e n a m e , m y f M y F l a g s ) ; 01144 01145 e x t e r n i n t m y _ i s _ s y m l i n k ( c o n s t c h a r * f i l e n a m e ) ; 01146 01147 e x t e r n i n t m y _ r e a l p a t h ( c h a r * t o , c o n s t c h a r * f i l e n a m e , m y f M y F l a g s ) ; 01148 01149 e x t e r n F i l e m y _ c r e a t e _ w i t h _ s y m l i n k ( c o n s t c h a r * l i n k n a m e , c o n s t c h a r * f i l e n a m e , 01150 01151 i n t c r e a t e f l a g s , i n t a c c e s s _ f l a g s , 01152 01153 m y f M y F l a g s ) ; 01154 01155 e x t e r n i n t m y _ d e l e t e _ w i t h _ s y m l i n k ( c o n s t c h a r * n a m e , m y f M y F l a g s ) ; 01156 01157 e x t e r n i n t m y _ r e n a m e _ w i t h _ s y m l i n k ( c o n s t c h a r * f r o m , c o n s t c h a r * t o , m y f M y F l a g s ) ; 01158 01159 e x t e r n i n t m y _ s y m l i n k ( c o n s t c h a r * c o n t e n t , c o n s t c h a r * l i n k n a m e , m y f M y F l a g s ) ; 01160 01161 e x t e r n s i z e _ t m y _ r e a d ( F i l e F i l e d e s , u c h a r * B u f f e r , s i z e _ t C o u n t , m y f M y F l a g s ) ; 01162 01163 e x t e r n s i z e _ t m y _ p r e a d ( F i l e F i l e d e s , u c h a r * B u f f e r , s i z e _ t C o u n t , m y _ o f f _ t o f f s e t , 01164 01165 m y f M y F l a g s ) ; 01166 01167 e x t e r n i n t m y _ r e n a m e ( c o n s t c h a r * f r o m , c o n s t c h a r * t o , m y f M y F l a g s ) ; 01168 01169 e x t e r n m y _ o f f _ t m y _ s e e k ( F i l e f d , m y _ o f f _ t p o s , i n t w h e n c e , m y f M y F l a g s ) ; 01170 01171 e x t e r n m y _ o f f _ t m y _ t e l l ( F i l e f d , m y f M y F l a g s ) ; 01172 01173 e x t e r n s i z e _ t m y _ w r i t e ( F i l e F i l e d e s , c o n s t u c h a r * B u f f e r , s i z e _ t C o u n t , 01174 01175 m y f M y F l a g s ) ; 01176 01177 e x t e r n s i z e _ t m y _ p w r i t e ( F i l e F i l e d e s , c o n s t u c h a r * B u f f e r , s i z e _ t C o u n t , 01178 01179 m y _ o f f _ t o f f s e t , m y f M y F l a g s ) ; 01180 01181 e x t e r n s i z e _ t m y _ f r e a d ( F I L E * s t r e a m , u c h a r * B u f f e r , s i z e _ t C o u n t , m y f M y F l a g s ) ; 01182 01183 e x t e r n s i z e _ t m y _ f w r i t e ( F I L E * s t r e a m , c o n s t u c h a r * B u f f e r , s i z e _ t C o u n t , 01184 01185 m y f M y F l a g s ) ; 01186 01187 e x t e r n m y _ o f f _ t m y _ f s e e k ( F I L E * s t r e a m , m y _ o f f _ t p o s , i n t w h e n c e , m y f M y F l a g s ) ; 01188 01189 e x t e r n m y _ o f f _ t m y _ f t e l l ( F I L E * s t r e a m , m y f M y F l a g s ) ; 01190 01191 e x t e r n v o i d * _ m y m a l l o c ( s i z e _ t u S i z e , c o n s t c h a r * s F i l e , 01192 01193 u i n t u L i n e , m y f M y F l a g ) ; 01194 01195 e x t e r n v o i d * _ m y r e a l l o c ( v o i d * p P t r , s i z e _ t u S i z e , c o n s t c h a r * s F i l e , 01196 01197 u i n t u L i n e , m y f M y F l a g ) ; 01198 01199 e x t e r n v o i d * m y _ m u l t i _ m a l l o c _ V A R A R G S ( ( m y f M y F l a g s , . . . ) ) ; 01200 01201 e x t e r n v o i d _ m y f r e e ( v o i d * p P t r , c o n s t c h a r * s F i l e , u i n t u L i n e , m y f M y F l a g ) ; 01202 01203 e x t e r n i n t _ s a n i t y ( c o n s t c h a r * s F i l e , u i n t u L i n e ) ; 01204 01205 e x t e r n v o i d * _ m y _ m e m d u p ( c o n s t v o i d * f r o m , s i z e _ t l e n g t h , 01206 01207 c o n s t c h a r * s F i l e , u i n t u L i n e , m y f M y F l a g ) ; 01208 01209 e x t e r n c h a r * _ m y _ s t r d u p ( c o n s t c h a r * f r o m , c o n s t c h a r * s F i l e , u i n t u L i n e , 01210 01211 m y f M y F l a g ) ; 01212 01213 e x t e r n c h a r * _ m y _ s t r n d u p ( c o n s t c h a r * f r o m , s i z e _ t l e n g t h , 01214 01215 c o n s t c h a r * s F i l e , u i n t u L i n e , 01216 01217 m y f M y F l a g ) ; 01218 01219 / * i m p l e m e n t e d i n m y _ m e m m e m . c * / 01220 01221 e x t e r n v o i d * m y _ m e m m e m ( c o n s t v o i d * h a y s t a c k , s i z e _ t h a y s t a c k l e n , 01222 01223 c o n s t v o i d * n e e d l e , s i z e _ t n e e d l e l e n ) ; 01224 01225 01226 01227 # i f d e f _ W I N 3 2 01228 01229 e x t e r n i n t m y _ a c c e s s ( c o n s t c h a r * p a t h , i n t a m o d e ) ; 01230 01231 # e l s e 01232 01233 # d e f i n e m y _ a c c e s s a c c e s s 01234 01235 # e n d i f 01236 01237 e x t e r n i n t c h e c k _ i f _ l e g a l _ f i l e n a m e ( c o n s t c h a r * p a t h ) ; 01238 01239 e x t e r n i n t c h e c k _ i f _ l e g a l _ t a b l e n a m e ( c o n s t c h a r * p a t h ) ; 01240 01241 # i f d e f _ W I N 3 2 01242 01243 e x t e r n i n t n t _ s h a r e _ d e l e t e ( c o n s t c h a r * n a m e , m y f M y F l a g s ) ; 01244 01245 # d e f i n e m y _ d e l e t e _ a l l o w _ o p e n e d ( f n a m e , f l a g s ) n t _ s h a r e _ d e l e t e ( ( f n a m e ) , ( f l a g s ) ) 01246 01247 # e l s e 01248 01249 # d e f i n e m y _ d e l e t e _ a l l o w _ o p e n e d ( f n a m e , f l a g s ) m y _ d e l e t e ( ( f n a m e ) , ( f l a g s ) ) 01250 01251 # e n d i f 01252 01253 # i f d e f _ W I N 3 2 01254 01255 / * W i n d o w s - o n l y f u n c t i o n s ( C R T e q u i v a l e n t s ) * / 01256 01257 e x t e r n F i l e m y _ s o p e n ( c o n s t c h a r * p a t h , i n t o f l a g , i n t s h f l a g , i n t p m o d e ) ; 01258 01259 e x t e r n H A N D L E m y _ g e t _ o s f h a n d l e ( F i l e f d ) ; 01260 01261 e x t e r n v o i d m y _ o s m a p e r r ( u n s i g n e d l o n g l a s t _ e r r o r ) ; 01262 01263 # e n d i f 01264 01265 # i f n d e f T E R M I N A T E 01266 01267 e x t e r n v o i d T E R M I N A T E ( F I L E * f i l e , u i n t f l a g ) ; 01268 01269 # e n d i f 01270 01271 e x t e r n v o i d i n i t _ g l o b _ e r r s ( v o i d ) ; 01272 01273 e x t e r n v o i d w a i t _ f o r _ f r e e _ s p a c e ( c o n s t c h a r * f i l e n a m e , i n t e r r o r s ) ; 01274 01275 e x t e r n F I L E * m y _ f o p e n ( c o n s t c h a r * F i l e N a m e , i n t F l a g s , m y f M y F l a g s ) ; 01276 01277 e x t e r n F I L E * m y _ f d o p e n ( F i l e F i l e d e s , c o n s t c h a r * n a m e , i n t F l a g s , m y f M y F l a g s ) ; 01278 01279 e x t e r n i n t m y _ f c l o s e ( F I L E * f d , m y f M y F l a g s ) ; 01280 01281 e x t e r n F i l e m y _ f i l e n o ( F I L E * f d ) ; 01282 01283 e x t e r n i n t m y _ c h s i z e ( F i l e f d , m y _ o f f _ t n e w l e n g t h , i n t f i l l e r , m y f M y F l a g s ) ; 01284 01285 e x t e r n i n t m y _ c h m o d ( c o n s t c h a r * n a m e , m o d e _ t m o d e , m y f m y _ f l a g s ) ; 01286 01287 e x t e r n i n t m y _ s y n c ( F i l e f d , m y f m y _ f l a g s ) ; 01288 01289 e x t e r n i n t m y _ s y n c _ d i r ( c o n s t c h a r * d i r _ n a m e , m y f m y _ f l a g s ) ; 01290 01291 e x t e r n i n t m y _ s y n c _ d i r _ b y _ f i l e ( c o n s t c h a r * f i l e _ n a m e , m y f m y _ f l a g s ) ; 01292 01293 e x t e r n v o i d m y _ e r r o r _ V A R A R G S ( ( i n t n r , m y f M y F l a g s , . . . ) ) ; 01294 01295 e x t e r n v o i d m y _ p r i n t f _ e r r o r _ V A R A R G S ( ( u i n t m y _ e r r , c o n s t c h a r * f o r m a t , 01296 01297 m y f M y F l a g s , . . . ) ) 01298 01299 A T T R I B U T E _ F O R M A T ( p r i n t f , 2 , 4 ) ; 01300 01301 e x t e r n v o i d m y _ p r i n t v _ e r r o r ( u i n t e r r o r , c o n s t c h a r * f o r m a t , m y f M y F l a g s , 01302 01303 v a _ l i s t a p ) ; 01304 01305 e x t e r n i n t m y _ e r r o r _ r e g i s t e r ( c o n s t c h a r * * e r r m s g s , i n t f i r s t , i n t l a s t ) ; 01306 01307 e x t e r n c o n s t c h a r * * m y _ e r r o r _ u n r e g i s t e r ( i n t f i r s t , i n t l a s t ) ; 01308 01309 e x t e r n v o i d m y _ m e s s a g e ( u i n t m y _ e r r , c o n s t c h a r * s t r , m y f M y F l a g s ) ; 01310 01311 e x t e r n v o i d m y _ m e s s a g e _ n o _ c u r s e s ( u i n t m y _ e r r , c o n s t c h a r * s t r , m y f M y F l a g s ) ; 01312 01313 e x t e r n m y _ b o o l m y _ i n i t ( v o i d ) ; 01314 01315 e x t e r n v o i d m y _ e n d ( i n t i n f o f l a g ) ; 01316 01317 e x t e r n i n t m y _ r e d e l ( c o n s t c h a r * f r o m , c o n s t c h a r * t o , i n t M y F l a g s ) ; 01318 01319 e x t e r n i n t m y _ c o p y s t a t ( c o n s t c h a r * f r o m , c o n s t c h a r * t o , i n t M y F l a g s ) ; 01320 01321 e x t e r n c h a r * m y _ f i l e n a m e ( F i l e f d ) ; 01322 01323 # i f n d e f T H R E A D 01324 01325 e x t e r n v o i d d o n t _ b r e a k ( v o i d ) ; 01326 01327 e x t e r n v o i d a l l o w _ b r e a k ( v o i d ) ; 01328 01329 # e l s e 01330 01331 # d e f i n e d o n t _ b r e a k ( ) 01332 01333 # d e f i n e a l l o w _ b r e a k ( ) 01334 01335 # e n d i f 01336 01337 # i f d e f E X T R A _ D E B U G 01338 01339 v o i d m y _ p r i n t _ o p e n _ f i l e s ( v o i d ) ; 01340 01341 # e l s e 01342 01343 # d e f i n e m y _ p r i n t _ o p e n _ f i l e s ( ) 01344 01345 # e n d i f 01346 01347 e x t e r n m y _ b o o l i n i t _ t m p d i r ( M Y _ T M P D I R * t m p d i r , c o n s t c h a r * p a t h l i s t ) ; 01348 01349 e x t e r n c h a r * m y _ t m p d i r ( M Y _ T M P D I R * t m p d i r ) ; 01350 01351 e x t e r n v o i d f r e e _ t m p d i r ( M Y _ T M P D I R * t m p d i r ) ; 01352 01353 e x t e r n v o i d m y _ r e m e m b e r _ s i g n a l ( i n t s i g n a l _ n u m b e r , s i g _ h a n d l e r ( * f u n c ) ( i n t ) ) ; 01354 01355 e x t e r n s i z e _ t d i r n a m e _ p a r t ( c h a r * t o , c o n s t c h a r * n a m e , s i z e _ t * t o _ r e s _ l e n g t h ) ; 01356 01357 e x t e r n s i z e _ t d i r n a m e _ l e n g t h ( c o n s t c h a r * n a m e ) ; 01358 01359 # d e f i n e b a s e _ n a m e ( A ) ( A + d i r n a m e _ l e n g t h ( A ) ) 01360 01361 e x t e r n i n t t e s t _ i f _ h a r d _ p a t h ( c o n s t c h a r * d i r _ n a m e ) ; 01362 01363 e x t e r n m y _ b o o l h a s _ p a t h ( c o n s t c h a r * n a m e ) ; 01364 01365 e x t e r n c h a r * c o n v e r t _ d i r n a m e ( c h a r * t o , c o n s t c h a r * f r o m , c o n s t c h a r * f r o m _ e n d ) ; 01366 01367 e x t e r n v o i d t o _ u n i x _ p a t h ( c h a r * n a m e ) ; 01368 01369 e x t e r n c h a r * f n _ e x t ( c o n s t c h a r * n a m e ) ; 01370 01371 e x t e r n c h a r * f n _ s a m e ( c h a r * t o n a m e , c o n s t c h a r * n a m e , i n t f l a g ) ; 01372 01373 e x t e r n c h a r * f n _ f o r m a t ( c h a r * t o , c o n s t c h a r * n a m e , c o n s t c h a r * d i r , 01374 01375 c o n s t c h a r * f o r m , u i n t f l a g ) ; 01376 01377 e x t e r n s i z e _ t s t r l e n g t h ( c o n s t c h a r * s t r ) ; 01378 01379 e x t e r n v o i d p a c k _ d i r n a m e ( c h a r * t o , c o n s t c h a r * f r o m ) ; 01380 01381 e x t e r n s i z e _ t n o r m a l i z e _ d i r n a m e ( c h a r * t o , c o n s t c h a r * f r o m ) ; 01382 01383 e x t e r n s i z e _ t u n p a c k _ d i r n a m e ( c h a r * t o , c o n s t c h a r * f r o m ) ; 01384 01385 e x t e r n s i z e _ t c l e a n u p _ d i r n a m e ( c h a r * t o , c o n s t c h a r * f r o m ) ; 01386 01387 e x t e r n s i z e _ t s y s t e m _ f i l e n a m e ( c h a r * t o , c o n s t c h a r * f r o m ) ; 01388 01389 e x t e r n s i z e _ t u n p a c k _ f i l e n a m e ( c h a r * t o , c o n s t c h a r * f r o m ) ; 01390 01391 e x t e r n c h a r * i n t e r n _ f i l e n a m e ( c h a r * t o , c o n s t c h a r * f r o m ) ; 01392 01393 e x t e r n c h a r * d i r e c t o r y _ f i l e _ n a m e ( c h a r * d s t , c o n s t c h a r * s r c ) ; 01394 01395 e x t e r n i n t p a c k _ f i l e n a m e ( c h a r * t o , c o n s t c h a r * n a m e , s i z e _ t m a x _ l e n g t h ) ; 01396 01397 e x t e r n c h a r * m y _ p a t h ( c h a r * t o , c o n s t c h a r * p r o g n a m e , 01398 01399 c o n s t c h a r * o w n _ p a t h n a m e _ p a r t ) ; 01400 01401 e x t e r n c h a r * m y _ l o a d _ p a t h ( c h a r * t o , c o n s t c h a r * p a t h , 01402 01403 c o n s t c h a r * o w n _ p a t h _ p r e f i x ) ; 01404 01405 e x t e r n i n t w i l d _ c o m p a r e ( c o n s t c h a r * s t r , c o n s t c h a r * w i l d s t r , 01406 01407 p b o o l s t r _ i s _ p a t t e r n ) ; 01408 01409 e x t e r n W F _ P A C K * w f _ c o m p ( c h a r * s t r ) ; 01410 01411 e x t e r n i n t w f _ t e s t ( s t r u c t w i l d _ f i l e _ p a c k * w f _ p a c k , c o n s t c h a r * n a m e ) ; 01412 01413 e x t e r n v o i d w f _ e n d ( s t r u c t w i l d _ f i l e _ p a c k * b u f f e r ) ; 01414 01415 e x t e r n s i z e _ t s t r i p _ s p ( c h a r * s t r ) ; 01416 01417 e x t e r n m y _ b o o l a r r a y _ a p p e n d _ s t r i n g _ u n i q u e ( c o n s t c h a r * s t r , 01418 01419 c o n s t c h a r * * a r r a y , s i z e _ t s i z e ) ; 01420 01421 e x t e r n v o i d g e t _ d a t e ( c h a r * t o , i n t t i m e f l a g , t i m e _ t u s e _ t i m e ) ; 01422 01423 e x t e r n v o i d s o u n d e x ( C H A R S E T _ I N F O * , c h a r * o u t _ p n t r , c h a r * i n _ p n t r , 01424 01425 p b o o l r e m o v e _ g a r b a g e ) ; 01426 01427 e x t e r n i n t i n i t _ r e c o r d _ c a c h e ( R E C O R D _ C A C H E * i n f o , s i z e _ t c a c h e s i z e , F i l e f i l e , 01428 01429 s i z e _ t r e c l e n g t h , e n u m c a c h e _ t y p e t y p e , 01430 01431 p b o o l u s e _ a s y n c _ i o ) ; 01432 01433 e x t e r n i n t r e a d _ c a c h e _ r e c o r d ( R E C O R D _ C A C H E * i n f o , u c h a r * t o ) ; 01434 01435 e x t e r n i n t e n d _ r e c o r d _ c a c h e ( R E C O R D _ C A C H E * i n f o ) ; 01436 01437 e x t e r n i n t w r i t e _ c a c h e _ r e c o r d ( R E C O R D _ C A C H E * i n f o , m y _ o f f _ t f i l e p o s , 01438 01439 c o n s t u c h a r * r e c o r d , s i z e _ t l e n g t h ) ; 01440 01441 e x t e r n i n t f l u s h _ w r i t e _ c a c h e ( R E C O R D _ C A C H E * i n f o ) ; 01442 01443 e x t e r n l o n g m y _ c l o c k ( v o i d ) ; 01444 01445 e x t e r n s i g _ h a n d l e r s i g t s t p _ h a n d l e r ( i n t s i g n a l _ n u m b e r ) ; 01446 01447 e x t e r n v o i d h a n d l e _ r e c i v e d _ s i g n a l s ( v o i d ) ; 01448 01449 e x t e r n s i g _ h a n d l e r m y _ s e t _ a l a r m _ v a r i a b l e ( i n t s i g n o ) ; 01450 01451 e x t e r n v o i d m y _ s t r i n g _ p t r _ s o r t ( u c h a r * b a s e , u i n t i t e m s , s i z e _ t s i z e ) ; 01452 01453 e x t e r n v o i d r a d i x s o r t _ f o r _ s t r _ p t r ( u c h a r * b a s e [ ] , u i n t n u m b e r _ o f _ e l e m e n t s , 01454 01455 s i z e _ t s i z e _ o f _ e l e m e n t , u c h a r * b u f f e r [ ] ) ; 01456 01457 e x t e r n q s o r t _ t m y _ q s o r t ( v o i d * b a s e _ p t r , s i z e _ t t o t a l _ e l e m s , s i z e _ t s i z e , 01458 01459 q s o r t _ c m p c m p ) ; 01460 01461 e x t e r n q s o r t _ t m y _ q s o r t 2 ( v o i d * b a s e _ p t r , s i z e _ t t o t a l _ e l e m s , s i z e _ t s i z e , 01462 01463 q s o r t 2 _ c m p c m p , v o i d * c m p _ a r g u m e n t ) ; 01464 01465 e x t e r n q s o r t 2 _ c m p g e t _ p t r _ c o m p a r e ( s i z e _ t ) ; 01466 01467 v o i d m y _ s t o r e _ p t r ( u c h a r * b u f f , s i z e _ t p a c k _ l e n g t h , m y _ o f f _ t p o s ) ; 01468 01469 m y _ o f f _ t m y _ g e t _ p t r ( u c h a r * p t r , s i z e _ t p a c k _ l e n g t h ) ; 01470 01471 e x t e r n i n t i n i t _ i o _ c a c h e ( I O _ C A C H E * i n f o , F i l e f i l e , s i z e _ t c a c h e s i z e , 01472 01473 e n u m c a c h e _ t y p e t y p e , m y _ o f f _ t s e e k _ o f f s e t , 01474 01475 p b o o l u s e _ a s y n c _ i o , m y f c a c h e _ m y f l a g s ) ; 01476 01477 e x t e r n m y _ b o o l r e i n i t _ i o _ c a c h e ( I O _ C A C H E * i n f o , e n u m c a c h e _ t y p e t y p e , 01478 01479 m y _ o f f _ t s e e k _ o f f s e t , p b o o l u s e _ a s y n c _ i o , 01480 01481 p b o o l c l e a r _ c a c h e ) ; 01482 01483 e x t e r n v o i d s e t u p _ i o _ c a c h e ( I O _ C A C H E * i n f o ) ; 01484 01485 e x t e r n i n t _ m y _ b _ r e a d ( I O _ C A C H E * i n f o , u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01486 01487 # i f d e f T H R E A D 01488 01489 e x t e r n i n t _ m y _ b _ r e a d _ r ( I O _ C A C H E * i n f o , u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01490 01491 e x t e r n v o i d i n i t _ i o _ c a c h e _ s h a r e ( I O _ C A C H E * r e a d _ c a c h e , I O _ C A C H E _ S H A R E * c s h a r e , 01492 01493 I O _ C A C H E * w r i t e _ c a c h e , u i n t n u m _ t h r e a d s ) ; 01494 01495 e x t e r n v o i d r e m o v e _ i o _ t h r e a d ( I O _ C A C H E * i n f o ) ; 01496 01497 # e n d i f 01498 01499 e x t e r n i n t _ m y _ b _ s e q _ r e a d ( I O _ C A C H E * i n f o , u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01500 01501 e x t e r n i n t _ m y _ b _ n e t _ r e a d ( I O _ C A C H E * i n f o , u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01502 01503 e x t e r n i n t _ m y _ b _ g e t ( I O _ C A C H E * i n f o ) ; 01504 01505 e x t e r n i n t _ m y _ b _ a s y n c _ r e a d ( I O _ C A C H E * i n f o , u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01506 01507 e x t e r n i n t _ m y _ b _ w r i t e ( I O _ C A C H E * i n f o , c o n s t u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01508 01509 e x t e r n i n t m y _ b _ a p p e n d ( I O _ C A C H E * i n f o , c o n s t u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01510 01511 e x t e r n i n t m y _ b _ s a f e _ w r i t e ( I O _ C A C H E * i n f o , c o n s t u c h a r * B u f f e r , s i z e _ t C o u n t ) ; 01512 01513 e x t e r n i n t m y _ b l o c k _ w r i t e ( I O _ C A C H E * i n f o , c o n s t u c h a r * B u f f e r , 01514 01515 s i z e _ t C o u n t , m y _ o f f _ t p o s ) ; 01516 01517 e x t e r n i n t m y _ b _ f l u s h _ i o _ c a c h e ( I O _ C A C H E * i n f o , i n t n e e d _ a p p e n d _ b u f f e r _ l o c k ) ; 01518 01519 # d e f i n e f l u s h _ i o _ c a c h e ( i n f o ) m y _ b _ f l u s h _ i o _ c a c h e ( ( i n f o ) , 1 ) 01520 01521 e x t e r n i n t e n d _ i o _ c a c h e ( I O _ C A C H E * i n f o ) ; 01522 01523 e x t e r n s i z e _ t m y _ b _ f i l l ( I O _ C A C H E * i n f o ) ; 01524 01525 e x t e r n v o i d m y _ b _ s e e k ( I O _ C A C H E * i n f o , m y _ o f f _ t p o s ) ; 01526 01527 e x t e r n s i z e _ t m y _ b _ g e t s ( I O _ C A C H E * i n f o , c h a r * t o , s i z e _ t m a x _ l e n g t h ) ; 01528 01529 e x t e r n m y _ o f f _ t m y _ b _ f i l e l e n g t h ( I O _ C A C H E * i n f o ) ; 01530 01531 e x t e r n s i z e _ t m y _ b _ p r i n t f ( I O _ C A C H E * i n f o , c o n s t c h a r * f m t , . . . ) ; 01532 01533 e x t e r n s i z e _ t m y _ b _ v p r i n t f ( I O _ C A C H E * i n f o , c o n s t c h a r * f m t , v a _ l i s t a p ) ; 01534 01535 e x t e r n m y _ b o o l o p e n _ c a c h e d _ f i l e ( I O _ C A C H E * c a c h e , c o n s t c h a r * d i r , 01536 01537 c o n s t c h a r * p r e f i x , s i z e _ t c a c h e _ s i z e , 01538 01539 m y f c a c h e _ m y f l a g s ) ; 01540 01541 e x t e r n m y _ b o o l r e a l _ o p e n _ c a c h e d _ f i l e ( I O _ C A C H E * c a c h e ) ; 01542 01543 e x t e r n v o i d c l o s e _ c a c h e d _ f i l e ( I O _ C A C H E * c a c h e ) ; 01544 01545 F i l e c r e a t e _ t e m p _ f i l e ( c h a r * t o , c o n s t c h a r * d i r , c o n s t c h a r * p f x , 01546 01547 i n t m o d e , m y f M y F l a g s ) ; 01548 01549 # d e f i n e m y _ i n i t _ d y n a m i c _ a r r a y ( A , B , C , D ) i n i t _ d y n a m i c _ a r r a y 2 ( A , B , N U L L , C , D C A L L E R _ I N F O ) 01550 01551 # d e f i n e m y _ i n i t _ d y n a m i c _ a r r a y _ c i ( A , B , C , D ) i n i t _ d y n a m i c _ a r r a y 2 ( A , B , N U L L , C , D O R I G _ C A L L E R _ I N F O ) 01552 01553 # d e f i n e m y _ i n i t _ d y n a m i c _ a r r a y 2 ( A , B , C , D , E ) i n i t _ d y n a m i c _ a r r a y 2 ( A , B , C , D , E C A L L E R _ I N F O ) 01554 01555 # d e f i n e m y _ i n i t _ d y n a m i c _ a r r a y 2 _ c i ( A , B , C , D , E ) i n i t _ d y n a m i c _ a r r a y 2 ( A , B , C , D , E O R I G _ C A L L E R _ I N F O ) 01556 01557 e x t e r n m y _ b o o l i n i t _ d y n a m i c _ a r r a y 2 ( D Y N A M I C _ A R R A Y * a r r a y , u i n t e l e m e n t _ s i z e , 01558 01559 v o i d * i n i t _ b u f f e r , u i n t i n i t _ a l l o c , 01560 01561 u i n t a l l o c _ i n c r e m e n t 01562 01563 C A L L E R _ I N F O _ P R O T O ) ; 01564 01565 / * i n i t _ d y n a m i c _ a r r a y ( ) f u n c t i o n i s d e p r e c a t e d * / 01566 01567 e x t e r n m y _ b o o l i n i t _ d y n a m i c _ a r r a y ( D Y N A M I C _ A R R A Y * a r r a y , u i n t e l e m e n t _ s i z e , 01568 01569 u i n t i n i t _ a l l o c , u i n t a l l o c _ i n c r e m e n t 01570 01571 C A L L E R _ I N F O _ P R O T O ) ; 01572 01573 e x t e r n m y _ b o o l i n s e r t _ d y n a m i c ( D Y N A M I C _ A R R A Y * a r r a y , c o n s t u c h a r * e l e m e n t ) ; 01574 01575 e x t e r n u c h a r * a l l o c _ d y n a m i c ( D Y N A M I C _ A R R A Y * a r r a y ) ; 01576 01577 e x t e r n u c h a r * p o p _ d y n a m i c ( D Y N A M I C _ A R R A Y * ) ; 01578 01579 e x t e r n m y _ b o o l s e t _ d y n a m i c ( D Y N A M I C _ A R R A Y * a r r a y , u c h a r * e l e m e n t , u i n t a r r a y _ i n d e x ) ; 01580 01581 e x t e r n m y _ b o o l a l l o c a t e _ d y n a m i c ( D Y N A M I C _ A R R A Y * a r r a y , u i n t m a x _ e l e m e n t s ) ; 01582 01583 e x t e r n v o i d g e t _ d y n a m i c ( D Y N A M I C _ A R R A Y * a r r a y , u c h a r * e l e m e n t , u i n t a r r a y _ i n d e x ) ; 01584 01585 e x t e r n v o i d d e l e t e _ d y n a m i c ( D Y N A M I C _ A R R A Y * a r r a y ) ; 01586 01587 e x t e r n v o i d d e l e t e _ d y n a m i c _ e l e m e n t ( D Y N A M I C _ A R R A Y * a r r a y , u i n t a r r a y _ i n d e x ) ; 01588 01589 e x t e r n v o i d f r e e z e _ s i z e ( D Y N A M I C _ A R R A Y * a r r a y ) ; 01590 01591 e x t e r n i n t g e t _ i n d e x _ d y n a m i c ( D Y N A M I C _ A R R A Y * a r r a y , u c h a r * e l e m e n t ) ; 01592 01593 # d e f i n e d y n a m i c _ a r r a y _ p t r ( a r r a y , a r r a y _ i n d e x ) ( ( a r r a y ) - > b u f f e r + ( a r r a y _ i n d e x ) * ( a r r a y ) - > s i z e _ o f _ e l e m e n t ) 01594 01595 # d e f i n e d y n a m i c _ e l e m e n t ( a r r a y , a r r a y _ i n d e x , t y p e ) ( ( t y p e ) ( ( a r r a y ) - > b u f f e r ) + ( a r r a y _ i n d e x ) ) 01596 01597 # d e f i n e p u s h _ d y n a m i c ( A , B ) i n s e r t _ d y n a m i c ( ( A ) , ( B ) ) 01598 01599 # d e f i n e r e s e t _ d y n a m i c ( a r r a y ) ( ( a r r a y ) - > e l e m e n t s = 0 ) 01600 01601 # d e f i n e s o r t _ d y n a m i c ( A , c m p ) m y _ q s o r t ( ( A ) - > b u f f e r , ( A ) - > e l e m e n t s , ( A ) - > s i z e _ o f _ e l e m e n t , ( c m p ) ) 01602 01603 e x t e r n m y _ b o o l i n i t _ d y n a m i c _ s t r i n g ( D Y N A M I C _ S T R I N G * s t r , c o n s t c h a r * i n i t _ s t r , 01604 01605 s i z e _ t i n i t _ a l l o c , s i z e _ t a l l o c _ i n c r e m e n t ) ; 01606 01607 e x t e r n m y _ b o o l d y n s t r _ a p p e n d ( D Y N A M I C _ S T R I N G * s t r , c o n s t c h a r * a p p e n d ) ; 01608 01609 m y _ b o o l d y n s t r _ a p p e n d _ m e m ( D Y N A M I C _ S T R I N G * s t r , c o n s t c h a r * a p p e n d , 01610 01611 s i z e _ t l e n g t h ) ; 01612 01613 e x t e r n m y _ b o o l d y n s t r _ a p p e n d _ o s _ q u o t e d ( D Y N A M I C _ S T R I N G * s t r , c o n s t c h a r * a p p e n d , 01614 01615 . . . ) ; 01616 01617 e x t e r n m y _ b o o l d y n s t r _ s e t ( D Y N A M I C _ S T R I N G * s t r , c o n s t c h a r * i n i t _ s t r ) ; 01618 01619 e x t e r n m y _ b o o l d y n s t r _ r e a l l o c ( D Y N A M I C _ S T R I N G * s t r , s i z e _ t a d d i t i o n a l _ s i z e ) ; 01620 01621 e x t e r n m y _ b o o l d y n s t r _ t r u n c ( D Y N A M I C _ S T R I N G * s t r , s i z e _ t n ) ; 01622 01623 e x t e r n v o i d d y n s t r _ f r e e ( D Y N A M I C _ S T R I N G * s t r ) ; 01624 01625 # i f d e f H A V E _ M L O C K 01626 01627 e x t e r n v o i d * m y _ m a l l o c _ l o c k ( s i z e _ t l e n g t h , m y f f l a g s ) ; 01628 01629 e x t e r n v o i d m y _ f r e e _ l o c k ( v o i d * p t r , m y f f l a g s ) ; 01630 01631 # e l s e 01632 01633 # d e f i n e m y _ m a l l o c _ l o c k ( A , B ) m y _ m a l l o c ( ( A ) , ( B ) ) 01634 01635 # d e f i n e m y _ f r e e _ l o c k ( A , B ) m y _ f r e e ( ( A ) , ( B ) ) 01636 01637 # e n d i f 01638 01639 # d e f i n e a l l o c _ r o o t _ i n i t e d ( A ) ( ( A ) - > m i n _ m a l l o c ! = 0 ) 01640 01641 # d e f i n e A L L O C _ R O O T _ M I N _ B L O C K _ S I Z E ( M A L L O C _ O V E R H E A D + s i z e o f ( U S E D _ M E M ) + 8 ) 01642 01643 # d e f i n e c l e a r _ a l l o c _ r o o t ( A ) d o { ( A ) - > f r e e = ( A ) - > u s e d = ( A ) - > p r e _ a l l o c = 0 ; ( A ) - > m i n _ m a l l o c = 0 ; } w h i l e ( 0 ) 01644 01645 e x t e r n v o i d i n i t _ a l l o c _ r o o t ( M E M _ R O O T * m e m _ r o o t , s i z e _ t b l o c k _ s i z e , 01646 01647 s i z e _ t p r e _ a l l o c _ s i z e ) ; 01648 01649 e x t e r n v o i d * a l l o c _ r o o t ( M E M _ R O O T * m e m _ r o o t , s i z e _ t S i z e ) ; 01650 01651 e x t e r n v o i d * m u l t i _ a l l o c _ r o o t ( M E M _ R O O T * m e m _ r o o t , . . . ) ; 01652 01653 e x t e r n v o i d f r e e _ r o o t ( M E M _ R O O T * r o o t , m y f M y F L A G S ) ; 01654 01655 e x t e r n v o i d s e t _ p r e a l l o c _ r o o t ( M E M _ R O O T * r o o t , c h a r * p t r ) ; 01656 01657 e x t e r n v o i d r e s e t _ r o o t _ d e f a u l t s ( M E M _ R O O T * m e m _ r o o t , s i z e _ t b l o c k _ s i z e , 01658 01659 s i z e _ t p r e a l l o c _ s i z e ) ; 01660 01661 e x t e r n c h a r * s t r d u p _ r o o t ( M E M _ R O O T * r o o t , c o n s t c h a r * s t r ) ; 01662 01663 e x t e r n c h a r * s t r m a k e _ r o o t ( M E M _ R O O T * r o o t , c o n s t c h a r * s t r , s i z e _ t l e n ) ; 01664 01665 e x t e r n v o i d * m e m d u p _ r o o t ( M E M _ R O O T * r o o t , c o n s t v o i d * s t r , s i z e _ t l e n ) ; 01666 01667 e x t e r n i n t g e t _ d e f a u l t s _ o p t i o n s ( i n t a r g c , c h a r * * a r g v , 01668 01669 c h a r * * d e f a u l t s , c h a r * * e x t r a _ d e f a u l t s , 01670 01671 c h a r * * g r o u p _ s u f f i x ) ; 01672 01673 e x t e r n c o n s t c h a r * a r g s _ s e p a r a t o r ; 01674 01675 e x t e r n i n t m y _ l o a d _ d e f a u l t s ( c o n s t c h a r * c o n f _ f i l e , c o n s t c h a r * * g r o u p s , 01676 01677 i n t * a r g c , c h a r * * * a r g v , c o n s t c h a r * * * ) ; 01678 01679 e x t e r n i n t l o a d _ d e f a u l t s ( c o n s t c h a r * c o n f _ f i l e , c o n s t c h a r * * g r o u p s , 01680 01681 i n t * a r g c , c h a r * * * a r g v ) ; 01682 01683 e x t e r n i n t m o d i f y _ d e f a u l t s _ f i l e ( c o n s t c h a r * f i l e _ l o c a t i o n , c o n s t c h a r * o p t i o n , 01684 01685 c o n s t c h a r * o p t i o n _ v a l u e , 01686 01687 c o n s t c h a r * s e c t i o n _ n a m e , i n t r e m o v e _ o p t i o n ) ; 01688 01689 e x t e r n i n t m y _ s e a r c h _ o p t i o n _ f i l e s ( c o n s t c h a r * c o n f _ f i l e , i n t * a r g c , 01690 01691 c h a r * * * a r g v , u i n t * a r g s _ u s e d , 01692 01693 P r o c e s s _ o p t i o n _ f u n c f u n c , v o i d * f u n c _ c t x , 01694 01695 c o n s t c h a r * * d e f a u l t _ d i r e c t o r i e s ) ; 01696 01697 e x t e r n v o i d f r e e _ d e f a u l t s ( c h a r * * a r g v ) ; 01698 01699 e x t e r n v o i d m y _ p r i n t _ d e f a u l t _ f i l e s ( c o n s t c h a r * c o n f _ f i l e ) ; 01700 01701 e x t e r n v o i d p r i n t _ d e f a u l t s ( c o n s t c h a r * c o n f _ f i l e , c o n s t c h a r * * g r o u p s ) ; 01702 01703 e x t e r n m y _ b o o l m y _ c o m p r e s s ( u c h a r * , s i z e _ t * , s i z e _ t * ) ; 01704 01705 e x t e r n m y _ b o o l m y _ u n c o m p r e s s ( u c h a r * , s i z e _ t , s i z e _ t * ) ; 01706 01707 e x t e r n u c h a r * m y _ c o m p r e s s _ a l l o c ( c o n s t u c h a r * p a c k e t , s i z e _ t * l e n , 01708 01709 s i z e _ t * c o m p l e n ) ; 01710 01711 e x t e r n i n t p a c k f r m ( u c h a r * , s i z e _ t , u c h a r * * , s i z e _ t * ) ; 01712 01713 e x t e r n i n t u n p a c k f r m ( u c h a r * * , s i z e _ t * , c o n s t u c h a r * ) ; 01714 01715 e x t e r n h a _ c h e c k s u m m y _ c h e c k s u m ( h a _ c h e c k s u m c r c , c o n s t u c h a r * m e m , 01716 01717 s i z e _ t c o u n t ) ; 01718 01719 # i f n d e f D B U G _ O F F 01720 01721 e x t e r n v o i d m y _ d e b u g _ p u t _ b r e a k _ h e r e ( v o i d ) ; 01722 01723 # e l s e 01724 01725 # d e f i n e m y _ d e b u g _ p u t _ b r e a k _ h e r e ( ) d o { } w h i l e ( 0 ) 01726 01727 # e n d i f 01728 01729 e x t e r n v o i d m y _ s l e e p ( u l o n g m _ s e c o n d s ) ; 01730 01731 e x t e r n u l o n g c r c 3 2 ( u l o n g c r c , c o n s t u c h a r * b u f , u i n t l e n ) ; 01732 01733 e x t e r n u i n t m y _ s e t _ m a x _ o p e n _ f i l e s ( u i n t f i l e s ) ; 01734 01735 v o i d m y _ f r e e _ o p e n _ f i l e _ i n f o ( v o i d ) ; 01736 01737 e x t e r n t i m e _ t m y _ t i m e ( m y f f l a g s ) ; 01738 01739 e x t e r n u l o n g l o n g m y _ g e t s y s t i m e ( v o i d ) ; 01740 01741 e x t e r n u l o n g l o n g m y _ m i c r o _ t i m e ( ) ; 01742 01743 e x t e r n u l o n g l o n g m y _ m i c r o _ t i m e _ a n d _ t i m e ( t i m e _ t * t i m e _ a r g ) ; 01744 01745 t i m e _ t m y _ t i m e _ p o s s i b l e _ f r o m _ m i c r o ( u l o n g l o n g m i c r o t i m e ) ; 01746 01747 e x t e r n m y _ b o o l m y _ g e t h w a d d r ( u c h a r * t o ) ; 01748 01749 e x t e r n i n t m y _ g e t n c p u s ( ) ; 01750 01751 # i f d e f H A V E _ S Y S _ M M A N _ H 01752 01753 # i n c l u d e < s y s / m m a n . h > 01754 01755 # i f n d e f M A P _ N O S Y N C 01756 01757 # d e f i n e M A P _ N O S Y N C 0 01758 01759 # e n d i f 01760 01761 # i f n d e f M A P _ N O R E S E R V E 01762 01763 # d e f i n e M A P _ N O R E S E R V E 0 / * F o r i r i x a n d A I X * / 01764 01765 # e n d i f 01766 01767 # i f d e f H A V E _ M M A P 6 4 01768 01769 # d e f i n e m y _ m m a p ( a , b , c , d , e , f ) m m a p 6 4 ( a , b , c , d , e , f ) 01770 01771 # e l s e 01772 01773 # d e f i n e m y _ m m a p ( a , b , c , d , e , f ) m m a p ( a , b , c , d , e , f ) 01774 01775 # e n d i f 01776 01777 # d e f i n e m y _ m u n m a p ( a , b ) m u n m a p ( ( a ) , ( b ) ) 01778 01779 # e l s e 01780 01781 / * n o t a c o m p l e t e s e t o f m m a p ( ) f l a g s , b u t o n l y t h o s e t h a t n e s e s s a r y * / 01782 01783 # d e f i n e P R O T _ R E A D 1 01784 01785 # d e f i n e P R O T _ W R I T E 2 01786 01787 # d e f i n e M A P _ N O R E S E R V E 0 01788 01789 # d e f i n e M A P _ S H A R E D 0 x 0 0 0 1 01790 01791 # d e f i n e M A P _ P R I V A T E 0 x 0 0 0 2 01792 01793 # d e f i n e M A P _ N O S Y N C 0 x 0 8 0 0 01794 01795 # d e f i n e M A P _ F A I L E D ( ( v o i d * ) - 1 ) 01796 01797 # d e f i n e M S _ S Y N C 0 x 0 0 0 0 01798 01799 # i f n d e f _ _ N E T W A R E _ _ 01800 01801 # d e f i n e H A V E _ M M A P 01802 01803 # e n d i f 01804 01805 v o i d * m y _ m m a p ( v o i d * , s i z e _ t , i n t , i n t , i n t , m y _ o f f _ t ) ; 01806 01807 i n t m y _ m u n m a p ( v o i d * , s i z e _ t ) ; 01808 01809 # e n d i f 01810 01811 / * m y _ g e t p a g e s i z e * / 01812 01813 # i f d e f H A V E _ G E T P A G E S I Z E 01814 01815 # d e f i n e m y _ g e t p a g e s i z e ( ) g e t p a g e s i z e ( ) 01816 01817 # e l s e 01818 01819 i n t m y _ g e t p a g e s i z e ( v o i d ) ; 01820 01821 # e n d i f 01822 01823 i n t m y _ m s y n c ( i n t , v o i d * , s i z e _ t , i n t ) ; 01824 01825 # d e f i n e M Y _ U U I D _ S I Z E 1 6 01826 01827 # d e f i n e M Y _ U U I D _ S T R I N G _ L E N G T H ( 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 1 2 ) 01828 01829 v o i d m y _ u u i d _ i n i t ( u l o n g s e e d 1 , u l o n g s e e d 2 ) ; 01830 01831 v o i d m y _ u u i d ( u c h a r * g u i d ) ; 01832 01833 v o i d m y _ u u i d 2 s t r ( c o n s t u c h a r * g u i d , c h a r * s ) ; 01834 01835 v o i d m y _ u u i d _ e n d ( ) ; 01836 01837 s t r u c t m y _ r n d _ s t r u c t { 01838 01839 u n s i g n e d l o n g s e e d 1 , s e e d 2 , m a x _ v a l u e ; 01840 01841 d o u b l e m a x _ v a l u e _ d b l ; 01842 01843 } ; 01844 01845 v o i d m y _ r n d _ i n i t ( s t r u c t m y _ r n d _ s t r u c t * r a n d _ s t , u l o n g s e e d 1 , u l o n g s e e d 2 ) ; 01846 01847 d o u b l e m y _ r n d ( s t r u c t m y _ r n d _ s t r u c t * r a n d _ s t ) ; 01848 01849 / * c h a r a c t e r s e t s * / 01850 01851 e x t e r n u i n t g e t _ c h a r s e t _ n u m b e r ( c o n s t c h a r * c s _ n a m e , u i n t c s _ f l a g s ) ; 01852 01853 e x t e r n u i n t g e t _ c o l l a t i o n _ n u m b e r ( c o n s t c h a r * n a m e ) ; 01854 01855 e x t e r n c o n s t c h a r * g e t _ c h a r s e t _ n a m e ( u i n t c s _ n u m b e r ) ; 01856 01857 e x t e r n C H A R S E T _ I N F O * g e t _ c h a r s e t ( u i n t c s _ n u m b e r , m y f f l a g s ) ; 01858 01859 e x t e r n C H A R S E T _ I N F O * g e t _ c h a r s e t _ b y _ n a m e ( c o n s t c h a r * c s _ n a m e , m y f f l a g s ) ; 01860 01861 e x t e r n C H A R S E T _ I N F O * g e t _ c h a r s e t _ b y _ c s n a m e ( c o n s t c h a r * c s _ n a m e , 01862 01863 u i n t c s _ f l a g s , m y f m y _ f l a g s ) ; 01864 01865 e x t e r n m y _ b o o l r e s o l v e _ c h a r s e t ( c o n s t c h a r * c s _ n a m e , 01866 01867 C H A R S E T _ I N F O * d e f a u l t _ c s , 01868 01869 C H A R S E T _ I N F O * * c s ) ; 01870 01871 e x t e r n m y _ b o o l r e s o l v e _ c o l l a t i o n ( c o n s t c h a r * c l _ n a m e , 01872 01873 C H A R S E T _ I N F O * d e f a u l t _ c l , 01874 01875 C H A R S E T _ I N F O * * c l ) ; 01876 01877 e x t e r n v o i d f r e e _ c h a r s e t s ( v o i d ) ; 01878 01879 e x t e r n c h a r * g e t _ c h a r s e t s _ d i r ( c h a r * b u f ) ; 01880 01881 e x t e r n m y _ b o o l m y _ c h a r s e t _ s a m e ( C H A R S E T _ I N F O * c s 1 , C H A R S E T _ I N F O * c s 2 ) ; 01882 01883 e x t e r n m y _ b o o l i n i t _ c o m p i l e d _ c h a r s e t s ( m y f f l a g s ) ; 01884 01885 e x t e r n v o i d a d d _ c o m p i l e d _ c o l l a t i o n ( C H A R S E T _ I N F O * c s ) ; 01886 01887 e x t e r n s i z e _ t e s c a p e _ s t r i n g _ f o r _ m y s q l ( C H A R S E T _ I N F O * c h a r s e t _ i n f o , 01888 01889 c h a r * t o , s i z e _ t t o _ l e n g t h , 01890 01891 c o n s t c h a r * f r o m , s i z e _ t l e n g t h ) ; 01892 01893 # i f d e f _ _ W I N _ _ 01894 01895 # d e f i n e B A C K S L A S H _ M B T A I L 01896 01897 / * F i l e s y s t e m c h a r a c t e r s e t * / 01898 01899 e x t e r n C H A R S E T _ I N F O * f s _ c h a r a c t e r _ s e t ( v o i d ) ; 01900 01901 # e n d i f 01902 01903 e x t e r n s i z e _ t e s c a p e _ q u o t e s _ f o r _ m y s q l ( C H A R S E T _ I N F O * c h a r s e t _ i n f o , 01904 01905 c h a r * t o , s i z e _ t t o _ l e n g t h , 01906 01907 c o n s t c h a r * f r o m , s i z e _ t l e n g t h ) ; 01908 01909 e x t e r n v o i d t h d _ i n c r e m e n t _ b y t e s _ s e n t ( u l o n g l e n g t h ) ; 01910 01911 e x t e r n v o i d t h d _ i n c r e m e n t _ b y t e s _ r e c e i v e d ( u l o n g l e n g t h ) ; 01912 01913 e x t e r n v o i d t h d _ i n c r e m e n t _ n e t _ b i g _ p a c k e t _ c o u n t ( u l o n g l e n g t h ) ; 01914 01915 # i f d e f _ _ W I N _ _ 01916 01917 e x t e r n m y _ b o o l h a v e _ t c p i p ; / * I s s e t i f t c p i p i s u s e d * / 01918 01919 / * i m p l e m e n t e d i n m y _ w i n d a c . c * / 01920 01921 i n t m y _ s e c u r i t y _ a t t r _ c r e a t e ( S E C U R I T Y _ A T T R I B U T E S * * p s a , c o n s t c h a r * * p e r r o r , 01922 01923 D W O R D o w n e r _ r i g h t s , D W O R D e v e r y b o d y _ r i g h t s ) ; 01924 01925 v o i d m y _ s e c u r i t y _ a t t r _ f r e e ( S E C U R I T Y _ A T T R I B U T E S * s a ) ; 01926 01927 / * i m p l e m e n t e d i n m y _ c o n i o . c * / 01928 01929 c h a r * m y _ c g e t s ( c h a r * s t r i n g , s i z e _ t c l e n , s i z e _ t * p l e n ) ; 01930 01931 # e n d i f 01932 01933 # i f d e f _ _ N E T W A R E _ _ 01934 01935 v o i d n e t w a r e _ r e g _ u s e r ( c o n s t c h a r * i p , c o n s t c h a r * u s e r , 01936 01937 c o n s t c h a r * a p p l i c a t i o n ) ; 01938 01939 # e n d i f 01940 01941 C _ M O D E _ E N D 01942 01943 # e n d i f / * _ m y _ s y s _ h * / 01944 01945