uintptr syssleep(va_list list) { long ms; ms = va_arg(list, long); if(ms <= 0) { if (up->edf != nil && (up->edf->flags & Admitted)) edfyield(); else yield(); } else { if(ms < TK2MS(1)) ms = TK2MS(1); tsleep(&up->sleep, return0, 0, ms); } return 0; }
long syssleep(ulong *arg) { int n; n = arg[0]; if(n <= 0) { if (up->edf && (up->edf->flags & Admitted)) edfyield(); else yield(); return 0; } if(n < TK2MS(1)) n = TK2MS(1); tsleep(&up->sleep, return0, 0, n); return 0; }