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]); \
183 MDB_ID2L mdb_mid2l_alloc(
int num);
185 void mdb_mid2l_free(MDB_ID2L ids);
187 int mdb_mid2l_need( MDB_ID2L *idp,
unsigned num );
201 unsigned mdb_mid3l_search( MDB_ID3L ids, MDB_ID
id );
202 int mdb_mid3l_insert( MDB_ID3L ids,
MDB_ID3 *
id );