Changeset a33f0a6 in mainline for uspace/srv/hw/netif/ne2000/ne2000.c
- Timestamp:
- 2011-08-03T17:34:57Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1940326
- Parents:
- 52a79081 (diff), 3fab770 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hw/netif/ne2000/ne2000.c
r52a79081 ra33f0a6 43 43 #include <malloc.h> 44 44 #include <sysinfo.h> 45 #include <ns.h> 45 46 #include <ipc/services.h> 46 #include <ipc/ns.h>47 47 #include <ipc/irc.h> 48 48 #include <net/modules.h> … … 76 76 77 77 static bool irc_service = false; 78 static int irc_phone = -1;78 static async_sess_t *irc_sess = NULL; 79 79 80 80 /** NE2000 kernel interrupt command sequence. … … 152 152 device_id_t device_id = IRQ_GET_DEVICE(*call); 153 153 netif_device_t *device; 154 int nil_phone;154 async_sess_t *nil_sess; 155 155 ne2k_t *ne2k; 156 156 157 157 fibril_rwlock_read_lock(&netif_globals.lock); 158 158 159 if (find_device(device_id, &device) == EOK) { 160 nil_phone = device->nil_phone; 159 nil_sess = netif_globals.nil_sess; 160 161 if (find_device(device_id, &device) == EOK) 161 162 ne2k = (ne2k_t *) device->specific; 162 }else163 else 163 164 ne2k = NULL; 164 165 … … 166 167 167 168 if (ne2k != NULL) { 168 li nk_t *frames =169 list_t *frames = 169 170 ne2k_interrupt(ne2k, IRQ_GET_ISR(*call), IRQ_GET_TSR(*call)); 170 171 171 172 if (frames != NULL) { 172 173 while (!list_empty(frames)) { 173 frame_t *frame = 174 list_ get_instance(frames->next, frame_t, link);174 frame_t *frame = list_get_instance( 175 list_first(frames), frame_t, link); 175 176 176 177 list_remove(&frame->link); 177 nil_received_msg(nil_ phone, device_id, frame->packet,178 nil_received_msg(nil_sess, device_id, frame->packet, 178 179 SERVICE_NONE); 179 180 free(frame); … … 276 277 277 278 device->device_id = device_id; 278 device->nil_phone = -1;279 279 device->specific = (void *) ne2k; 280 280 device->state = NETIF_STOPPED; … … 329 329 change_state(device, NETIF_ACTIVE); 330 330 331 if (irc_service) 332 async_msg_1(irc_phone, IRC_ENABLE_INTERRUPT, ne2k->irq); 331 if (irc_service) { 332 async_exch_t *exch = async_exchange_begin(irc_sess); 333 async_msg_1(exch, IRC_ENABLE_INTERRUPT, ne2k->irq); 334 async_exchange_end(exch); 335 } 333 336 } 334 337 … … 388 391 389 392 if (irc_service) { 390 while (irc_phone < 0) 391 irc_phone = service_connect_blocking(SERVICE_IRC, 0, 0); 393 while (!irc_sess) 394 irc_sess = service_connect_blocking(EXCHANGE_SERIALIZE, 395 SERVICE_IRC, 0, 0); 392 396 } 393 397 394 398 async_set_interrupt_received(irq_handler); 395 399 396 return async_connect_to_me(PHONE_NS, SERVICE_NE2000, 0, 0, NULL);400 return service_register(SERVICE_NE2000); 397 401 } 398 402
Note:
See TracChangeset
for help on using the changeset viewer.