Changeset 77a69ea in mainline for uspace/srv/net/nil/eth/eth.c


Ignore:
Timestamp:
2012-01-21T15:06:51Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ce7676c
Parents:
e86b8f0
Message:

Allow multiple tasks to register for loc category change events.
Open NIC devices via location service, discover using category change events.
Eliminate device_added driver entry point.
loc_service_get_name() should return fully qualified service name.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/nil/eth/eth.c

    re86b8f0 r77a69ea  
    4848#include <ipc/net.h>
    4949#include <ipc/services.h>
     50#include <loc.h>
    5051#include <net/modules.h>
    5152#include <net_checksum.h>
     
    226227 *
    227228 * @param[in] device_id New device identifier.
    228  * @param[in] handle    Device driver handle.
     229 * @param[in] sid       NIC service ID.
    229230 * @param[in] mtu       Device maximum transmission unit.
    230231 *
     
    234235 *
    235236 */
    236 static int eth_device_message(nic_device_id_t device_id, devman_handle_t handle,
     237static int eth_device_message(nic_device_id_t device_id, service_id_t sid,
    237238    size_t mtu)
    238239{
     
    259260        device = eth_devices_find(&eth_globals.devices, device_id);
    260261        if (device) {
    261                 if (device->handle != handle) {
     262                if (device->sid != sid) {
    262263                        printf("Device %d already exists\n", device->device_id);
    263264                        fibril_rwlock_write_unlock(&eth_globals.devices_lock);
     
    298299
    299300        device->device_id = device_id;
    300         device->handle = handle;
     301        device->sid = sid;
    301302        device->flags = 0;
    302303        if ((mtu > 0) && (mtu <= ETH_MAX_TAGGED_CONTENT(device->flags)))
     
    335336       
    336337        /* Bind the device driver */
    337         device->sess = devman_device_connect(EXCHANGE_SERIALIZE, handle,
     338        device->sess = loc_service_connect(EXCHANGE_SERIALIZE, sid,
    338339            IPC_FLAG_BLOCKING);
    339340        if (device->sess == NULL) {
     
    362363        }
    363364       
    364         printf("%s: Device registered (id: %d, handle: %zu: mtu: %zu, "
     365        printf("%s: Device registered (id: %d, sid: %zu: mtu: %zu, "
    365366            "mac: " PRIMAC ", flags: 0x%x)\n", NAME,
    366             device->device_id, device->handle, device->mtu,
     367            device->device_id, device->sid, device->mtu,
    367368            ARGSMAC(device->addr.address), device->flags);
    368369
Note: See TracChangeset for help on using the changeset viewer.