19 buf = smprint("/proc/%lud/ctl", (ulong)getpid());
20 fd = open(buf, OWRITE|OCEXEC);
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));
55 q = emalloc9p(sizeof(*q));
56 memset(q, 0, sizeof(*q));
58 q->next = q->prev = q;
59 q->pid = proccreate(_reqqueueproc, q, mainstacksize);
64 reqqueuepush(Reqqueue *q, Req *r, void (*f)(Req *))
70 q->prev->next = &r->qu;
77 reqqueueflush(Reqqueue *q, Req *r)
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");
96 reqqueuefree(Reqqueue *q)
102 r = emalloc9p(sizeof(Req));
103 reqqueuepush(q, r, nil);