Changeset 77a69ea in mainline for uspace/srv/net/nil


Ignore:
Timestamp:
2012-01-21T15:06:51Z (14 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.

Location:
uspace/srv/net/nil
Files:
4 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
  • uspace/srv/net/nil/eth/eth.h

    re86b8f0 r77a69ea  
    4141#include <async.h>
    4242#include <fibril_synch.h>
     43#include <ipc/loc.h>
    4344#include <ipc/services.h>
    4445#include <net/device.h>
    4546#include <adt/measured_strings.h>
    46 #include <devman.h>
    4747
    4848/** Ethernet address length. */
     
    224224        nic_device_id_t device_id;
    225225        /** Device handle */
    226         devman_handle_t handle;
     226        service_id_t sid;
    227227        /** Driver session. */
    228228        async_sess_t *sess;
  • uspace/srv/net/nil/nildummy/nildummy.c

    re86b8f0 r77a69ea  
    5353#include <packet_remote.h>
    5454#include <packet_client.h>
    55 #include <devman.h>
    5655#include <device/nic.h>
     56#include <loc.h>
    5757#include <nil_skel.h>
    5858#include "nildummy.h"
     
    115115 */
    116116static int nildummy_device_message(nic_device_id_t device_id,
    117     devman_handle_t handle, size_t mtu)
     117    service_id_t sid, size_t mtu)
    118118{
    119119        fibril_rwlock_write_lock(&nildummy_globals.devices_lock);
     
    123123            nildummy_devices_find(&nildummy_globals.devices, device_id);
    124124        if (device) {
    125                 if (device->handle != handle) {
     125                if (device->sid != sid) {
    126126                        printf("Device %d exists, handles do not match\n",
    127127                            device->device_id);
     
    158158       
    159159        device->device_id = device_id;
    160         device->handle = handle;
     160        device->sid = sid;
    161161        if (mtu > 0)
    162162                device->mtu = mtu;
     
    165165       
    166166        /* Bind the device driver */
    167         device->sess = devman_device_connect(EXCHANGE_SERIALIZE, handle,
     167        device->sess = loc_service_connect(EXCHANGE_SERIALIZE, sid,
    168168            IPC_FLAG_BLOCKING);
    169169        if (device->sess == NULL) {
  • uspace/srv/net/nil/nildummy/nildummy.h

    re86b8f0 r77a69ea  
    4141#include <async.h>
    4242#include <fibril_synch.h>
     43#include <ipc/loc.h>
    4344#include <ipc/services.h>
    44 #include <ipc/devman.h>
    4545#include <net/device.h>
    4646
     
    7878        /** Device identifier. */
    7979        nic_device_id_t device_id;
    80         /** Device driver handle. */
    81         devman_handle_t handle;
     80        /** Device service ID. */
     81        service_id_t sid;
    8282        /** Driver session. */
    8383        async_sess_t *sess;
Note: See TracChangeset for help on using the changeset viewer.