Changeset 53338bda in mainline
- Timestamp:
- 2011-02-11T17:59:34Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f6309b6
- Parents:
- 518372c
- Location:
- uspace/drv/uhci-hcd
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/tracker.c
r518372c r53338bda 37 37 38 38 #include "tracker.h" 39 #include "transfer_list.h" 39 40 #include "uhci.h" 40 41 #include "utils/malloc32.h" … … 387 388 assert(instance); 388 389 tracker_call_in(instance); 390 transfer_list_remove_tracker(instance->scheduled_list, instance); 389 391 free32(instance->td); 390 392 free32(instance->packet); … … 396 398 assert(instance); 397 399 tracker_call_out(instance); 400 assert(instance->scheduled_list); 401 transfer_list_remove_tracker(instance->scheduled_list, instance); 398 402 free32(instance->td); 399 403 free32(instance->packet); -
uspace/drv/uhci-hcd/tracker.h
r518372c r53338bda 47 47 } dev_speed_t; 48 48 49 struct transfer_list; 50 49 51 typedef struct tracker 50 52 { … … 68 70 void (*next_step)(struct tracker*); 69 71 unsigned toggle:1; 72 73 struct transfer_list *scheduled_list; 70 74 } tracker_t; 71 75 -
uspace/drv/uhci-hcd/transfer_list.c
r518372c r53338bda 100 100 } 101 101 } 102 /*----------------------------------------------------------------------------*/ 103 void transfer_list_remove_tracker(transfer_list_t *instance, tracker_t *tracker) 104 { 105 assert(instance); 106 assert(tracker); 107 assert(instance->queue_head); 108 assert(tracker->td); 109 110 uint32_t pa = (uintptr_t)addr_to_phys(tracker->td); 111 if ((instance->queue_head->element & LINK_POINTER_ADDRESS_MASK) == pa) { 112 instance->queue_head->element = tracker->td->next; 113 } 114 } 102 115 /** 103 116 * @} -
uspace/drv/uhci-hcd/transfer_list.h
r518372c r53338bda 36 36 37 37 #include "uhci_struct/queue_head.h" 38 38 39 #include "tracker.h" 39 40 … … 52 53 void transfer_list_set_next(transfer_list_t *instance, transfer_list_t *next); 53 54 55 54 56 static inline void transfer_list_fini(transfer_list_t *instance) 55 57 { … … 58 60 } 59 61 62 void transfer_list_add_tracker(transfer_list_t *instance, tracker_t *tracker); 60 63 61 void transfer_list_ add_tracker(transfer_list_t *instance, tracker_t *tracker);64 void transfer_list_remove_tracker(transfer_list_t *instance, tracker_t *track); 62 65 63 66 #endif -
uspace/drv/uhci-hcd/uhci.c
r518372c r53338bda 178 178 list_append(&tracker->link, &instance->tracker_list); 179 179 180 tracker->scheduled_list = list; 181 180 182 usb_log_debug2("Scheduler(%d) releasing tracker list mutex.\n", 181 183 fibril_get_id());
Note:
See TracChangeset
for help on using the changeset viewer.