Changes in uspace/srv/net/nil/eth/eth.c [77a69ea:8d7ec69d] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/nil/eth/eth.c
r77a69ea r8d7ec69d 170 170 INT_MAP_IMPLEMENT(eth_protos, eth_proto_t); 171 171 172 int nil_device_state_msg_local(nic_device_id_t device_id, sysarg_t state) 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) 173 176 { 174 177 int index; … … 344 347 } 345 348 346 nic_connect_to_nil(device->sess, SERVICE_ETHERNET, device_id); 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 } 347 357 348 358 /* Get hardware address */ … … 822 832 823 833 rc = async_data_write_accept(&data, false, 0, 0, 0, &size); 824 if (rc != EOK) 834 if (rc != EOK) { 835 printf("%s: data_write_accept() failed\n", NAME); 825 836 return rc; 837 } 826 838 827 839 packet_t *packet = packet_get_1_remote(eth_globals.net_sess, size); … … 943 955 944 956 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 } 960 993 } 961 994
Note:
See TracChangeset
for help on using the changeset viewer.