Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/ethip/atrans.c

    rfeeac0d r69a93df7  
    4949static FIBRIL_CONDVAR_INITIALIZE(atrans_cv);
    5050
    51 static ethip_atrans_t *atrans_find(addr32_t ip_addr)
     51static ethip_atrans_t *atrans_find(iplink_srv_addr_t *ip_addr)
    5252{
    53         list_foreach(atrans_list, atrans_list, ethip_atrans_t, atrans) {
    54                 if (atrans->ip_addr == ip_addr)
     53        list_foreach(atrans_list, link) {
     54                ethip_atrans_t *atrans = list_get_instance(link,
     55                    ethip_atrans_t, atrans_list);
     56
     57                if (atrans->ip_addr.ipv4 == ip_addr->ipv4)
    5558                        return atrans;
    5659        }
     
    5962}
    6063
    61 int atrans_add(addr32_t ip_addr, addr48_t mac_addr)
     64int atrans_add(iplink_srv_addr_t *ip_addr, mac48_addr_t *mac_addr)
    6265{
    6366        ethip_atrans_t *atrans;
     
    6871                return ENOMEM;
    6972
    70         atrans->ip_addr = ip_addr;
    71         addr48(mac_addr, atrans->mac_addr);
     73        atrans->ip_addr = *ip_addr;
     74        atrans->mac_addr = *mac_addr;
    7275
    7376        fibril_mutex_lock(&atrans_list_lock);
     
    8588}
    8689
    87 int atrans_remove(addr32_t ip_addr)
     90int atrans_remove(iplink_srv_addr_t *ip_addr)
    8891{
    8992        ethip_atrans_t *atrans;
     
    103106}
    104107
    105 int atrans_lookup(addr32_t ip_addr, addr48_t mac_addr)
     108int atrans_lookup(iplink_srv_addr_t *ip_addr, mac48_addr_t *mac_addr)
    106109{
     110        ethip_atrans_t *atrans;
     111
    107112        fibril_mutex_lock(&atrans_list_lock);
    108         ethip_atrans_t *atrans = atrans_find(ip_addr);
     113        atrans = atrans_find(ip_addr);
    109114        if (atrans == NULL) {
    110115                fibril_mutex_unlock(&atrans_list_lock);
    111116                return ENOENT;
    112117        }
    113        
     118
    114119        fibril_mutex_unlock(&atrans_list_lock);
    115         addr48(atrans->mac_addr, mac_addr);
     120        *mac_addr = atrans->mac_addr;
    116121        return EOK;
    117122}
     
    119124int atrans_wait_timeout(suseconds_t timeout)
    120125{
     126        int rc;
     127
    121128        fibril_mutex_lock(&atrans_list_lock);
    122         int rc = fibril_condvar_wait_timeout(&atrans_cv, &atrans_list_lock,
     129        rc = fibril_condvar_wait_timeout(&atrans_cv, &atrans_list_lock,
    123130            timeout);
    124131        fibril_mutex_unlock(&atrans_list_lock);
    125        
     132
    126133        return rc;
    127134}
Note: See TracChangeset for help on using the changeset viewer.