Annotation of researchv9/jtools/src/sam/sun.c, revision 1.1

1.1     ! root        1: #include "sam.h"
        !             2: 
        !             3: static char    *samterm="xsamterm";
        !             4: static char    *termargv[20]={"xsamterm", 0};
        !             5: static int     targc=1;
        !             6: 
        !             7: sunarg(pargv, pargc)
        !             8:        uchar **pargv[];
        !             9:        int *pargc;
        !            10: {
        !            11:        switch((*pargv)[1][1]){
        !            12:        case '=':       /* X geometry argument */
        !            13:                termargv[targc++]=(char *)((*pargv)[1]+1);
        !            14:                break;
        !            15:        }
        !            16:        termargv[targc]=0;
        !            17: }
        !            18: char *memcpy(s1, s2, n)
        !            19: char *s1;
        !            20: register char *s2;
        !            21: register int n;
        !            22: {
        !            23:        register char *cs1;
        !            24:        cs1=s1;
        !            25:        while(n--)
        !            26:                *cs1++ = *s2++;
        !            27:        return s1;
        !            28: }
        !            29: bootterm(zflag)
        !            30: {
        !            31:        int afildes[2], bfildes[2], pid;
        !            32:        if((pipe(afildes)==-1)||(pipe(bfildes)==-1)){
        !            33:                dprint("sam: can't create pipe to terminal process\n");
        !            34:                return 0;
        !            35:        }
        !            36:        if((pid=fork())==0){
        !            37:                close(0);
        !            38:                dup(afildes[0]);
        !            39:                close(1);
        !            40:                dup(bfildes[1]);
        !            41:                execvp(samterm, termargv);
        !            42:                exit(127);
        !            43:        }
        !            44:        if(pid==-1){
        !            45:                dprint("sam: can't fork samterm\n");
        !            46:                return 0;
        !            47:        }
        !            48: #ifndef DIST
        !            49:        sleep(3);       /* for dbx: allow time for child to get out */
        !            50: #endif
        !            51:        close(0);
        !            52:        dup(bfildes[0]);
        !            53:        close(1);
        !            54:        dup(afildes[1]);
        !            55:        return 1;
        !            56: }
        !            57: 
        !            58: /* start the terminal part, then execute sam on remote machine */
        !            59: connectboot(machine,zflag)
        !            60:        char *machine;
        !            61: {
        !            62:        bootterm(zflag);
        !            63:        rawmode(1);
        !            64:        execlp("rsh", machine, "exec /usr/jerq/bin/sam -R", 0);
        !            65:        exit(127);
        !            66: }
        !            67: 
        !            68: /* connectboot means these two aren't called */
        !            69: connectto(machine)
        !            70:        char *machine;
        !            71: {      return;
        !            72: }
        !            73: 
        !            74: join()
        !            75: {      return;
        !            76: }

unix.superglobalmegacorp.com

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