unsigned int vr_htable_size(vr_htable_t htable) { struct vr_htable *table = (struct vr_htable *)htable; unsigned int size = 0; if (table) { if (table->ht_htable) size = vr_btable_size(table->ht_htable); if (table->ht_otable) size += vr_btable_size(table->ht_otable); } return size; }
void * vr_htable_get_address(vr_htable_t htable, uint64_t offset) { struct vr_htable *table = (struct vr_htable *)htable; unsigned int size = vr_btable_size(table->ht_htable); struct vr_btable *btable; btable = table->ht_htable; if (offset >= size) { offset -= size; btable = table->ht_otable; } return vr_btable_get_address(btable, offset); }
unsigned int vr_oflow_table_size(struct vrouter *router) { return vr_btable_size(router->vr_oflow_table); }