Changeset 609243f4 in mainline for uspace/lib/net/generic


Ignore:
Timestamp:
2011-10-07T15:46:01Z (14 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e2c50e1
Parents:
f51b1d3
Message:

cherrypick general networking improvements from lp:~helenos-nicf/helenos/nicf (after sanitization)
remove obsolete networking drivers
this renders the networking non-functional for the time being

Location:
uspace/lib/net/generic
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/generic/generic.c

    rf51b1d3 r609243f4  
    5454 */
    5555int generic_device_state_msg_remote(async_sess_t *sess, sysarg_t message,
    56     device_id_t device_id, sysarg_t state, services_t target)
     56    nic_device_id_t device_id, sysarg_t state, services_t target)
    5757{
    5858        async_exch_t *exch = async_exchange_begin(sess);
     
    6868 * @param[in] message   Service specific message.
    6969 * @param[in] device_id Device identifier.
    70  * @param[in] arg2      Second argument of the message.
    7170 * @param[in] service   Device module service.
    7271 *
     
    7776 */
    7877int generic_device_req_remote(async_sess_t *sess, sysarg_t message,
    79     device_id_t device_id, sysarg_t arg2, services_t service)
    80 {
    81         async_exch_t *exch = async_exchange_begin(sess);
    82         int rc = async_req_3_0(exch, message, (sysarg_t) device_id,
    83             arg2, (sysarg_t) service);
     78    nic_device_id_t device_id, services_t service)
     79{
     80        async_exch_t *exch = async_exchange_begin(sess);
     81        int rc = async_req_2_0(exch, message, (sysarg_t) device_id,
     82            (sysarg_t) service);
    8483        async_exchange_end(exch);
    8584       
     
    103102 */
    104103int generic_get_addr_req(async_sess_t *sess, sysarg_t message,
    105     device_id_t device_id, measured_string_t **address, uint8_t **data)
    106 {
    107         if ((!address) || (!data))
     104    nic_device_id_t device_id, uint8_t *address, size_t max_len)
     105{
     106        if (!address)
    108107                return EBADMEM;
    109108       
    110109        /* Request the address */
    111110        async_exch_t *exch = async_exchange_begin(sess);
    112         aid_t message_id = async_send_1(exch, message, (sysarg_t) device_id,
     111        aid_t aid = async_send_1(exch, message, (sysarg_t) device_id,
    113112            NULL);
    114         int rc = measured_strings_return(exch, address, data, 1);
     113        int rc = async_data_read_start(exch, address, max_len);
    115114        async_exchange_end(exch);
    116115       
    117116        sysarg_t result;
    118         async_wait_for(message_id, &result);
    119        
    120         /* If not successful */
    121         if ((rc == EOK) && (result != EOK)) {
    122                 /* Clear the data */
    123                 free(*address);
    124                 free(*data);
    125         }
     117        async_wait_for(aid, &result);
     118       
     119        if (rc != EOK)
     120                return rc;
    126121       
    127122        return (int) result;
     
    142137 */
    143138int generic_packet_size_req_remote(async_sess_t *sess, sysarg_t message,
    144     device_id_t device_id, packet_dimension_t *packet_dimension)
     139    nic_device_id_t device_id, packet_dimension_t *packet_dimension)
    145140{
    146141        if (!packet_dimension)
     
    179174 */
    180175int generic_received_msg_remote(async_sess_t *sess, sysarg_t message,
    181     device_id_t device_id, packet_id_t packet_id, services_t target,
     176    nic_device_id_t device_id, packet_id_t packet_id, services_t target,
    182177    services_t error)
    183178{
     
    210205 */
    211206int generic_send_msg_remote(async_sess_t *sess, sysarg_t message,
    212     device_id_t device_id, packet_id_t packet_id, services_t sender,
     207    nic_device_id_t device_id, packet_id_t packet_id, services_t sender,
    213208    services_t error)
    214209{
     
    251246 */
    252247int generic_translate_req(async_sess_t *sess, sysarg_t message,
    253     device_id_t device_id, services_t service,
     248    nic_device_id_t device_id, services_t service,
    254249    measured_string_t *configuration, size_t count,
    255250    measured_string_t **translation, uint8_t **data)
  • uspace/lib/net/generic/net_checksum.c

    rf51b1d3 r609243f4  
    4040
    4141/** Big-endian encoding CRC divider. */
    42 #define CRC_DIVIDER_BE  0x04c11db7
     42#define CRC_DIVIDER_BE  0x04c11db7
    4343
    4444/** Little-endian encoding CRC divider. */
    45 #define CRC_DIVIDER_LE  0xedb88320
     45#define CRC_DIVIDER_LE  0xedb88320
    4646
    4747/** Compacts the computed checksum to the 16 bit number adding the carries.
     
    203203}
    204204
    205 /** Computes the ip header checksum.
     205/** Compute the IP header checksum.
    206206 *
    207207 * To compute the checksum of a new packet, the checksum header field must be
  • uspace/lib/net/generic/net_remote.c

    rf51b1d3 r609243f4  
    3838#include <ipc/services.h>
    3939#include <ipc/net_net.h>
    40 
    4140#include <malloc.h>
    42 
     41#include <async.h>
     42#include <devman.h>
    4343#include <generic.h>
    4444#include <net/modules.h>
     
    9898    size_t count, uint8_t **data)
    9999{
    100         return generic_translate_req(sess, NET_NET_GET_DEVICE_CONF, 0, 0,
     100        return generic_translate_req(sess, NET_NET_GET_CONF, 0, 0,
    101101            *configuration, count, configuration, data);
    102102}
     
    124124 *
    125125 */
    126 int net_get_device_conf_req(async_sess_t *sess, device_id_t device_id,
     126int net_get_device_conf_req(async_sess_t *sess, nic_device_id_t device_id,
    127127    measured_string_t **configuration, size_t count, uint8_t **data)
    128128{
     
    131131}
    132132
     133int net_get_devices_req(async_sess_t *sess, measured_string_t **devices,
     134    size_t *count, uint8_t **data)
     135{
     136        if ((!devices) || (!count))
     137                return EBADMEM;
     138       
     139        async_exch_t *exch = async_exchange_begin(sess);
     140       
     141        int rc = async_req_0_1(exch, NET_NET_GET_DEVICES_COUNT, count);
     142        if (rc != EOK) {
     143                async_exchange_end(exch);
     144                return rc;
     145        }
     146       
     147        if (*count == 0) {
     148                async_exchange_end(exch);
     149                *data = NULL;
     150                return EOK;
     151        }
     152       
     153        aid_t message_id = async_send_0(exch, NET_NET_GET_DEVICES, NULL);
     154        rc = measured_strings_return(exch, devices, data, *count);
     155       
     156        async_exchange_end(exch);
     157       
     158        sysarg_t result;
     159        async_wait_for(message_id, &result);
     160       
     161        if ((rc == EOK) && (result != EOK)) {
     162                free(*devices);
     163                free(*data);
     164        }
     165       
     166        return (int) result;
     167}
     168
     169int net_driver_ready(async_sess_t *sess, devman_handle_t handle)
     170{
     171        async_exch_t *exch = async_exchange_begin(sess);
     172        int rc = async_req_1_0(exch, NET_NET_DRIVER_READY, handle);
     173        async_exchange_end(exch);
     174       
     175        return rc;
     176}
     177
    133178/** @}
    134179 */
  • uspace/lib/net/generic/protocol_map.c

    rf51b1d3 r609243f4  
    5050        switch (nil) {
    5151        case SERVICE_ETHERNET:
    52         case SERVICE_NE2000:
     52        case SERVICE_NILDUMMY:
    5353                switch (il) {
    5454                case SERVICE_IP:
     
    7676        switch (nil) {
    7777        case SERVICE_ETHERNET:
    78         case SERVICE_NE2000:
     78        case SERVICE_NILDUMMY:
    7979                switch (protocol) {
    8080                case ETH_P_IP:
     
    139139        switch (nil) {
    140140        case SERVICE_ETHERNET:
    141         case SERVICE_NE2000:
    142141                return HW_ETHER;
    143142        default:
Note: See TracChangeset for help on using the changeset viewer.