Lines Matching refs:node

75 static void memorystatus_add_node(memorystatus_node *node);
76 static void memorystatus_remove_node(memorystatus_node *node);
78 static void memorystatus_release_node(memorystatus_node *node);
149 static void memorystatus_move_node_to_exit_list(memorystatus_node *node);
484 memorystatus_node *node;
489 TAILQ_FOREACH(node, &memorystatus_list, link) {
490 if (node->priority <= new_node->priority) {
495 if (node) {
496 TAILQ_INSERT_BEFORE(node, new_node, link);
507 memorystatus_remove_node(memorystatus_node *node)
512 TAILQ_REMOVE(&memorystatus_list, node, link);
516 if (node->state & (kProcessFrozen)) {
520 if (node->state & kProcessSuspended) {
521 memorystatus_suspended_resident_count -= node->resident_pages;
533 memorystatus_node *node;
537 TAILQ_FOREACH(node, &memorystatus_list, link) {
538 if (node->pid == pid) {
543 if (!node) {
547 return node;
551 memorystatus_release_node(memorystatus_node *node)
553 #pragma unused(node)
603 memorystatus_node *node, *search;
609 TAILQ_FOREACH(node, &memorystatus_list, link) {
610 if (node->pid == pid) {
615 if (!node) {
620 if (effective && (node->state & kProcessPriorityUpdated)) {
626 node->state |= kProcessPriorityUpdated;
629 node->state &= ~(kProcessActive|kProcessForeground);
631 node->state |= kProcessForeground;
634 node->state |= kProcessActive;
640 node->hiwat_pages = high_water_mark;
644 if (node->priority == priority) {
651 if (node->priority < priority) {
653 search = TAILQ_PREV(node, memorystatus_list_head, link);
654 TAILQ_REMOVE(&memorystatus_list, node, link);
656 node->priority = priority;
657 while (search && (search->priority <= node->priority)) {
661 TAILQ_INSERT_AFTER(&memorystatus_list, search, node, link);
663 TAILQ_INSERT_HEAD(&memorystatus_list, node, link);
667 search = TAILQ_NEXT(node, link);
668 TAILQ_REMOVE(&memorystatus_list, node, link);
670 node->priority = priority;
671 while (search && (search->priority >= node->priority)) {
675 TAILQ_INSERT_BEFORE(search, node, link);
677 TAILQ_INSERT_TAIL(&memorystatus_list, node, link);
692 memorystatus_node *node = NULL;
700 TAILQ_FOREACH(node, &exit_list, link) {
701 if (node->pid == pid) {
703 TAILQ_REMOVE(&exit_list, node, link);
712 if (!node) {
715 TAILQ_FOREACH(node, &memorystatus_list, link) {
716 if (node->pid == pid) {
718 memorystatus_remove_node(node);
726 if (node) {
727 kfree(node, sizeof(memorystatus_node));
740 memorystatus_node *node;
742 node = memorystatus_get_node((pid_t)pid);
743 if (!node) {
747 if (track & !(node->state & kProcessSupportsIdleExit)) {
748 node->state |= kProcessSupportsIdleExit;
749 node->clean_time = mach_absolute_time() + memorystatus_idle_delay_time;
751 } else if (!track & (node->state & kProcessSupportsIdleExit)) {
752 node->state &= ~kProcessSupportsIdleExit;
753 node->clean_time = 0;
757 memorystatus_release_node(node);
766 memorystatus_node *node;
768 node = memorystatus_get_node((pid_t)pid);
769 if (!node) {
774 if (!(node->state & kProcessDirty)) {
775 node->state |= kProcessDirty;
776 node->clean_time = 0;
781 if (node->state & kProcessDirty) {
782 node->state &= ~kProcessDirty;
783 node->clean_time = mach_absolute_time() + memorystatus_idle_delay_time;
789 memorystatus_release_node(node);
797 memorystatus_node *node = memorystatus_get_node((pid_t)pid);
799 if (node) {
807 node->resident_pages = pages;
813 node->state |= kProcessSuspended;
815 memorystatus_release_node(node);
822 memorystatus_node *node = memorystatus_get_node((pid_t)pid);
824 if (node) {
826 boolean_t frozen = (node->state & kProcessFrozen);
827 if (node->state & (kProcessFrozen)) {
830 memorystatus_suspended_resident_count -= node->resident_pages;
834 node->state &= ~(kProcessSuspended | kProcessFrozen | kProcessIgnored);
836 memorystatus_release_node(node);
861 memorystatus_node *node;
879 TAILQ_FOREACH(node, &memorystatus_list, link) {
880 if ((node->state & kProcessSupportsIdleExit) && !(node->state & (kProcessDirty|kProcessIgnoreIdleExit))) {
881 if (current_time >= node->clean_time) {
882 victim_pid = node->pid;
977 memorystatus_move_node_to_exit_list(memorystatus_node *node)
986 memorystatus_remove_node(node);
989 TAILQ_INSERT_TAIL(&exit_list, node, link);
1016 memorystatus_node *node;
1018 TAILQ_FOREACH(node, &memorystatus_list, link) {
1019 if (node->pid == p->p_pid) {
1024 if (!node) {
1030 entry->priority = node->priority;
1032 entry->flags = memorystatus_build_flags_from_state(node->state);
1102 memorystatus_node *node;
1109 node = next_memorystatus_node;
1113 activeProcess = node->state & kProcessForeground;
1114 procSuspendedForDiagnosis = node->state & kProcessSuspendedForDiag;
1117 aPid = node->pid;
1120 if (aPid == 0 || (node->state & kProcessKilled)) {
1138 boolean_t reclaim_proc = !(node->state & (kProcessLocked | kProcessNoReclaimWorth));
1140 if (node->state & kProcessFrozen) {
1158 node->state |= kProcessSuspendedForDiag;
1173 memorystatus_move_node_to_exit_list(node);
1218 memorystatus_node *node;
1220 node = next_hiwat_node;
1223 aPid = node->pid;
1224 hiwat = node->hiwat_pages;
1227 if (aPid == 0 || (hiwat < 0) || (node->state & kProcessKilled)) {
1237 if (node->state & kProcessSuspendedForDiag) {
1246 if (node->state & kProcessLocked) {
1260 node->state |= kProcessSuspendedForDiag;
1271 memorystatus_move_node_to_exit_list(node);
1402 memorystatus_node *node;
1406 node = next_freeze_node;
1409 aPid = node->pid;
1410 state = node->state;
1445 node->state |= kProcessLocked;
1456 node->state &= ~kProcessLocked;
1463 node->state |= (kProcessFrozen | (shared ? 0: kProcessNoReclaimWorth));
1676 memorystatus_node *node;
1684 TAILQ_FOREACH(node, &memorystatus_list, link) {
1686 if (node->state & (kProcessKilled | kProcessLocked | kProcessSuspended | kProcessFrozen | kProcessNotifiedForPressure)) {
1689 node->state |= kProcessNotifiedForPressure;
1690 pid = node->pid;
1712 memorystatus_node *node;
1713 TAILQ_FOREACH(node, &memorystatus_list, link) {
1714 node->state &= ~kProcessNotifiedForPressure;
1758 memorystatus_node *node;
1772 TAILQ_FOREACH(node, &memorystatus_list, link) {
1773 list[i].pid = node->pid;
1774 list[i].priority = node->priority;
1775 list[i].flags = memorystatus_build_flags_from_state(node->state);
1776 list[i].hiwat_pages = node->hiwat_pages;