Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/nic/include/nic_addr_db.h

    r062d900 r9d58539  
    4343#endif
    4444
    45 #include <adt/hash_table.h>
     45#include <adt/hash_set.h>
     46
     47/**
     48 * Initial size of DB's hash set
     49 */
     50#define NIC_ADDR_DB_INIT_SIZE   8
     51/**
     52 * Maximal length of addresses in the DB (in bytes).
     53 */
     54#define NIC_ADDR_MAX_LENGTH             16
    4655
    4756/**
     
    4958 */
    5059typedef struct nic_addr_db {
    51         hash_table_t set;
     60        hash_set_t set;
    5261        size_t addr_len;
    5362} nic_addr_db_t;
    5463
     64/**
     65 * Helper structure for keeping the address in the hash set.
     66 */
     67typedef struct nic_addr_entry {
     68        link_t item;
     69        size_t addr_len;
     70        uint8_t addr[NIC_ADDR_MAX_LENGTH];
     71} nic_addr_entry_t;
    5572
    5673extern int nic_addr_db_init(nic_addr_db_t *db, size_t addr_len);
    5774extern void nic_addr_db_clear(nic_addr_db_t *db);
    5875extern void nic_addr_db_destroy(nic_addr_db_t *db);
     76extern size_t nic_addr_db_count(const nic_addr_db_t *db);
    5977extern int nic_addr_db_insert(nic_addr_db_t *db, const uint8_t *addr);
    6078extern int nic_addr_db_remove(nic_addr_db_t *db, const uint8_t *addr);
     79extern void nic_addr_db_remove_selected(nic_addr_db_t *db,
     80        int (*func)(const uint8_t *, void *), void *arg);
    6181extern int nic_addr_db_contains(const nic_addr_db_t *db, const uint8_t *addr);
    6282extern void nic_addr_db_foreach(const nic_addr_db_t *db,
Note: See TracChangeset for help on using the changeset viewer.