19 buf = smprint("/proc/%d/ctl", getpid());
20 fd = open(buf, OWRITE);
27 write(fd, "nointerrupt", 11);
31 r = (Req*)(((char*)q->next) - ((char*)&((Req*)0)->qu));
32 r->qu.next->prev = r->qu.prev;
33 r->qu.prev->next = r->qu.next;
35 memset(&r->qu, 0, sizeof(r->qu));
47 q = emalloc9p(sizeof(*q));
48 memset(q, 0, sizeof(*q));
50 q->next = q->prev = q;
51 q->pid = threadpid(proccreate(_reqqueueproc, q, mainstacksize));
56 reqqueuepush(Reqqueue *q, Req *r, void (*f)(Req *))
62 q->prev->next = &r->qu;
69 reqqueueflush(Reqqueue *q, Req *r)
76 sprint(buf, "/proc/%d/ctl", q->pid);
77 fd = open(buf, OWRITE);
79 write(fd, "interrupt", 9);
85 if(r->qu.next != nil){
86 r->qu.next->prev = r->qu.prev;
87 r->qu.prev->next = r->qu.next;
89 memset(&r->qu, 0, sizeof(r->qu));
91 respond(r, "interrupted");