Lines Matching refs:kn
89 int vm_knote_register(struct knote *kn) {
94 if ((kn->kn_sfflags) & (NOTE_VM_PRESSURE)) {
95 KNOTE_ATTACH(&vm_pressure_klist, kn);
105 void vm_knote_unregister(struct knote *kn) {
110 VM_PRESSURE_DEBUG(0, "[vm_pressure] process %d cancelling pressure notification\n", kn->kn_kq->kq_p->p_pid);
113 if (kn_temp == kn) {
114 KNOTE_DETACH(&vm_pressure_klist, kn);
121 if (kn_temp == kn) {
122 KNOTE_DETACH(&vm_pressure_klist_dormant, kn);
133 struct knote *kn = NULL;
139 SLIST_FOREACH(kn, &vm_pressure_klist, kn_selnext) {
140 if (kn->kn_kq->kq_p == p) {
141 KNOTE_DETACH(&vm_pressure_klist, kn);
147 SLIST_FOREACH(kn, &vm_pressure_klist_dormant, kn_selnext) {
148 if (kn->kn_kq->kq_p == p) {
149 KNOTE_DETACH(&vm_pressure_klist_dormant, kn);
190 struct knote *kn = NULL;
192 SLIST_FOREACH(kn, &vm_pressure_klist, kn_selnext) {
196 p = kn->kn_kq->kq_p;
204 return kn;
209 struct knote *kn = NULL;
216 if ((kn = vm_find_knote_from_pid(target_pid))) {
224 if (NULL == kn) {
230 VM_PRESSURE_DEBUG(1, "[vm_pressure] sending event to pid %d, free pages %d\n", kn->kn_kq->kq_p->p_pid, memorystatus_available_pages);
247 struct knote *kn;
251 kn = vm_find_knote_from_pid(pid);
252 if (kn) {
258 return kn ? TRUE : FALSE;
267 struct knote *kn = NULL, *kn_max = NULL;
278 SLIST_FOREACH(kn, &vm_pressure_klist, kn_selnext) {
285 p = kn->kn_kq->kq_p;
318 kn_max = kn;
358 struct knote *kn;
363 kn = SLIST_FIRST(&vm_pressure_klist_dormant);
365 SLIST_INSERT_HEAD(&vm_pressure_klist, kn, kn_selnext);