#ifndef __MTABLE_H #define __MTABLE_H #include #include #include #include "darray.h" #include "debug.h" typedef struct mt_range { //range postiont start end unsigned long start; unsigned long end; //cmp array start end void *cmp; int cmp_sz; //note string void *val; int val_sz; } mt_range; typedef struct mt_table { darray *table; } mt_table; mt_table* mt_create(); int mt_add( mt_table *mt, mt_range *rng ); mt_range* mt_search( mt_table *mt, int pos ); int mt_print( mt_table *mt ); void mt_destroy( mt_table *mt ); #define mt_size(MT_TABLE) (darr_end((MT_TABLE)->table)) #define mt_get(MT_TABLE,X) (darr_get((MT_TABLE)->table,X)) #endif