Changeset 609243f4 in mainline for uspace/lib/net/generic
- Timestamp:
- 2011-10-07T15:46:01Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e2c50e1
- Parents:
- f51b1d3
- Location:
- uspace/lib/net/generic
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/net/generic/generic.c
rf51b1d3 r609243f4 54 54 */ 55 55 int 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) 57 57 { 58 58 async_exch_t *exch = async_exchange_begin(sess); … … 68 68 * @param[in] message Service specific message. 69 69 * @param[in] device_id Device identifier. 70 * @param[in] arg2 Second argument of the message.71 70 * @param[in] service Device module service. 72 71 * … … 77 76 */ 78 77 int 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); 84 83 async_exchange_end(exch); 85 84 … … 103 102 */ 104 103 int 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) 108 107 return EBADMEM; 109 108 110 109 /* Request the address */ 111 110 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, 113 112 NULL); 114 int rc = measured_strings_return(exch, address, data, 1);113 int rc = async_data_read_start(exch, address, max_len); 115 114 async_exchange_end(exch); 116 115 117 116 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; 126 121 127 122 return (int) result; … … 142 137 */ 143 138 int 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) 145 140 { 146 141 if (!packet_dimension) … … 179 174 */ 180 175 int 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, 182 177 services_t error) 183 178 { … … 210 205 */ 211 206 int 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, 213 208 services_t error) 214 209 { … … 251 246 */ 252 247 int 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, 254 249 measured_string_t *configuration, size_t count, 255 250 measured_string_t **translation, uint8_t **data) -
uspace/lib/net/generic/net_checksum.c
rf51b1d3 r609243f4 40 40 41 41 /** Big-endian encoding CRC divider. */ 42 #define CRC_DIVIDER_BE 42 #define CRC_DIVIDER_BE 0x04c11db7 43 43 44 44 /** Little-endian encoding CRC divider. */ 45 #define CRC_DIVIDER_LE 45 #define CRC_DIVIDER_LE 0xedb88320 46 46 47 47 /** Compacts the computed checksum to the 16 bit number adding the carries. … … 203 203 } 204 204 205 /** Compute s the ipheader checksum.205 /** Compute the IP header checksum. 206 206 * 207 207 * To compute the checksum of a new packet, the checksum header field must be -
uspace/lib/net/generic/net_remote.c
rf51b1d3 r609243f4 38 38 #include <ipc/services.h> 39 39 #include <ipc/net_net.h> 40 41 40 #include <malloc.h> 42 41 #include <async.h> 42 #include <devman.h> 43 43 #include <generic.h> 44 44 #include <net/modules.h> … … 98 98 size_t count, uint8_t **data) 99 99 { 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, 101 101 *configuration, count, configuration, data); 102 102 } … … 124 124 * 125 125 */ 126 int net_get_device_conf_req(async_sess_t *sess, device_id_t device_id,126 int net_get_device_conf_req(async_sess_t *sess, nic_device_id_t device_id, 127 127 measured_string_t **configuration, size_t count, uint8_t **data) 128 128 { … … 131 131 } 132 132 133 int 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 169 int 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 133 178 /** @} 134 179 */ -
uspace/lib/net/generic/protocol_map.c
rf51b1d3 r609243f4 50 50 switch (nil) { 51 51 case SERVICE_ETHERNET: 52 case SERVICE_N E2000:52 case SERVICE_NILDUMMY: 53 53 switch (il) { 54 54 case SERVICE_IP: … … 76 76 switch (nil) { 77 77 case SERVICE_ETHERNET: 78 case SERVICE_N E2000:78 case SERVICE_NILDUMMY: 79 79 switch (protocol) { 80 80 case ETH_P_IP: … … 139 139 switch (nil) { 140 140 case SERVICE_ETHERNET: 141 case SERVICE_NE2000:142 141 return HW_ETHER; 143 142 default:
Note:
See TracChangeset
for help on using the changeset viewer.