CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 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 D a t a s t r u c t u r e s f o r m y s y s / m y _ a l l o c . c ( r o o t m e m o r y a l l o c a t o r ) 00026 00027 * / 00028 00029 # i f n d e f _ m y _ a l l o c _ h 00030 00031 # d e f i n e _ m y _ a l l o c _ h 00032 00033 # d e f i n e A L L O C _ M A X _ B L O C K _ T O _ D R O P 4 0 9 6 00034 00035 # d e f i n e A L L O C _ M A X _ B L O C K _ U S A G E _ B E F O R E _ D R O P 1 0 00036 00037 t y p e d e f s t r u c t s t _ u s e d _ m e m 00038 00039 { / * s t r u c t f o r o n c e _ a l l o c ( b l o c k ) * / 00040 00041 s t r u c t s t _ u s e d _ m e m * n e x t ; / * N e x t b l o c k i n u s e * / 00042 00043 s i z e _ t l e f t ; / * m e m o r y l e f t i n b l o c k * / 00044 00045 s i z e _ t s i z e ; / * s i z e o f b l o c k * / 00046 00047 } U S E D _ M E M ; 00048 00049 00050 00051 t y p e d e f s t r u c t s t _ m e m _ r o o t 00052 00053 { 00054 00055 U S E D _ M E M * f r e e ; / * b l o c k s w i t h f r e e m e m o r y i n i t * / 00056 00057 U S E D _ M E M * u s e d ; / * b l o c k s a l m o s t w i t h o u t f r e e m e m o r y * / 00058 00059 U S E D _ M E M * p r e _ a l l o c ; / * p r e a l l o c a t e d b l o c k * / 00060 00061 / * i f b l o c k h a v e l e s s m e m o r y i t w i l l b e p u t i n ' u s e d ' l i s t * / 00062 00063 s i z e _ t m i n _ m a l l o c ; 00064 00065 s i z e _ t b l o c k _ s i z e ; / * i n i t i a l b l o c k s i z e * / 00066 00067 u n s i g n e d i n t b l o c k _ n u m ; / * a l l o c a t e d b l o c k s c o u n t e r * / 00068 00069 / * 00070 00071 f i r s t f r e e b l o c k i n q u e u e t e s t c o u n t e r ( i f i t e x c e e d 00072 00073 M A X _ B L O C K _ U S A G E _ B E F O R E _ D R O P b l o c k w i l l b e d r o p p e d i n ' u s e d ' l i s t ) 00074 00075 * / 00076 00077 u n s i g n e d i n t f i r s t _ b l o c k _ u s a g e ; 00078 00079 v o i d ( * e r r o r _ h a n d l e r ) ( v o i d ) ; 00080 00081 } M E M _ R O O T ; 00082 00083 # e n d i f 00084 00085