Changes in uspace/lib/c/generic/device/nic.c [00d7e1b:9cd8165] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/device/nic.c
r00d7e1b r9cd8165 44 44 #include <ipc/services.h> 45 45 46 /** Send a packet through the device 47 * 48 * @param[in] dev_sess 49 * @param[in] packet_id Id of the sent packet 50 * 51 * @return EOK If the operation was successfully completed 52 * 53 */ 54 int nic_send_message(async_sess_t *dev_sess, packet_id_t packet_id) 55 { 56 async_exch_t *exch = async_exchange_begin(dev_sess); 57 int rc = async_req_2_0(exch, DEV_IFACE_ID(NIC_DEV_IFACE), 58 NIC_SEND_MESSAGE, packet_id); 59 async_exchange_end(exch); 60 61 return rc; 62 } 63 64 /** Connect the driver to the NET and NIL services 65 * 66 * @param[in] dev_sess 67 * @param[in] nil_service Service identifier for the NIL service 46 /** Send frame from NIC 47 * 48 * @param[in] dev_sess 49 * @param[in] data Frame data 50 * @param[in] size Frame size in bytes 51 * 52 * @return EOK If the operation was successfully completed 53 * 54 */ 55 int nic_send_frame(async_sess_t *dev_sess, void *data, size_t size) 56 { 57 async_exch_t *exch = async_exchange_begin(dev_sess); 58 59 ipc_call_t answer; 60 aid_t req = async_send_1(exch, DEV_IFACE_ID(NIC_DEV_IFACE), 61 NIC_SEND_MESSAGE, &answer); 62 sysarg_t retval = async_data_write_start(exch, data, size); 63 64 async_exchange_end(exch); 65 66 if (retval != EOK) { 67 async_wait_for(req, NULL); 68 return retval; 69 } 70 71 async_wait_for(req, &retval); 72 return retval; 73 } 74 75 /** Create callback connection from NIC service 76 * 77 * @param[in] dev_sess 68 78 * @param[in] device_id 69 79 * … … 71 81 * 72 82 */ 73 int nic_connect_to_nil(async_sess_t *dev_sess, services_t nil_service, 74 nic_device_id_t device_id) 75 { 76 async_exch_t *exch = async_exchange_begin(dev_sess); 77 int rc = async_req_3_0(exch, DEV_IFACE_ID(NIC_DEV_IFACE), 78 NIC_CONNECT_TO_NIL, nil_service, device_id); 79 async_exchange_end(exch); 80 81 return rc; 83 int nic_callback_create(async_sess_t *dev_sess, async_client_conn_t cfun, 84 void *carg) 85 { 86 ipc_call_t answer; 87 int rc; 88 sysarg_t retval; 89 90 async_exch_t *exch = async_exchange_begin(dev_sess); 91 aid_t req = async_send_1(exch, DEV_IFACE_ID(NIC_DEV_IFACE), 92 NIC_CALLBACK_CREATE, &answer); 93 94 rc = async_connect_to_me(exch, 0, 0, 0, cfun, carg); 95 if (rc != EOK) { 96 async_wait_for(req, NULL); 97 return rc; 98 } 99 async_exchange_end(exch); 100 101 async_wait_for(req, &retval); 102 return (int) retval; 82 103 } 83 104 … … 324 345 * it can never force the NIC to advertise unsupported modes. 325 346 * 326 * The allowed modes are defined in "n et/eth_phys.h" in the C library.347 * The allowed modes are defined in "nic/eth_phys.h" in the C library. 327 348 * 328 349 * @param[in] dev_sess … … 361 382 /** Probe current state of auto-negotiation. 362 383 * 363 * Modes are defined in the "n et/eth_phys.h" in the C library.384 * Modes are defined in the "nic/eth_phys.h" in the C library. 364 385 * 365 386 * @param[in] dev_sess … … 895 916 * 896 917 */ 897 int nic_vlan_set_tag(async_sess_t *dev_sess, uint16_t tag, int add, intstrip)918 int nic_vlan_set_tag(async_sess_t *dev_sess, uint16_t tag, bool add, bool strip) 898 919 { 899 920 async_exch_t *exch = async_exchange_begin(dev_sess);
Note:
See TracChangeset
for help on using the changeset viewer.