Changes in uspace/drv/vhc/hc.c [e63a4e1:f8597ca] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/vhc/hc.c
re63a4e1 rf8597ca 68 68 static link_t transaction_list; 69 69 70 #define TRANSACTION_FORMAT "T[%d .%d %s/%s (%d)]"70 #define TRANSACTION_FORMAT "T[%d:%d %s (%d)]" 71 71 #define TRANSACTION_PRINTF(t) \ 72 72 (t).target.address, (t).target.endpoint, \ 73 usb_str_transfer_type((t).transfer_type), \74 73 usbvirt_str_transaction_type((t).type), \ 75 74 (int)(t).len … … 77 76 #define transaction_get_instance(lnk) \ 78 77 list_get_instance(lnk, transaction_t, link) 79 80 #define HUB_STATUS_MAX_LEN (HUB_PORT_COUNT + 64)81 78 82 79 static inline unsigned int pseudo_random(unsigned int *seed) … … 102 99 /** Host controller manager main function. 103 100 */ 104 static int hc_manager_fibril(void *arg)101 void hc_manager(void) 105 102 { 106 103 list_initialize(&transaction_list); … … 117 114 } 118 115 119 char ports[HUB_STATUS_MAX_LEN + 1]; 120 virthub_get_status(&virtual_hub_device, ports, HUB_STATUS_MAX_LEN); 116 char ports[HUB_PORT_COUNT + 2]; 117 hub_get_port_statuses(ports, HUB_PORT_COUNT + 1); 118 dprintf(4, "virtual hub: addr=%d ports=%s", 119 virthub_dev.address, ports); 121 120 122 121 link_t *first_transaction_link = transaction_list.next; … … 126 125 127 126 128 dprintf(0, "about to process " TRANSACTION_FORMAT " [%s]",127 dprintf(0, "about to process " TRANSACTION_FORMAT " (vhub:%s)", 129 128 TRANSACTION_PRINTF(*transaction), ports); 130 129 … … 139 138 free(transaction); 140 139 } 141 142 assert(false && "unreachable");143 return EOK;144 }145 146 void hc_manager(void)147 {148 fid_t fid = fibril_create(hc_manager_fibril, NULL);149 if (fid == 0) {150 printf(NAME ": failed to start HC manager fibril\n");151 return;152 }153 fibril_add_ready(fid);154 140 } 155 141 … … 157 143 */ 158 144 static transaction_t *transaction_create(usbvirt_transaction_type_t type, 159 usb_target_t target, usb_transfer_type_t transfer_type,145 usb_target_t target, 160 146 void * buffer, size_t len, 161 147 hc_transaction_done_callback_t callback, void * arg) … … 165 151 list_initialize(&transaction->link); 166 152 transaction->type = type; 167 transaction->transfer_type = transfer_type;168 153 transaction->target = target; 169 154 transaction->buffer = buffer; … … 181 166 */ 182 167 void hc_add_transaction_to_device(bool setup, usb_target_t target, 183 usb_transfer_type_t transfer_type,184 168 void * buffer, size_t len, 185 169 hc_transaction_done_callback_t callback, void * arg) 186 170 { 187 171 transaction_t *transaction = transaction_create( 188 setup ? USBVIRT_TRANSACTION_SETUP : USBVIRT_TRANSACTION_OUT, 189 target, transfer_type, 172 setup ? USBVIRT_TRANSACTION_SETUP : USBVIRT_TRANSACTION_OUT, target, 190 173 buffer, len, callback, arg); 191 174 list_append(&transaction->link, &transaction_list); … … 195 178 */ 196 179 void hc_add_transaction_from_device(usb_target_t target, 197 usb_transfer_type_t transfer_type,198 180 void * buffer, size_t len, 199 181 hc_transaction_done_callback_t callback, void * arg) 200 182 { 201 183 transaction_t *transaction = transaction_create(USBVIRT_TRANSACTION_IN, 202 target, transfer_type, 203 buffer, len, callback, arg); 184 target, buffer, len, callback, arg); 204 185 list_append(&transaction->link, &transaction_list); 205 186 }
Note:
See TracChangeset
for help on using the changeset viewer.