q_malloc.h
6fa79282
 /* $Id$
  *
  * simple & fast malloc library
  */
 
 #ifndef q_malloc_h
 #define q_malloc_h
 
 
 struct qm_frag{
 	unsigned int size;
 	union{
 		struct qm_frag* nxt_free;
 		int is_free;
 	}u;
 };
 
 struct qm_frag_end{
 	unsigned int size;
 	struct qm_frag* prev_free;
 };
 
 
 struct qm_block{
 	unsigned int size; /* total size */
 	unsigned int used; /* alloc'ed size*/
 	unsigned int real_used; /* used+malloc overhead*/
02690ea6
 	unsigned int max_real_used;
6fa79282
 	
 	struct qm_frag* first_frag;
 	struct qm_frag_end* last_frag_end;
 	
 	struct qm_frag free_lst;
 	struct qm_frag_end free_lst_end;
 };
 
 
 
 struct qm_block* qm_malloc_init(char* address, unsigned int size);
 void* qm_malloc(struct qm_block*, unsigned int size);
 void  qm_free(struct qm_block*, void* p);
 void  qm_status(struct qm_block*);
 
 
 #endif