Annotation of researchv9/jtools/src/pi/main.c, revision 1.1

1.1     ! root        1: #include "master.pri"
        !             2: #include "rt.h"
        !             3: #include "format.pri"
        !             4: #include <CC/stdio.h>
        !             5: #include <signal.h>
        !             6: SRCFILE("main.c")
        !             7: 
        !             8: void ErrExit(char *e)
        !             9: {
        !            10:        fprintf(stderr, "%s\n", e);
        !            11:        exit(1);
        !            12: }
        !            13: 
        !            14: char *getenv(char*), *Getwd();
        !            15: char *CD;
        !            16: char *DEVKMEM = "/dev/kmem";
        !            17: char *PADSTERM;
        !            18: char *TAPTO;
        !            19: char *UNIX = "/vmunix";
        !            20: char *PATH;
        !            21: 
        !            22: void PadsRemInit();
        !            23: char *PadsTermInit(char*);
        !            24: 
        !            25: void LoadTerm(char **av)
        !            26: {
        !            27:        if (av[0] && !strcmp(av[0],"-R")) {
        !            28:                PadsRemInit();
        !            29:                return;
        !            30:        }
        !            31:        if (av[0] && !strcmp(av[0],"-r") && av[1])
        !            32:                ErrExit(PadsTermInit(av[1]));
        !            33:        if( PadsInit(PADSTERM) )
        !            34:                ErrExit("cannot load terminal");
        !            35: }
        !            36: 
        !            37: void mainbatch(char **av)
        !            38: {
        !            39:        char *core = "core", *aout = "a.out";
        !            40:        if( *av ) core = *av++;
        !            41:        if( *av ) aout = *av++;
        !            42:        new BatchMaster(core, aout);
        !            43:        exit(0);
        !            44: }
        !            45: 
        !            46: void mainpi(char **av)
        !            47: {
        !            48:        if(av[0] && !strcmp(av[0],"-t") ) {
        !            49:                mainbatch(av+1);
        !            50:                av += 2;
        !            51:        }
        !            52:        LoadTerm(av);
        !            53:        extern char *TapTo;
        !            54:        TapTo = TAPTO;
        !            55:        NewHelp();
        !            56:        NewWd();
        !            57:        new HostMaster();
        !            58:        PadsServe();
        !            59: }
        !            60: 
        !            61: void mainrtpi(char **av)
        !            62: {
        !            63:        LoadTerm(av);
        !            64:        extern char *TapTo;
        !            65:        TapTo = TAPTO;
        !            66:        NewHelp();
        !            67:        NewWd();
        !            68:        new RtConnections;
        !            69:        PadsServe();
        !            70: }
        !            71: 
        !            72: void main(int, char **av)
        !            73: {
        !            74:        char *e;
        !            75:        if( e = getenv("PADSTERM") ) PADSTERM = e;
        !            76:        if( e = getenv("UNIX") ) UNIX = e;
        !            77:        if( e = getenv("DEVKMEM") ) DEVKMEM = e;
        !            78:        if( e = getenv("PATH") ) PATH = e;
        !            79:        CD = sf( "builtin cd %s;", Getwd() );
        !            80:        ::signal(SIGCHLD, SIG_IGN);
        !            81: 
        !            82:        char *base = basename(*av++);
        !            83:        if( !strcmp(base,"rtpi") )
        !            84:                mainrtpi(av);
        !            85:        else
        !            86:                mainpi(av);
        !            87: }

unix.superglobalmegacorp.com

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