60#define MDB_IDL_LOGN 16
62#define MDB_IDL_DB_SIZE (1<<MDB_IDL_LOGN)
63#define MDB_IDL_UM_SIZE (1<<(MDB_IDL_LOGN+1))
65#define MDB_IDL_DB_MAX (MDB_IDL_DB_SIZE-1)
66#define MDB_IDL_UM_MAX (MDB_IDL_UM_SIZE-1)
68#define MDB_IDL_SIZEOF(ids) (((ids)[0]+1) * sizeof(MDB_ID))
69#define MDB_IDL_IS_ZERO(ids) ( (ids)[0] == 0 )
70#define MDB_IDL_CPY( dst, src ) (memcpy( dst, src, MDB_IDL_SIZEOF( src ) ))
71#define MDB_IDL_FIRST( ids ) ( (ids)[1] )
72#define MDB_IDL_LAST( ids ) ( (ids)[(ids)[0]] )
75#define MDB_IDL_ALLOCLEN( ids ) ( (ids)[-1] )
78#define mdb_midl_xappend(idl, id) do { \
79 MDB_ID *xidl = (idl), xlen = ++(xidl[0]); \
MDB_ID mid
Definition midl.h:150
void * mptr
Definition midl.h:151
void mdb_midl_free(MDB_IDL ids)
Definition midl.c:114
int mdb_midl_append_list(MDB_IDL *idp, MDB_IDL app)
Definition midl.c:171
MDB_ID * MDB_IDL
Definition midl.h:54
int mdb_midl_need(MDB_IDL *idp, unsigned num)
Definition midl.c:143
void mdb_midl_xmerge(MDB_IDL idl, MDB_IDL merge)
Definition midl.c:201
unsigned mdb_mid2l_search(MDB_ID2L ids, MDB_ID id)
Definition midl.c:281
int mdb_mid2l_append(MDB_ID2L ids, MDB_ID2 *id)
Definition midl.c:347
int mdb_mid2l_insert(MDB_ID2L ids, MDB_ID2 *id)
Definition midl.c:316
void mdb_midl_shrink(MDB_IDL *idp)
Definition midl.c:120
unsigned mdb_midl_search(MDB_IDL ids, MDB_ID id)
Definition midl.c:34
MDB_IDL mdb_midl_alloc(int num)
Definition midl.c:104
void mdb_midl_sort(MDB_IDL ids)
Definition midl.c:221
int mdb_midl_append_range(MDB_IDL *idp, MDB_ID id, unsigned n)
Definition midl.c:185
size_t MDB_ID
Definition midl.h:46
int mdb_midl_append(MDB_IDL *idp, MDB_ID id)
Definition midl.c:157
MDB_ID2 * MDB_ID2L
Definition midl.h:159