/* sleep10.c - sleep10 */ #include <conf.h> #include <kernel.h> #include <proc.h> #include <q.h> #include <sleep.h> /*------------------------------------------------------------------------ * sleep10 -- delay the caller for a time specified in tenths of seconds *------------------------------------------------------------------------ */ SYSCALL sleep10(n) int n; { char ps; if (n < 0 || clkruns==0) return(SYSERR); disable(ps); if (n == 0) { /* sleep10(0) -> end time slice */ ; } else { insertd(currpid,clockq,n); slnempty = TRUE; sltop = (int *) & q[q[clockq].qnext].qkey; proctab[currpid].pstate = PRSLEEP; } resched(); restore(ps); return(OK); }