Lines Matching refs:idx

25 static void cpudl_heapify_down(struct cpudl *cp, int idx)
29 int orig_cpu = cp->elements[idx].cpu;
30 u64 orig_dl = cp->elements[idx].dl;
32 if (left_child(idx) >= cp->size)
39 l = left_child(idx);
40 r = right_child(idx);
41 largest = idx;
53 if (largest == idx)
56 /* pull largest child onto idx */
57 cp->elements[idx].cpu = cp->elements[largest].cpu;
58 cp->elements[idx].dl = cp->elements[largest].dl;
59 cp->elements[cp->elements[idx].cpu].idx = idx;
60 idx = largest;
63 cp->elements[idx].cpu = orig_cpu;
64 cp->elements[idx].dl = orig_dl;
65 cp->elements[cp->elements[idx].cpu].idx = idx;
68 static void cpudl_heapify_up(struct cpudl *cp, int idx)
72 int orig_cpu = cp->elements[idx].cpu;
73 u64 orig_dl = cp->elements[idx].dl;
75 if (idx == 0)
79 p = parent(idx);
82 /* pull parent onto idx */
83 cp->elements[idx].cpu = cp->elements[p].cpu;
84 cp->elements[idx].dl = cp->elements[p].dl;
85 cp->elements[cp->elements[idx].cpu].idx = idx;
86 idx = p;
87 } while (idx != 0);
89 cp->elements[idx].cpu = orig_cpu;
90 cp->elements[idx].dl = orig_dl;
91 cp->elements[cp->elements[idx].cpu].idx = idx;
94 static void cpudl_heapify(struct cpudl *cp, int idx)
96 if (idx > 0 && dl_time_before(cp->elements[parent(idx)].dl,
97 cp->elements[idx].dl))
98 cpudl_heapify_up(cp, idx);
100 cpudl_heapify_down(cp, idx);
182 old_idx = cp->elements[cpu].idx;
194 cp->elements[new_cpu].idx = old_idx;
195 cp->elements[cpu].idx = IDX_INVALID;
222 old_idx = cp->elements[cpu].idx;
228 cp->elements[cpu].idx = new_idx;
282 cp->elements[i].idx = IDX_INVALID;