|
|
1.1 ! root 1: /* x_mount.c - x_mount, mprint */ ! 2: ! 3: #include <conf.h> ! 4: #include <kernel.h> ! 5: #include <io.h> ! 6: #include <name.h> ! 7: ! 8: #define PADTO 24 ! 9: ! 10: /*------------------------------------------------------------------------ ! 11: * x_mount - (command mount) change or display namespace table ! 12: *------------------------------------------------------------------------ ! 13: */ ! 14: COMMAND x_mount(stdin, stdout, stderr, nargs, args) ! 15: int stdin, stdout, stderr, nargs; ! 16: char *args[]; ! 17: { ! 18: int dev; ! 19: ! 20: if (nargs == 1) ! 21: return(mprint(stdin, stdout, stderr)); ! 22: if (nargs != 4) { ! 23: fprintf(stderr,"use: mount [prefix device new_prefix]\n"); ! 24: return(SYSERR); ! 25: } ! 26: for (dev=0 ; dev<NDEVS ; dev++) ! 27: if (strcmp(args[2], devtab[dev].dvname) == 0) ! 28: break; ! 29: if (dev >= NDEVS) ! 30: if (strcmp(args[2],"SYSERR") == 0) ! 31: dev = SYSERR; ! 32: else { ! 33: fprintf(stderr, "Device %s not found\n", args[2]); ! 34: return(SYSERR); ! 35: } ! 36: if (mount(args[1], dev, args[3]) == SYSERR) { ! 37: fprintf(stderr, "Mount failed\n"); ! 38: return(SYSERR); ! 39: } ! 40: return(OK); ! 41: } ! 42: ! 43: ! 44: /*------------------------------------------------------------------------ ! 45: * mprint - print the current contents of the namespace prefix table ! 46: *------------------------------------------------------------------------ ! 47: */ ! 48: LOCAL mprint(stdin, stdout, stderr) ! 49: int stdin, stdout, stderr; ! 50: { ! 51: struct nament *nptr; ! 52: int i, len, dev; ! 53: char str[80]; ! 54: char *p; ! 55: ! 56: for (i=0 ; i<Nam.nnames ; i++) { ! 57: nptr = & Nam.nametab[i]; ! 58: sprintf(str, "\"%-s\"", nptr->npre); ! 59: for (len=strlen(str) ; len < PADTO ; len++) ! 60: str[len] = ' '; ! 61: write(stdout, str, PADTO); ! 62: dev = nptr->ndev; ! 63: p = isbaddev(dev) ? "SYSERR" : devtab[dev].dvname; ! 64: sprintf(str, " -> (%-9s) \"%s\"\n", p, nptr->nrepl); ! 65: write(stdout, str, strlen(str)); ! 66: } ! 67: return(OK); ! 68: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.