|
|
1.1 ! root 1: /* unmount.c - unmount */ ! 2: ! 3: #include <conf.h> ! 4: #include <kernel.h> ! 5: #include <name.h> ! 6: ! 7: /*------------------------------------------------------------------------ ! 8: * unmount - remove an entry from the name prefix mapping table ! 9: *------------------------------------------------------------------------ ! 10: */ ! 11: SYSCALL unmount(prefix) ! 12: char *prefix; ! 13: { ! 14: struct nament *nptr; ! 15: PStype ps; ! 16: int i; ! 17: ! 18: if (prefix == NULL) ! 19: prefix = NULLSTR; ! 20: else if (strlen(prefix) >= NAMPLEN) ! 21: return(SYSERR); ! 22: disable(ps); ! 23: for (i=0 ; i<Nam.nnames ; i++) { ! 24: nptr = &Nam.nametab[i]; ! 25: if (strcmp(prefix, nptr->npre) == 0) { ! 26: for(Nam.nnames-- ; i<Nam.nnames ; i++) ! 27: Nam.nametab[i] = Nam.nametab[i+1]; ! 28: restore(ps); ! 29: return(OK); ! 30: } ! 31: } ! 32: restore(ps); ! 33: return(SYSERR); ! 34: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.