Changeset c62a8275 in mainline for uspace/srv


Ignore:
Timestamp:
2014-09-01T11:17:23Z (11 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a4666a9
Parents:
f93ba6d5 (diff), 320bd52 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~nufcia/helenos/rtl8169.

Location:
uspace/srv/net
Files:
3 edited

Legend:

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

    rf93ba6d5 rc62a8275  
    5959static int ethip_get_mtu(iplink_srv_t *srv, size_t *mtu);
    6060static int ethip_get_mac48(iplink_srv_t *srv, addr48_t *mac);
     61static int ethip_set_mac48(iplink_srv_t *srv, addr48_t *mac);
    6162static int ethip_addr_add(iplink_srv_t *srv, inet_addr_t *addr);
    6263static int ethip_addr_remove(iplink_srv_t *srv, inet_addr_t *addr);
     
    7172        .get_mtu = ethip_get_mtu,
    7273        .get_mac48 = ethip_get_mac48,
     74        .set_mac48 = ethip_set_mac48,
    7375        .addr_add = ethip_addr_add,
    7476        .addr_remove = ethip_addr_remove
     
    284286}
    285287
     288static int ethip_set_mac48(iplink_srv_t *srv, addr48_t *mac)
     289{
     290        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_set_mac48()");
     291       
     292        ethip_nic_t *nic = (ethip_nic_t *) srv->arg;
     293        addr48(*mac, nic->mac_addr);
     294       
     295        return EOK;
     296}
     297
    286298static int ethip_addr_add(iplink_srv_t *srv, inet_addr_t *addr)
    287299{
  • uspace/srv/net/ethip/ethip_nic.c

    rf93ba6d5 rc62a8275  
    245245            addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
    246246
     247        memcpy(&nic->mac_addr, addr, sizeof(nic->mac_addr));
     248
     249        rc = iplink_ev_change_addr(&nic->iplink, &nic->mac_addr);
     250        if (rc != EOK) {
     251                log_msg(LOG_DEFAULT, LVL_DEBUG, "iplink_ev_change_addr() failed");
     252                return;
     253        }
     254
    247255        free(addr);
    248256        async_answer_0(callid, EOK);
     
    309317                        break;
    310318                default:
    311                         log_msg(LOG_DEFAULT, LVL_DEBUG, "unknown IPC method: %d", (int) IPC_GET_IMETHOD(call));
     319                        log_msg(LOG_DEFAULT, LVL_DEBUG, "unknown IPC method: %" PRIun, IPC_GET_IMETHOD(call));
    312320                        async_answer_0(callid, ENOTSUP);
    313321                }
  • uspace/srv/net/inetsrv/inet_link.c

    rf93ba6d5 rc62a8275  
    5555
    5656static int inet_iplink_recv(iplink_t *, iplink_recv_sdu_t *, ip_ver_t);
     57static int inet_iplink_change_addr(iplink_t *, addr48_t);
    5758static inet_link_t *inet_link_get_by_id_locked(sysarg_t);
    5859
    5960static iplink_ev_ops_t inet_iplink_ev_ops = {
    60         .recv = inet_iplink_recv
     61        .recv = inet_iplink_recv,
     62        .change_addr = inet_iplink_change_addr,
    6163};
    6264
     
    110112       
    111113        return rc;
     114}
     115
     116static int inet_iplink_change_addr(iplink_t *iplink, addr48_t mac)
     117{
     118        log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_iplink_change_addr(): "
     119            "new addr=%02x:%02x:%02x:%02x:%02x:%02x",
     120            mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
     121
     122        list_foreach(inet_links, link_list, inet_link_t, ilink) {
     123                if (ilink->sess == iplink->sess)
     124                        memcpy(&ilink->mac, mac, sizeof(addr48_t));
     125        }
     126
     127        return EOK;
    112128}
    113129
Note: See TracChangeset for help on using the changeset viewer.