Lines Matching refs:head

57 struct head {
58 head();
82 void AddHead(struct head *head);
85 struct head *FindHead(mount_id device, vnode_id node);
245 head::head()
417 struct head *head = new ::head;
418 head->device = device;
419 head->parent = node;
420 strlcpy(head->name, fileName, B_FILE_NAME_LENGTH);
421 head->confidence = confidence;
425 rule->AddHead(head);
466 struct head *head;
467 while ((head = (struct head *)list_remove_head_item(&fHeads)) != NULL) {
468 delete head;
479 Rule::AddHead(struct head *head)
481 list_add_item(&fHeads, head);
499 struct head *head = NULL;
500 while ((head = (struct head *)list_get_next_item(&fHeads, head)) != NULL) {
501 if (head->confidence < sMinConfidence)
506 if (vfs_entry_ref_to_vnode(head->device, head->parent, head->name, &vnode) == B_OK) {
507 vfs_vnode_to_node_ref(vnode, &head->device, &head->node);
509 TRACE(("prefetch: %ld:%lld:%s\n", head->device, head->parent, head->name));
510 cache_prefetch(head->device, head->node, 0, ~0UL);
512 // ToDo: put head into a hash so that some statistics can be backpropagated quickly
515 head->confidence = -1;
523 struct head *
528 struct head *head = NULL;
529 while ((head = (struct head *)list_get_next_item(&fHeads, head)) != NULL) {
530 if (head->node == node && head->device == device)
531 return head;
544 struct head *head = NULL;
545 while ((head = (struct head *)list_get_next_item(&fHeads, head)) != NULL) {
546 dprintf(" %ld:%lld:\"%s\", ", head->device, head->parent, head->name);
547 if (head->confidence < sMinConfidence)
550 dprintf("%ld (%ld), %lld us\n", head->used_count,
551 head->used_count - fAppliedCount, head->timestamp);
648 struct head *head = state->rule->FindHead(device, node);
649 if (head != NULL) {
652 head->used_count++;
653 if (head->used_count > 1)
654 head->timestamp = (head->timestamp * (head->used_count - 1) + diff) / head->used_count;