|
|
1.1 ! root 1: /* dsseek.c - dsseek */ ! 2: ! 3: #include <conf.h> ! 4: #include <kernel.h> ! 5: #include <proc.h> ! 6: #include <disk.h> ! 7: ! 8: /*------------------------------------------------------------------------ ! 9: * dsseek -- schedule a request to move the disk arm ! 10: *------------------------------------------------------------------------ ! 11: */ ! 12: dsseek(devptr, block) ! 13: struct devsw *devptr; ! 14: DBADDR block; ! 15: { ! 16: struct dreq *drptr; ! 17: char ps; ! 18: ! 19: disable(ps); ! 20: drptr = (struct dreq *) getbuf(dskrbp); ! 21: drptr->drdba = block; ! 22: drptr->drpid = currpid; ! 23: drptr->drbuff = NULL; ! 24: drptr->drop = DSEEK; ! 25: ! 26: /* enqueued with normal policy like other read/write requests */ ! 27: ! 28: dskenq(drptr, devptr->dvioblk); ! 29: restore(ps); ! 30: return(OK); ! 31: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.