Ignore:
File:
1 edited

Legend:

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

    r96c0b7b r02a09ed  
    3737#include <adt/list.h>
    3838#include <async.h>
    39 #include <bool.h>
     39#include <stdbool.h>
    4040#include <errno.h>
    4141#include <fibril_synch.h>
     
    6868        rc = loc_category_get_id("nic", &iplink_cat, IPC_FLAG_BLOCKING);
    6969        if (rc != EOK) {
    70                 log_msg(LVL_ERROR, "Failed resolving category 'nic'.");
     70                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed resolving category 'nic'.");
    7171                fibril_mutex_unlock(&ethip_discovery_lock);
    7272                return ENOENT;
     
    7575        rc = loc_category_get_svcs(iplink_cat, &svcs, &count);
    7676        if (rc != EOK) {
    77                 log_msg(LVL_ERROR, "Failed getting list of IP links.");
     77                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed getting list of IP links.");
    7878                fibril_mutex_unlock(&ethip_discovery_lock);
    7979                return EIO;
     
    9393
    9494                if (!already_known) {
    95                         log_msg(LVL_DEBUG, "Found NIC '%lu'",
     95                        log_msg(LOG_DEFAULT, LVL_DEBUG, "Found NIC '%lu'",
    9696                            (unsigned long) svcs[i]);
    9797                        rc = ethip_nic_open(svcs[i]);
    9898                        if (rc != EOK)
    99                                 log_msg(LVL_ERROR, "Could not open NIC.");
     99                                log_msg(LOG_DEFAULT, LVL_ERROR, "Could not open NIC.");
    100100                }
    101101        }
     
    110110
    111111        if (nic == NULL) {
    112                 log_msg(LVL_ERROR, "Failed allocating NIC structure. "
     112                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed allocating NIC structure. "
    113113                    "Out of memory.");
    114114                return NULL;
     
    121121}
    122122
    123 static ethip_link_addr_t *ethip_nic_addr_new(iplink_srv_addr_t *addr)
     123static ethip_link_addr_t *ethip_nic_addr_new(inet_addr_t *addr)
    124124{
    125125        ethip_link_addr_t *laddr = calloc(1, sizeof(ethip_link_addr_t));
    126 
    127126        if (laddr == NULL) {
    128                 log_msg(LVL_ERROR, "Failed allocating NIC address structure. "
     127                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed allocating NIC address structure. "
    129128                    "Out of memory.");
    130129                return NULL;
    131130        }
    132 
     131       
    133132        link_initialize(&laddr->addr_list);
    134         laddr->addr.ipv4 = addr->ipv4;
     133        laddr->addr = *addr;
     134       
    135135        return laddr;
    136136}
     
    150150static int ethip_nic_open(service_id_t sid)
    151151{
    152         ethip_nic_t *nic;
    153         int rc;
    154152        bool in_list = false;
    155153        nic_address_t nic_address;
    156 
    157         log_msg(LVL_DEBUG, "ethip_nic_open()");
    158         nic = ethip_nic_new();
     154       
     155        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_open()");
     156        ethip_nic_t *nic = ethip_nic_new();
    159157        if (nic == NULL)
    160158                return ENOMEM;
    161 
    162         rc = loc_service_get_name(sid, &nic->svc_name);
    163         if (rc != EOK) {
    164                 log_msg(LVL_ERROR, "Failed getting service name.");
    165                 goto error;
    166         }
    167 
     159       
     160        int rc = loc_service_get_name(sid, &nic->svc_name);
     161        if (rc != EOK) {
     162                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed getting service name.");
     163                goto error;
     164        }
     165       
    168166        nic->sess = loc_service_connect(EXCHANGE_SERIALIZE, sid, 0);
    169167        if (nic->sess == NULL) {
    170                 log_msg(LVL_ERROR, "Failed connecting '%s'", nic->svc_name);
    171                 goto error;
    172         }
    173 
     168                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed connecting '%s'", nic->svc_name);
     169                goto error;
     170        }
     171       
    174172        nic->svc_id = sid;
    175 
     173       
    176174        rc = nic_callback_create(nic->sess, ethip_nic_cb_conn, nic);
    177175        if (rc != EOK) {
    178                 log_msg(LVL_ERROR, "Failed creating callback connection "
     176                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed creating callback connection "
    179177                    "from '%s'", nic->svc_name);
    180178                goto error;
    181179        }
    182180
    183         log_msg(LVL_DEBUG, "Opened NIC '%s'", nic->svc_name);
     181        log_msg(LOG_DEFAULT, LVL_DEBUG, "Opened NIC '%s'", nic->svc_name);
    184182        list_append(&nic->nic_list, &ethip_nic_list);
    185183        in_list = true;
     
    191189        rc = nic_get_address(nic->sess, &nic_address);
    192190        if (rc != EOK) {
    193                 log_msg(LVL_ERROR, "Error getting MAC address of NIC '%s'.",
     191                log_msg(LOG_DEFAULT, LVL_ERROR, "Error getting MAC address of NIC '%s'.",
    194192                    nic->svc_name);
    195193                goto error;
    196194        }
    197 
    198         mac48_decode(nic_address.address, &nic->mac_addr);
     195       
     196        addr48(nic_address.address, nic->mac_addr);
    199197
    200198        rc = nic_set_state(nic->sess, NIC_STATE_ACTIVE);
    201199        if (rc != EOK) {
    202                 log_msg(LVL_ERROR, "Error activating NIC '%s'.",
     200                log_msg(LOG_DEFAULT, LVL_ERROR, "Error activating NIC '%s'.",
    203201                    nic->svc_name);
    204202                goto error;
    205203        }
    206204
    207         log_msg(LVL_DEBUG, "Initialized IP link service, MAC = 0x%" PRIx64,
    208             nic->mac_addr.addr);
     205        log_msg(LOG_DEFAULT, LVL_DEBUG, "Initialized IP link service,");
    209206
    210207        return EOK;
     
    227224    ipc_call_t *call)
    228225{
    229         log_msg(LVL_DEBUG, "ethip_nic_addr_changed()");
     226        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_addr_changed()");
    230227        async_answer_0(callid, ENOTSUP);
    231228}
     
    238235        size_t size;
    239236
    240         log_msg(LVL_DEBUG, "ethip_nic_received() nic=%p", nic);
     237        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_received() nic=%p", nic);
    241238
    242239        rc = async_data_write_accept(&data, false, 0, 0, 0, &size);
    243240        if (rc != EOK) {
    244                 log_msg(LVL_DEBUG, "data_write_accept() failed");
     241                log_msg(LOG_DEFAULT, LVL_DEBUG, "data_write_accept() failed");
    245242                return;
    246243        }
    247244
    248         log_msg(LVL_DEBUG, "Ethernet PDU contents (%zu bytes)",
     245        log_msg(LOG_DEFAULT, LVL_DEBUG, "Ethernet PDU contents (%zu bytes)",
    249246            size);
    250247
    251         log_msg(LVL_DEBUG, "call ethip_received");
     248        log_msg(LOG_DEFAULT, LVL_DEBUG, "call ethip_received");
    252249        rc = ethip_received(&nic->iplink, data, size);
    253         log_msg(LVL_DEBUG, "free data");
     250        log_msg(LOG_DEFAULT, LVL_DEBUG, "free data");
    254251        free(data);
    255252
    256         log_msg(LVL_DEBUG, "ethip_nic_received() done, rc=%d", rc);
     253        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_received() done, rc=%d", rc);
    257254        async_answer_0(callid, rc);
    258255}
     
    261258    ipc_call_t *call)
    262259{
    263         log_msg(LVL_DEBUG, "ethip_nic_device_state()");
     260        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_device_state()");
    264261        async_answer_0(callid, ENOTSUP);
    265262}
     
    269266        ethip_nic_t *nic = (ethip_nic_t *)arg;
    270267
    271         log_msg(LVL_DEBUG, "ethnip_nic_cb_conn()");
     268        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethnip_nic_cb_conn()");
    272269
    273270        while (true) {
     
    298295int ethip_nic_discovery_start(void)
    299296{
    300         int rc;
    301 
    302         rc = loc_register_cat_change_cb(ethip_nic_cat_change_cb);
    303         if (rc != EOK) {
    304                 log_msg(LVL_ERROR, "Failed registering callback for NIC "
     297        int rc = loc_register_cat_change_cb(ethip_nic_cat_change_cb);
     298        if (rc != EOK) {
     299                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering callback for NIC "
    305300                    "discovery (%d).", rc);
    306301                return rc;
    307302        }
    308 
     303       
    309304        return ethip_nic_check_new();
    310305}
     
    312307ethip_nic_t *ethip_nic_find_by_iplink_sid(service_id_t iplink_sid)
    313308{
    314         log_msg(LVL_DEBUG, "ethip_nic_find_by_iplink_sid(%u)",
     309        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_find_by_iplink_sid(%u)",
    315310            (unsigned) iplink_sid);
    316311
    317312        list_foreach(ethip_nic_list, link) {
    318                 log_msg(LVL_DEBUG, "ethip_nic_find_by_iplink_sid - element");
     313                log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_find_by_iplink_sid - element");
    319314                ethip_nic_t *nic = list_get_instance(link, ethip_nic_t,
    320315                    nic_list);
    321316
    322317                if (nic->iplink_sid == iplink_sid) {
    323                         log_msg(LVL_DEBUG, "ethip_nic_find_by_iplink_sid - found %p", nic);
     318                        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_find_by_iplink_sid - found %p", nic);
    324319                        return nic;
    325320                }
    326321        }
    327322
    328         log_msg(LVL_DEBUG, "ethip_nic_find_by_iplink_sid - not found");
     323        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_find_by_iplink_sid - not found");
    329324        return NULL;
    330325}
     
    333328{
    334329        int rc;
    335         log_msg(LVL_DEBUG, "ethip_nic_send(size=%zu)", size);
     330        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_send(size=%zu)", size);
    336331        rc = nic_send_frame(nic->sess, data, size);
    337         log_msg(LVL_DEBUG, "nic_send_frame -> %d", rc);
     332        log_msg(LOG_DEFAULT, LVL_DEBUG, "nic_send_frame -> %d", rc);
    338333        return rc;
    339334}
    340335
    341 int ethip_nic_addr_add(ethip_nic_t *nic, iplink_srv_addr_t *addr)
    342 {
    343         ethip_link_addr_t *laddr;
    344 
    345         log_msg(LVL_DEBUG, "ethip_nic_addr_add()");
    346         laddr = ethip_nic_addr_new(addr);
     336int ethip_nic_addr_add(ethip_nic_t *nic, inet_addr_t *addr)
     337{
     338        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_addr_add()");
     339       
     340        ethip_link_addr_t *laddr = ethip_nic_addr_new(addr);
    347341        if (laddr == NULL)
    348342                return ENOMEM;
    349 
     343       
    350344        list_append(&laddr->addr_list, &nic->addr_list);
    351345        return EOK;
    352346}
    353347
    354 int ethip_nic_addr_remove(ethip_nic_t *nic, iplink_srv_addr_t *addr)
    355 {
    356         ethip_link_addr_t *laddr;
    357 
    358         log_msg(LVL_DEBUG, "ethip_nic_addr_remove()");
    359 
    360         laddr = ethip_nic_addr_find(nic, addr);
     348int ethip_nic_addr_remove(ethip_nic_t *nic, inet_addr_t *addr)
     349{
     350        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_addr_remove()");
     351       
     352        ethip_link_addr_t *laddr = ethip_nic_addr_find(nic, addr);
    361353        if (laddr == NULL)
    362354                return ENOENT;
    363 
     355       
    364356        list_remove(&laddr->addr_list);
    365357        ethip_link_addr_delete(laddr);
     
    368360
    369361ethip_link_addr_t *ethip_nic_addr_find(ethip_nic_t *nic,
    370     iplink_srv_addr_t *addr)
    371 {
    372         log_msg(LVL_DEBUG, "ethip_nic_addr_find()");
    373 
     362    inet_addr_t *addr)
     363{
     364        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_nic_addr_find()");
     365       
    374366        list_foreach(nic->addr_list, link) {
    375367                ethip_link_addr_t *laddr = list_get_instance(link,
    376368                    ethip_link_addr_t, addr_list);
    377 
    378                 if (addr->ipv4 == laddr->addr.ipv4)
     369               
     370                if (inet_addr_compare(addr, &laddr->addr))
    379371                        return laddr;
    380372        }
    381 
     373       
    382374        return NULL;
    383375}
Note: See TracChangeset for help on using the changeset viewer.