Annotation of researchv9/jtools/src/sam/sun.c, revision 1.1.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.