+int uloop_process_add(struct uloop_process *p)
+{
+ struct uloop_process *tmp;
+ struct list_head *h = &processes;
+
+ if (p->pending)
+ return -1;
+
+ list_for_each_entry(tmp, &processes, list) {
+ if (tmp->pid > p->pid) {
+ h = &tmp->list;
+ break;
+ }
+ }
+
+ list_add_tail(&p->list, h);
+ p->pending = true;
+
+ return 0;
+}
+
+int uloop_process_delete(struct uloop_process *p)
+{
+ if (!p->pending)
+ return -1;
+
+ list_del(&p->list);
+ p->pending = false;