Changes in uspace/srv/net/nil/eth/eth.c [8d7ec69d:77a69ea] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/nil/eth/eth.c
r8d7ec69d r77a69ea 170 170 INT_MAP_IMPLEMENT(eth_protos, eth_proto_t); 171 171 172 static void eth_nic_cb_connection(ipc_callid_t iid, ipc_call_t *icall, 173 void *arg); 174 175 static int eth_device_state(nic_device_id_t device_id, sysarg_t state) 172 int nil_device_state_msg_local(nic_device_id_t device_id, sysarg_t state) 176 173 { 177 174 int index; … … 347 344 } 348 345 349 rc = nic_callback_create(device->sess, device_id, 350 eth_nic_cb_connection, NULL); 351 if (rc != EOK) { 352 fibril_rwlock_write_unlock(ð_globals.devices_lock); 353 async_hangup(device->sess); 354 free(device); 355 return EIO; 356 } 346 nic_connect_to_nil(device->sess, SERVICE_ETHERNET, device_id); 357 347 358 348 /* Get hardware address */ … … 832 822 833 823 rc = async_data_write_accept(&data, false, 0, 0, 0, &size); 834 if (rc != EOK) { 835 printf("%s: data_write_accept() failed\n", NAME); 824 if (rc != EOK) 836 825 return rc; 837 }838 826 839 827 packet_t *packet = packet_get_1_remote(eth_globals.net_sess, size); … … 955 943 956 944 return EOK; 945 case NET_NIL_DEVICE_STATE: 946 nil_device_state_msg_local(IPC_GET_DEVICE(*call), IPC_GET_STATE(*call)); 947 async_answer_0(callid, EOK); 948 return EOK; 949 case NET_NIL_RECEIVED: 950 rc = eth_received(IPC_GET_ARG1(*call)); 951 async_answer_0(callid, (sysarg_t) rc); 952 return rc; 953 case NET_NIL_ADDR_CHANGED: 954 rc = eth_addr_changed(IPC_GET_DEVICE(*call)); 955 async_answer_0(callid, (sysarg_t) rc); 956 return rc; 957 957 } 958 958 959 959 return ENOTSUP; 960 }961 962 static void eth_nic_cb_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)963 {964 int rc;965 966 async_answer_0(iid, EOK);967 968 while (true) {969 ipc_call_t call;970 ipc_callid_t callid = async_get_call(&call);971 972 if (!IPC_GET_IMETHOD(call))973 break;974 975 switch (IPC_GET_IMETHOD(call)) {976 case NIC_EV_DEVICE_STATE:977 rc = eth_device_state(IPC_GET_ARG1(call),978 IPC_GET_ARG2(call));979 async_answer_0(callid, (sysarg_t) rc);980 break;981 case NIC_EV_RECEIVED:982 rc = eth_received(IPC_GET_ARG1(call));983 async_answer_0(callid, (sysarg_t) rc);984 break;985 case NIC_EV_ADDR_CHANGED:986 rc = eth_addr_changed(IPC_GET_ARG1(call));987 async_answer_0(callid, (sysarg_t) rc);988 break;989 default:990 async_answer_0(callid, ENOTSUP);991 }992 }993 960 } 994 961
Note:
See TracChangeset
for help on using the changeset viewer.