Annotation of xinu/sys/mount.c, revision 1.1.1.1

1.1       root        1: /* mount.c - mount */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <name.h>
                      6: 
                      7: /*------------------------------------------------------------------------
                      8:  *  mount  -  give meaning to a prefix in the abstract name space
                      9:  *------------------------------------------------------------------------
                     10:  */
                     11: SYSCALL        mount(prefix, dev, replace)
                     12: char   *prefix;
                     13: char   *replace;
                     14: int    dev;
                     15: {
                     16:        struct  nament  *nptr;
                     17:        struct  nament  *last;
                     18:        int     i;
                     19:        PStype  ps;
                     20: 
                     21:        if (prefix == NULL)
                     22:                prefix == NULLSTR;
                     23:        if (replace == NULL)
                     24:                replace == NULLSTR;
                     25:        if (strlen(prefix) >= NAMPLEN || strlen(replace) >= NAMRLEN)
                     26:                return(SYSERR);
                     27:        disable(ps);
                     28:        for (i=0 ; i<Nam.nnames ; i++) {
                     29:                nptr = &Nam.nametab[i];
                     30:                if (strcmp(prefix,nptr->npre) == 0) {
                     31:                        strcpy(nptr->nrepl, replace);
                     32:                        nptr->ndev = dev;
                     33:                        restore(ps);
                     34:                        return(OK);
                     35:                }
                     36:        }
                     37:        if (Nam.nnames >= NNAMES) {
                     38:                restore(ps);
                     39:                return(SYSERR);
                     40:        }
                     41:        nptr = last = &Nam.nametab[Nam.nnames++];
                     42:        if (Nam.nnames > 1) {   /* preserve last name prefix */
                     43:                nptr = last - 1;
                     44:                *last = *nptr;
                     45:        }
                     46:        strcpy(nptr->npre, prefix);
                     47:        strcpy(nptr->nrepl, replace);
                     48:        nptr->ndev = dev;
                     49:        restore(ps);
                     50:        return(OK);
                     51: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.