Ignore:
File:
1 edited

Legend:

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

    r69a93df7 rfeeac0d  
    4949static FIBRIL_CONDVAR_INITIALIZE(atrans_cv);
    5050
    51 static ethip_atrans_t *atrans_find(iplink_srv_addr_t *ip_addr)
     51static ethip_atrans_t *atrans_find(addr32_t ip_addr)
    5252{
    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)
     53        list_foreach(atrans_list, atrans_list, ethip_atrans_t, atrans) {
     54                if (atrans->ip_addr == ip_addr)
    5855                        return atrans;
    5956        }
     
    6259}
    6360
    64 int atrans_add(iplink_srv_addr_t *ip_addr, mac48_addr_t *mac_addr)
     61int atrans_add(addr32_t ip_addr, addr48_t mac_addr)
    6562{
    6663        ethip_atrans_t *atrans;
     
    7168                return ENOMEM;
    7269
    73         atrans->ip_addr = *ip_addr;
    74         atrans->mac_addr = *mac_addr;
     70        atrans->ip_addr = ip_addr;
     71        addr48(mac_addr, atrans->mac_addr);
    7572
    7673        fibril_mutex_lock(&atrans_list_lock);
     
    8885}
    8986
    90 int atrans_remove(iplink_srv_addr_t *ip_addr)
     87int atrans_remove(addr32_t ip_addr)
    9188{
    9289        ethip_atrans_t *atrans;
     
    106103}
    107104
    108 int atrans_lookup(iplink_srv_addr_t *ip_addr, mac48_addr_t *mac_addr)
     105int atrans_lookup(addr32_t ip_addr, addr48_t mac_addr)
    109106{
    110         ethip_atrans_t *atrans;
    111 
    112107        fibril_mutex_lock(&atrans_list_lock);
    113         atrans = atrans_find(ip_addr);
     108        ethip_atrans_t *atrans = atrans_find(ip_addr);
    114109        if (atrans == NULL) {
    115110                fibril_mutex_unlock(&atrans_list_lock);
    116111                return ENOENT;
    117112        }
    118 
     113       
    119114        fibril_mutex_unlock(&atrans_list_lock);
    120         *mac_addr = atrans->mac_addr;
     115        addr48(atrans->mac_addr, mac_addr);
    121116        return EOK;
    122117}
     
    124119int atrans_wait_timeout(suseconds_t timeout)
    125120{
    126         int rc;
    127 
    128121        fibril_mutex_lock(&atrans_list_lock);
    129         rc = fibril_condvar_wait_timeout(&atrans_cv, &atrans_list_lock,
     122        int rc = fibril_condvar_wait_timeout(&atrans_cv, &atrans_list_lock,
    130123            timeout);
    131124        fibril_mutex_unlock(&atrans_list_lock);
    132 
     125       
    133126        return rc;
    134127}
Note: See TracChangeset for help on using the changeset viewer.