## diffname boot/aux.c 1992/0317 ## diff -e /dev/null /n/bootesdump/1992/0317/sys/src/9/boot/aux.c 0a #include #include #include <../boot/boot.h> int plumb(char *dir, char *dest, int *efd, char *here) { char buf[128]; char name[128]; int n; sprint(name, "%s/clone", dir); efd[0] = open(name, ORDWR); if(efd[0] < 0) return -1; n = read(efd[0], buf, sizeof(buf)-1); if(n < 0){ close(efd[0]); return -1; } buf[n] = 0; sprint(name, "%s/%s/data", dir, buf); if(here){ sprint(buf, "announce %s", here); if(sendmsg(efd[0], buf) < 0){ close(efd[0]); return -1; } } sprint(buf, "connect %s", dest); if(sendmsg(efd[0], buf) < 0){ close(efd[0]); return -1; } efd[1] = open(name, ORDWR); if(efd[1] < 0){ close(efd[0]); return -1; } return efd[1]; } int sendmsg(int fd, char *msg) { int n; n = strlen(msg); if(write(fd, msg, n) != n) return -1; return 0; } void warning(char *s) { char buf[ERRLEN]; errstr(buf); fprint(2, "boot: %s: %s\n", s, buf); } void fatal(char *s) { char buf[ERRLEN]; errstr(buf); fprint(2, "boot: %s: %s\n", s, buf); exits(0); } int readenv(char *name, char *buf, int len) { int f, n; char ename[2*NAMELEN]; sprint(ename, "#e/%s", name); buf[0] = 0; f = open(ename, OREAD); if(f < 0) return -1; n = read(f, buf, len-1); if(n >= 0) buf[n] = 0; close(f); return 0; } void setenv(char *name, char *val) { int f; char ename[2*NAMELEN]; sprint(ename, "#e/%s", name); f = create(ename, 1, 0666); if(f < 0) return; write(f, val, strlen(val)); close(f); } void srvcreate(char *name, int fd) { char *srvname; int f; srvname = strrchr(name, '/'); if(srvname) srvname++; else srvname = name; sprint(buf, "#s/%s", srvname); f = create(buf, 1, 0666); if(f < 0) fatal(buf); sprint(buf, "%d", fd); if(write(f, buf, strlen(buf)) != strlen(buf)) fatal("write"); close(f); } int outin(char *prompt, char *def, int len) { int n; char buf[256]; do{ print("%s[%s]: ", prompt, *def ? def : "no default"); n = read(0, buf, len); }while(n==0); if(n < 0) fatal("can't read #c/cons; please reboot"); if(n != 1){ buf[n-1] = 0; strcpy(def, buf); } return n; } . ## diffname boot/aux.c 1992/0318 ## diff -e /n/bootesdump/1992/0317/sys/src/9/boot/aux.c /n/bootesdump/1992/0318/sys/src/9/boot/aux.c 109a char buf[2*NAMELEN]; . ## diffname boot/aux.c 1992/0530 ## diff -e /n/bootesdump/1992/0318/sys/src/9/boot/aux.c /n/bootesdump/1992/0530/sys/src/9/boot/aux.c 145a void getconffile(char *conffile, char *terminal) { char *p, *q; *conffile = 0; p = terminal; if((p = strchr(p, ' ')) == 0 || p[1] == ' ' || p[1] == 0) return; p++; for(q = p; *q && *q != ' '; q++) ; while(p < q) *conffile++ = *p++; } . ## diffname boot/aux.c 1992/0609 ## diff -e /n/bootesdump/1992/0530/sys/src/9/boot/aux.c /n/bootesdump/1992/0609/sys/src/9/boot/aux.c 139c fatal("can't read #c/cons or timeout; please reboot"); . 137a alarm(0); . 133a alarm(60*1000); . ## diffname boot/aux.c 1992/0610 ## diff -e /n/bootesdump/1992/0609/sys/src/9/boot/aux.c /n/bootesdump/1992/0610/sys/src/9/boot/aux.c 162a *conffile = 0; /* dump a trailig boot */ n = strlen(s); if(n > 4 && strcmp(s + n - 4, "boot") == 0) *(s+n-4) = 0; . 153a s = conffile; . 152a char *s; int n; . 148a /* * get second word of the terminal environment variable. If it * ends in "boot", get work of that part. */ . 81c f = open(name, OREAD); . 79d 77d 74c readfile(char *name, char *buf, int len) . ## diffname boot/aux.c 1992/0617 ## diff -e /n/bootesdump/1992/0610/sys/src/9/boot/aux.c /n/bootesdump/1992/0617/sys/src/9/boot/aux.c 137c if(cpuflag) alarm(0); . 132c if(cpuflag) alarm(60*1000); . ## diffname boot/aux.c 1992/0625 ## diff -e /n/bootesdump/1992/0617/sys/src/9/boot/aux.c /n/bootesdump/1992/0625/sys/src/9/boot/aux.c 172c /* dump a trailing boot */ . 151c * ends in "boot", get rid of that part. . ## diffname boot/aux.c 1993/0330 ## diff -e /n/bootesdump/1992/0625/sys/src/9/boot/aux.c /n/bootesdump/1993/0330/sys/src/9/boot/aux.c 88a int writefile(char *name, char *buf, int len) { int f, n; f = open(name, OWRITE); if(f < 0) return -1; n = write(f, buf, len); close(f); return (n != len) ? -1 : 0; } . ## diffname boot/aux.c 1993/0406 ## diff -e /n/bootesdump/1993/0330/sys/src/9/boot/aux.c /n/bootesdump/1993/0406/sys/src/9/boot/aux.c 122a print("post(%s)...", name); . ## diffname boot/aux.c 1993/0407 ## diff -e /n/bootesdump/1993/0406/sys/src/9/boot/aux.c /n/bootesdump/1993/0407/sys/src/9/boot/aux.c 123d ## diffname boot/aux.c 1993/0901 ## diff -e /n/bootesdump/1993/0407/sys/src/9/boot/aux.c /n/fornaxdump/1993/0901/sys/src/brazil/boot/aux.c 154c return 1; . 152a atnotify(catchint, 0); . 149a if(cpuflag) alarm(15*1000); . 146c alarm(15*1000); . 144a atnotify(catchint, 1); . 138a static int catchint(void *a, char *note) { USED(a); if(strcmp(note, "alarm") == 0) return 1; return 0; } . ## diffname boot/aux.c 1997/0327 ## diff -e /n/fornaxdump/1993/0901/sys/src/brazil/boot/aux.c /n/emeliedump/1997/0327/sys/src/brazil/boot/aux.c 186,201c for(i=0; lp && *lp && i