int ropa_init (unsigned num_cb, unsigned num_cli, unsigned num_cc, unsigned hashsz_cb, unsigned hashsz_cli, unsigned hashsz_cc) { ht_callbacks = hashtabnew (hashsz_cb, callbacks_cmp, callbacks_hash); if (ht_callbacks == NULL) errx (1, "ropa_init: failed to create hashtable for callbacks"); ht_clients_ip = hashtabnew (hashsz_cli, clients_cmp_ip, clients_hash_ip); if (ht_clients_ip == NULL) errx (1, "ropa_init: failed to create hashtable for clients_ip"); ht_clients_uuid = hashtabnew (hashsz_cli, clients_cmp_uuid, clients_hash_uuid); if (ht_clients_uuid == NULL) errx (1, "ropa_init: failed to create hashtable for clients_uuid"); ht_ccpairs = hashtabnew (hashsz_cc, ccpairs_cmp, ccpairs_hash); if (ht_ccpairs == NULL) errx (1, "ropa_init: failed to create hashtable for ccpairs"); lru_clients = listnew (); if (lru_clients == NULL) errx (1, "ropa_init: failed to create lru for clients"); lru_ccpair = listnew (); if (lru_ccpair == NULL) errx (1, "ropa_init: failed to create list for ccpairs"); lru_callback = listnew (); if (lru_callback == NULL) errx (1, "ropa_init: failed to create list for callback"); heap_ccpairs = heap_new (num_cc, ccpair_cmp_time); if (heap_ccpairs == NULL) errx (1, "ropa_init: failed to create heap for ccpairs"); create_clients(num_cli); create_callbacks(num_cb); create_ccpairs(num_cc); uuid_init_simple (&server_uuid, 0x82ED305E); if (LWP_CreateProcess (heapcleaner, ROPA_STACKSIZE, 1, NULL, "heap-invalidator", &cleaner_pid)) errx (1, "ropa_init: LWP_CreateProcess failed"); debuglevel = mlog_log_get_level_num(); /* XXX */ return 0; }
static int test_hash(void) { Hashtab *h; starttesting("hashtab"); h = hashtabnew(100, hash_cmp, hash_hash); if (!h) return endtesting(1); if (!hashtabadd(h, "one")|| !hashtabadd(h, "two")|| !hashtabadd(h, "three")|| !hashtabadd(h, "four")) return endtesting(1); printf("foreach ----\n"); hashtabforeach(h, hash_print, NULL); printf("search ----\none == %s\ntwo == %s\nthree == %s\nfour == %s\n", (char *)hashtabsearch(h, "one"), (char *)hashtabsearch(h, "two"), (char *)hashtabsearch(h, "three"), (char *)hashtabsearch(h, "four")); hashtabrelease(h); return endtesting(0); }
void mnode_init (unsigned num) { struct mnode *nodes = calloc (sizeof(struct mnode), num); int i; mnode_numfree = mnode_nodes = num; if (nodes == NULL) errx (1, "mnode_init: calloc failed"); mnode_lru = listnew(); if (mnode_lru == NULL) errx (1, "mnode_init: listnew returned NULL"); for (i = 0; i < num ;i++) { nodes[i].li = listaddhead (mnode_lru, &nodes[i]); assert(nodes[i].li); } mnode_htab = hashtabnew (num * 2, /* XXX */ mnode_cmp, mnode_hash); if (mnode_htab == NULL) errx (1, "mnode_init: hashtabnew returned NULL"); }
int vld_init (void) { struct dp_part *dp; int ret, partnum, i; db_lru = listnew(); if (db_lru == NULL) errx (1, "vld_init: db_lru == NULL"); for (i = 0; i < 100 /* XXX */ ; i++) listaddhead (db_lru, NULL); vol_list = listnew(); if (vol_list == NULL) errx (1, "vld_init: vol_list == NULL"); volume_htab = hashtabnew(volume_htab_sz, volume_cmp, volume_hash); if (volume_htab == NULL) errx (1, "vld_init: volume_htab == NULL"); for (partnum = 0; partnum < 'z'-'a'; partnum++) { ret = dp_create (partnum , &dp); if (ret) { warnx ("vld_init: dp_create(%d) returned %d", partnum, ret); continue; } ret = dp_findvol (dp, register_vols_cb, dp); if (ret) warnx ("vld_init: dp_findvol returned: %d", ret); dp_free (dp); } return 0; }
void conn_init (unsigned nentries) { arla_warnx (ADEBCONN, "initconncache"); connhtab = hashtabnew (CONNCACHESIZE, conncmp, connhash); if (connhtab == NULL) arla_errx (1, ADEBERROR, "conn_init: hashtabnew failed"); connfreelist = listnew (); if (connfreelist == NULL) arla_errx (1, ADEBERROR, "conn_init: listnew failed"); connprobelist = listnew (); if (connprobelist == NULL) arla_errx (1, ADEBERROR, "conn_init: listnew failed"); nconnections = 0; if (LWP_CreateProcess (pinger, PINGER_STACKSIZE, 1, NULL, "pinger", &pinger_pid)) arla_errx (1, ADEBERROR, "conn: cannot create pinger thread"); create_new_connections (nentries); }
void initsym(void) { htab = hashtabnew(101, cmp, hash); }