|
|
1.1 ! root 1: /* insertd.c - insertd */ ! 2: ! 3: #include <conf.h> ! 4: #include <kernel.h> ! 5: #include <q.h> ! 6: ! 7: /*------------------------------------------------------------------------ ! 8: * insertd -- insert process pid in delta list "head", given its key ! 9: *------------------------------------------------------------------------ ! 10: */ ! 11: insertd(pid, head, key) ! 12: int pid; ! 13: int head; ! 14: int key; ! 15: { ! 16: ! 17: int next; /* runs through list */ ! 18: int prev; /* follows next through list */ ! 19: ! 20: if (key < 0 || key > MAXSHORT) ! 21: return (SYSERR); ! 22: ! 23: for(prev=head,next=q[head].qnext ; ! 24: q[next].qkey < key ; prev=next,next=q[next].qnext) ! 25: key -= q[next].qkey; ! 26: q[pid].qnext = next; ! 27: q[pid].qprev = prev; ! 28: q[pid].qkey = key; ! 29: q[prev].qnext = pid; ! 30: q[next].qprev = pid; ! 31: if (next < NPROC) ! 32: q[next].qkey -= key; ! 33: return(OK); ! 34: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.