Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/nil/nil_remote.c

    r8d7ec69d r609243f4  
    3636 */
    3737
    38 #include <ipc/loc.h>
    3938#include <nil_remote.h>
    4039#include <generic.h>
     
    4443#include <ipc/nil.h>
    4544
     45/** Notify the network interface layer about the device state change.
     46 *
     47 * @param[in] sess      Network interface layer session.
     48 * @param[in] device_id Device identifier.
     49 * @param[in] state     New device state.
     50 *
     51 * @return EOK on success.
     52 * @return Other error codes as defined for each specific module
     53 *         device state function.
     54 *
     55 */
     56int nil_device_state_msg(async_sess_t *sess, nic_device_id_t device_id,
     57    sysarg_t state)
     58{
     59        return generic_device_state_msg_remote(sess, NET_NIL_DEVICE_STATE,
     60            device_id, state, 0);
     61}
     62
     63/** Pass the packet queue to the network interface layer.
     64 *
     65 * Process and redistribute the received packet queue to the registered
     66 * upper layers.
     67 *
     68 * @param[in] sess      Network interface layer session.
     69 * @param[in] device_id Source device identifier.
     70 * @param[in] packet    Received packet or the received packet queue.
     71 * @param[in] target    Target service. Ignored parameter.
     72 *
     73 * @return EOK on success.
     74 * @return Other error codes as defined for each specific module
     75 *         received function.
     76 *
     77 */
     78int nil_received_msg(async_sess_t *sess, nic_device_id_t device_id,
     79    packet_id_t packet_id)
     80{
     81        return generic_received_msg_remote(sess, NET_NIL_RECEIVED,
     82            device_id, packet_id, 0, 0);
     83}
     84
     85/** Notify upper layers that device address has changed
     86 *
     87 */
     88int nil_addr_changed_msg(async_sess_t *sess, nic_device_id_t device_id,
     89    const nic_address_t *address)
     90{
     91        assert(sess);
     92       
     93        async_exch_t *exch = async_exchange_begin(sess);
     94       
     95        aid_t message_id = async_send_1(exch, NET_NIL_ADDR_CHANGED,
     96            (sysarg_t) device_id, NULL);
     97        int rc = async_data_write_start(exch, address, sizeof (nic_address_t));
     98       
     99        async_exchange_end(exch);
     100       
     101        sysarg_t res;
     102    async_wait_for(message_id, &res);
     103       
     104    if (rc != EOK)
     105                return rc;
     106       
     107    return (int) res;
     108}
     109
    46110int nil_device_req(async_sess_t *sess, nic_device_id_t device_id,
    47     service_id_t sid, size_t mtu)
     111    devman_handle_t handle, size_t mtu)
    48112{
    49113        async_exch_t *exch = async_exchange_begin(sess);
    50114        int rc = async_req_3_0(exch, NET_NIL_DEVICE, (sysarg_t) device_id,
    51             (sysarg_t) sid, (sysarg_t) mtu);
     115            (sysarg_t) handle, (sysarg_t) mtu);
    52116        async_exchange_end(exch);
    53117        return rc;
Note: See TracChangeset for help on using the changeset viewer.