Changeset f959a20f in mainline
- Timestamp:
- 2019-02-01T22:32:38Z (6 years ago)
- Children:
- 00b7fc8
- Parents:
- 1a37496
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-02-01 21:22:39)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-02-01 22:32:38)
- Location:
- uspace
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/endpoint_list.c
r1a37496 rf959a20f 160 160 const char *qpos = NULL; 161 161 qh_t *prev_qh; 162 link_t *prev = list_prev(&ep->eplist_link, &instance->endpoint_list); 163 162 164 /* Remove from the hardware queue */ 163 if ( list_first(&instance->endpoint_list) == &ep->eplist_link) {165 if (!prev) { 164 166 /* I'm the first one here */ 165 167 prev_qh = instance->list_head; 166 168 qpos = "FIRST"; 167 169 } else { 168 prev_qh = ehci_endpoint_list_instance( ep->eplist_link.prev)->qh;170 prev_qh = ehci_endpoint_list_instance(prev)->qh; 169 171 qpos = "NOT FIRST"; 170 172 } -
uspace/drv/bus/usb/ohci/endpoint_list.c
r1a37496 rf959a20f 156 156 const char *qpos = NULL; 157 157 ed_t *prev_ed; 158 link_t *prev_link = list_prev(&ep->eplist_link, &instance->endpoint_list); 158 159 /* Remove from the hardware queue */ 159 if ( list_first(&instance->endpoint_list) == &ep->eplist_link) {160 if (!prev_link) { 160 161 /* I'm the first one here */ 161 162 prev_ed = instance->list_head; … … 163 164 } else { 164 165 ohci_endpoint_t *prev = 165 list_get_instance( ep->eplist_link.prev, ohci_endpoint_t, eplist_link);166 list_get_instance(prev_link, ohci_endpoint_t, eplist_link); 166 167 prev_ed = prev->ed; 167 168 qpos = "NOT FIRST"; -
uspace/drv/bus/usb/uhci/transfer_list.c
r1a37496 rf959a20f 233 233 const char *qpos = "FIRST"; 234 234 qh_t *prev_qh = instance->queue_head; 235 link_t *prev = list_prev(&uhci_batch->link, &instance->batch_list); 235 236 /* Remove from the hardware queue */ 236 if ( list_first(&instance->batch_list) != &uhci_batch->link) {237 if (prev) { 237 238 /* There is a batch in front of me */ 238 prev_qh = 239 uhci_transfer_batch_from_link(uhci_batch->link.prev)->qh; 239 prev_qh = uhci_transfer_batch_from_link(prev)->qh; 240 240 qpos = "NOT FIRST"; 241 241 } -
uspace/lib/c/generic/adt/hash_table.c
r1a37496 rf959a20f 273 273 274 274 size_t idx = h->op->hash(item) % h->bucket_cnt; 275 list_t *list = &h->bucket[idx]; 275 276 276 277 /* Traverse the circular list until we reach the starting item again. */ 277 for (link_t *cur = item->link.next; cur != &first->link; 278 cur = cur->next) { 279 assert(cur); 280 281 if (cur == &h->bucket[idx].head) 282 continue; 278 for (link_t *cur = list_next(&item->link, list); cur != &first->link; 279 cur = list_next(cur, list)) { 280 281 if (!cur) 282 cur = list_first(list); 283 283 284 284 ht_link_t *cur_link = member_to_inst(cur, ht_link_t, link); -
uspace/lib/c/generic/thread/fibril.c
r1a37496 rf959a20f 601 601 assert(timeout); 602 602 603 link_t *tmp = timeout_list.head.next; 604 while (tmp != &timeout_list.head) { 605 _timeout_t *cur = list_get_instance(tmp, _timeout_t, link); 606 607 if (ts_gteq(&cur->expires, &timeout->expires)) 608 break; 609 610 tmp = tmp->next; 611 } 612 613 list_insert_before(&timeout->link, tmp); 603 list_foreach(timeout_list, link, _timeout_t, cur) { 604 if (ts_gteq(&cur->expires, &timeout->expires)) { 605 list_insert_before(&timeout->link, &cur->link); 606 return; 607 } 608 } 609 610 list_append(&timeout->link, &timeout_list); 614 611 } 615 612 -
uspace/lib/c/include/ipc/devman.h
r1a37496 rf959a20f 108 108 static inline void add_match_id(match_id_list_t *ids, match_id_t *id) 109 109 { 110 match_id_t *mid = NULL; 111 link_t *link = ids->ids.head.next; 112 113 while (link != &ids->ids.head) { 114 mid = list_get_instance(link, match_id_t, link); 110 list_foreach(ids->ids, link, match_id_t, mid) { 115 111 if (mid->score < id->score) { 116 break; 112 list_insert_before(&id->link, &mid->link); 113 return; 117 114 } 118 link = link->next;119 115 } 120 116 121 list_ insert_before(&id->link, link);117 list_append(&id->link, &ids->ids); 122 118 } 123 119 -
uspace/lib/nic/include/nic.h
r1a37496 rf959a20f 71 71 } nic_frame_t; 72 72 73 typedef list_t nic_frame_list_t; 73 typedef union { 74 list_t list; 75 link_t link; 76 } nic_frame_list_t; 74 77 75 78 /** -
uspace/lib/nic/src/nic_driver.c
r1a37496 rf959a20f 329 329 330 330 if (nic_globals.frame_list_cache_size > 0) { 331 frames = 332 list_get_instance(list_first(&nic_globals.frame_list_cache), 333 nic_frame_list_t, head); 334 list_remove(&frames->head); 335 list_initialize(frames); 331 frames = list_pop(&nic_globals.frame_list_cache, 332 nic_frame_list_t, link); 333 assert(frames); 334 list_initialize(&frames->list); 336 335 nic_globals.frame_list_cache_size--; 337 336 fibril_mutex_unlock(&nic_globals.lock); … … 341 340 frames = malloc(sizeof (nic_frame_list_t)); 342 341 if (frames != NULL) 343 list_initialize( frames);342 list_initialize(&frames->list); 344 343 } 345 344 … … 356 355 free(frames); 357 356 } else { 358 list_prepend(&frames-> head, &nic_globals.frame_list_cache);357 list_prepend(&frames->link, &nic_globals.frame_list_cache); 359 358 nic_globals.frame_list_cache_size++; 360 359 fibril_mutex_unlock(&nic_globals.lock); … … 372 371 { 373 372 assert(frame != NULL && frames != NULL); 374 list_append(&frame->link, frames);373 list_append(&frame->link, &frames->list); 375 374 } 376 375 … … 576 575 if (frames == NULL) 577 576 return; 578 while (!list_empty(frames)) { 579 nic_frame_t *frame = 580 list_get_instance(list_first(frames), nic_frame_t, link); 581 582 list_remove(&frame->link); 577 while (!list_empty(&frames->list)) { 578 nic_frame_t *frame = list_pop(&frames->list, nic_frame_t, link); 583 579 nic_received_frame(nic_data, frame); 584 580 } -
uspace/lib/posix/src/signal.c
r1a37496 rf959a20f 383 383 static void _dequeue_unblocked_signals(void) 384 384 { 385 link_t *iterator = _signal_queue.head.next; 386 link_t *next; 387 388 while (iterator != &(_signal_queue).head) { 389 next = iterator->next; 390 385 list_foreach_safe(_signal_queue, cur_link, next_link) { 391 386 signal_queue_item *item = 392 list_get_instance( iterator, signal_queue_item, link);387 list_get_instance(cur_link, signal_queue_item, link); 393 388 394 389 if (!sigismember(&_signal_mask, item->signo) && 395 390 _signal_actions[item->signo].sa_handler != SIG_HOLD) { 396 list_remove( &(item->link));397 _raise_sigaction(item->signo, & (item->siginfo));391 list_remove(cur_link); 392 _raise_sigaction(item->signo, &item->siginfo); 398 393 free(item); 399 394 } 400 401 iterator = next;402 395 } 403 396 } -
uspace/lib/usbhid/src/hiddescriptor.c
r1a37496 rf959a20f 89 89 usb_hid_report_path_t *cmp_path) 90 90 { 91 link_t *path_it = report->collection_paths.head.next; 92 usb_hid_report_path_t *path = NULL; 93 94 if ((report == NULL) || (cmp_path == NULL)) { 91 if (report == NULL || cmp_path == NULL) 95 92 return NULL; 96 } 97 98 while (path_it != &report->collection_paths.head) { 99 path = list_get_instance(path_it, usb_hid_report_path_t, 100 cpath_link); 101 93 94 list_foreach(report->collection_paths, cpath_link, usb_hid_report_path_t, path) { 102 95 if (usb_hid_report_compare_usage_path(path, cmp_path, 103 USB_HID_PATH_COMPARE_STRICT) == 0) { 104 break; 105 } 106 path_it = path_it->next; 107 } 108 if (path_it == &report->collection_paths.head) { 109 path = usb_hid_report_path_clone(cmp_path); 110 if (path == NULL) { 111 return NULL; 112 } 113 list_append(&path->cpath_link, &report->collection_paths); 114 report->collection_paths_count++; 115 116 return path; 117 } else { 118 return list_get_instance(path_it, usb_hid_report_path_t, 119 cpath_link); 120 } 96 USB_HID_PATH_COMPARE_STRICT) == 0) 97 return path; 98 } 99 100 usb_hid_report_path_t *path = usb_hid_report_path_clone(cmp_path); 101 if (path == NULL) 102 return NULL; 103 104 list_append(&path->cpath_link, &report->collection_paths); 105 report->collection_paths_count++; 106 107 return path; 121 108 } 122 109 … … 474 461 usb_hid_report_item_t, link); 475 462 463 link_t *tmp_link = list_prev( 464 &report_item->usage_path->cpath_link, 465 &report->collection_paths); 466 assert(tmp_link); 467 476 468 usb_hid_report_usage_path_t *tmp_usage_path; 477 tmp_usage_path = list_get_instance( 478 report_item->usage_path->cpath_link.prev, 469 tmp_usage_path = list_get_instance(tmp_link, 479 470 usb_hid_report_usage_path_t, rpath_items_link); 480 471 … … 486 477 487 478 usb_hid_report_path_free(report_item->usage_path); 488 list_remove 479 list_remove(item_link); 489 480 490 481 break; -
uspace/lib/usbhid/src/hidparser.c
r1a37496 rf959a20f 493 493 494 494 if (field == NULL) { 495 field_it = report_des->report_items.head.next;496 } else { 497 field_it = field->ritems_link.next;498 } 499 500 while (field_it != &report_des->report_items.head) {495 field_it = list_first(&report_des->report_items); 496 } else { 497 field_it = list_next(&field->ritems_link, &report_des->report_items); 498 } 499 500 while (field_it != NULL) { 501 501 field = list_get_instance(field_it, usb_hid_report_field_t, 502 502 ritems_link); … … 514 514 usb_hid_report_remove_last_item(field->collection_path); 515 515 } 516 field_it = field_it->next;516 field_it = list_next(field_it, &report_des->report_items); 517 517 } 518 518 … … 547 547 return 0; 548 548 } else { 549 report_it = report_des->reports_link.next; 549 report_it = list_next(&report_des->reports_link, 550 &report->reports); 550 551 } 551 552 } else { 552 report_it = report->reports.head.next;553 } 554 555 while (report_it != &report->reports.head) {553 report_it = list_first(&report->reports); 554 } 555 556 while (report_it != NULL) { 556 557 report_des = list_get_instance(report_it, 557 558 usb_hid_report_description_t, reports_link); … … 561 562 } 562 563 563 report_it = report_it->next;564 report_it = list_next(report_it, &report->reports); 564 565 } 565 566 -
uspace/lib/usbhid/src/hidpath.c
r1a37496 rf959a20f 250 250 * Path is prefix of the report_path 251 251 */ 252 report_link = report_path->items.head.next; 253 path_link = path->items.head.next; 254 255 while ((report_link != &report_path->items.head) && 256 (path_link != &path->items.head)) { 252 report_link = list_first(&report_path->items); 253 path_link = list_first(&path->items); 254 255 while (report_link != NULL && path_link != NULL) { 257 256 258 257 report_item = list_get_instance(report_link, … … 268 267 return 1; 269 268 } else { 270 report_link = report_link->next;271 path_link = path_link->next;269 report_link = list_next(report_link, &report_path->items); 270 path_link = list_next(path_link, &path->items); 272 271 } 273 272 } 274 273 275 274 if ((((flags & USB_HID_PATH_COMPARE_BEGIN) != 0) && 276 (path_link == &path->items.head)) || 277 ((report_link == &report_path->items.head) && 278 (path_link == &path->items.head))) { 275 (path_link == NULL)) || 276 (report_link == NULL && path_link == NULL)) { 279 277 return 0; 280 278 } else { … … 287 285 * Path is suffix of report_path 288 286 */ 289 report_link = report_path->items.head.prev;290 path_link = path->items.head.prev;287 report_link = list_last(&report_path->items); 288 path_link = list_last(&path->items); 291 289 292 290 if (list_empty(&path->items)) { … … 294 292 } 295 293 296 while ((report_link != &report_path->items.head) && 297 (path_link != &path->items.head)) { 294 while (report_link != NULL && path_link != NULL) { 298 295 report_item = list_get_instance(report_link, 299 296 usb_hid_report_usage_path_t, rpath_items_link); … … 308 305 return 1; 309 306 } else { 310 report_link = report_link->prev;311 path_link = path_link->prev;307 report_link = list_prev(report_link, &report_path->items); 308 path_link = list_prev(path_link, &path->items); 312 309 } 313 310 } 314 311 315 if (path_link == &path->items.head) {312 if (path_link == NULL) { 316 313 return 0; 317 314 } else { -
uspace/srv/devman/driver.c
r1a37496 rf959a20f 435 435 * that has not been passed to the driver. 436 436 */ 437 link = driver->devices.head.next;438 while (link != &driver->devices.head) {437 link = list_first(&driver->devices); 438 while (link != NULL) { 439 439 dev = list_get_instance(link, dev_node_t, driver_devices); 440 440 fibril_rwlock_write_lock(&tree->rwlock); … … 442 442 if (dev->passed_to_driver) { 443 443 fibril_rwlock_write_unlock(&tree->rwlock); 444 link = li nk->next;444 link = list_next(link, &driver->devices); 445 445 continue; 446 446 } … … 484 484 * Restart the cycle to go through all devices again. 485 485 */ 486 link = driver->devices.head.next;486 link = list_first(&driver->devices); 487 487 } 488 488 -
uspace/srv/devman/match.c
r1a37496 rf959a20f 67 67 int get_match_score(driver_t *drv, dev_node_t *dev) 68 68 { 69 link_t *drv_head = &drv->match_ids.ids.head; 70 link_t *dev_head = &dev->pfun->match_ids.ids.head; 71 72 if (list_empty(&drv->match_ids.ids) || 73 list_empty(&dev->pfun->match_ids.ids)) { 69 list_t *drv_list = &drv->match_ids.ids; 70 list_t *dev_list = &dev->pfun->match_ids.ids; 71 72 if (list_empty(drv_list) || list_empty(dev_list)) 74 73 return 0; 75 }76 74 77 75 /* … … 80 78 int highest_score = 0; 81 79 82 link_t *drv_link = drv->match_ids.ids.head.next; 83 while (drv_link != drv_head) { 84 link_t *dev_link = dev_head->next; 85 while (dev_link != dev_head) { 86 match_id_t *drv_id = list_get_instance(drv_link, match_id_t, link); 87 match_id_t *dev_id = list_get_instance(dev_link, match_id_t, link); 88 80 list_foreach(*drv_list, link, match_id_t, drv_id) { 81 list_foreach(*dev_list, link, match_id_t, dev_id) { 89 82 int score = compute_match_score(drv_id, dev_id); 90 if (score > highest_score) {83 if (score > highest_score) 91 84 highest_score = score; 92 }93 94 dev_link = dev_link->next;95 85 } 96 97 drv_link = drv_link->next;98 86 } 99 87 -
uspace/srv/fs/exfat/exfat_idx.c
r1a37496 rf959a20f 284 284 link_t *lnk; 285 285 freed_t *n; 286 for (lnk = u->freed_list.head.next; lnk != &u->freed_list.head;287 lnk = l nk->next) {286 for (lnk = list_first(&u->freed_list); lnk != NULL; 287 lnk = list_next(lnk, &u->freed_list)) { 288 288 freed_t *f = list_get_instance(lnk, freed_t, link); 289 289 if (f->first == index + 1) { 290 290 f->first--; 291 if (lnk->prev != &u->freed_list.head)292 try_coalesce_intervals(lnk->prev, lnk,293 291 link_t *prev = list_prev(lnk, &u->freed_list); 292 if (prev) 293 try_coalesce_intervals(prev, lnk, lnk); 294 294 fibril_mutex_unlock(&unused_lock); 295 295 return; … … 297 297 if (f->last == index - 1) { 298 298 f->last++; 299 if (lnk->next != &u->freed_list.head)300 try_coalesce_intervals(lnk, lnk->next,301 299 link_t *next = list_next(lnk, &u->freed_list); 300 if (next) 301 try_coalesce_intervals(lnk, next, lnk); 302 302 fibril_mutex_unlock(&unused_lock); 303 303 return; -
uspace/srv/fs/fat/fat_idx.c
r1a37496 rf959a20f 284 284 link_t *lnk; 285 285 freed_t *n; 286 for (lnk = u->freed_list.head.next; lnk != &u->freed_list.head;287 lnk = l nk->next) {286 for (lnk = list_first(&u->freed_list); lnk != NULL; 287 lnk = list_next(lnk, &u->freed_list)) { 288 288 freed_t *f = list_get_instance(lnk, freed_t, link); 289 289 if (f->first == index + 1) { 290 290 f->first--; 291 if (lnk->prev != &u->freed_list.head)292 try_coalesce_intervals(lnk->prev, lnk,293 291 link_t *prev = list_prev(lnk, &u->freed_list); 292 if (prev) 293 try_coalesce_intervals(prev, lnk, lnk); 294 294 fibril_mutex_unlock(&unused_lock); 295 295 return; … … 297 297 if (f->last == index - 1) { 298 298 f->last++; 299 if (lnk->next != &u->freed_list.head)300 try_coalesce_intervals(lnk, lnk->next,301 299 link_t *next = list_next(lnk, &u->freed_list); 300 if (next) 301 try_coalesce_intervals(lnk, next, lnk); 302 302 fibril_mutex_unlock(&unused_lock); 303 303 return; -
uspace/srv/hid/compositor/compositor.c
r1a37496 rf959a20f 427 427 428 428 /* For each window. */ 429 for (link_t *link = window_list.head.prev; 430 link != &window_list.head; link = link->prev) { 431 429 list_foreach_rev(window_list, link, window_t, win) { 432 430 /* 433 431 * Determine what part of the window intersects with the 434 432 * updated area of the current viewport. 435 433 */ 436 window_t *win = list_get_instance(link, window_t, link); 437 if (!win->surface) { 434 if (!win->surface) 438 435 continue; 439 } 436 440 437 sysarg_t x_dmg_win, y_dmg_win, w_dmg_win, h_dmg_win; 441 438 surface_get_resolution(win->surface, &w_dmg_win, &h_dmg_win); -
uspace/srv/net/tcp/ncsim.c
r1a37496 rf959a20f 108 108 sqe->delay -= old_qe->delay; 109 109 110 link = link->next; 111 if (link == &sim_queue.head) 112 link = NULL; 110 link = list_next(link, &sim_queue); 113 111 } 114 112 -
uspace/srv/net/tcp/tqueue.c
r1a37496 rf959a20f 245 245 void tcp_tqueue_ack_received(tcp_conn_t *conn) 246 246 { 247 link_t *cur, *next;248 249 247 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_tqueue_ack_received(%p)", conn->name, 250 248 conn); 251 249 252 cur = conn->retransmit.list.head.next; 253 254 while (cur != &conn->retransmit.list.head) { 255 next = cur->next; 256 250 list_foreach_safe(conn->retransmit.list, cur, next) { 257 251 tcp_tqueue_entry_t *tqe = list_get_instance(cur, 258 252 tcp_tqueue_entry_t, link); … … 277 271 tcp_tqueue_timer_set(conn); 278 272 } 279 280 cur = next;281 273 } 282 274
Note:
See TracChangeset
for help on using the changeset viewer.