]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/boot/aux.c
nusb: change usbevent format, put nusbrc in bootfs
[plan9front.git] / sys / src / 9 / boot / aux.c
index b5dec7764c7fc7ee0d57d074027261d4d47d4582..2c7c64af059bfc61e3dbdfe48cf252530a823395 100644 (file)
@@ -2,67 +2,6 @@
 #include <libc.h>
 #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[ERRMAX];
-
-       buf[0] = '\0';
-       errstr(buf, sizeof buf);
-       fprint(2, "boot: %s: %s\n", s, buf);
-}
-
 void
 fatal(char *s)
 {
@@ -90,6 +29,33 @@ readfile(char *name, char *buf, int len)
        return 0;
 }
 
+void
+run(char *file, ...)
+{
+       char buf[64];
+       Waitmsg *w;
+       int pid;
+
+       switch(pid = fork()){
+       case -1:
+               fatal("fork");
+       case 0:
+               exec(file, &file);
+               snprint(buf, sizeof buf, "can't exec %s", file);
+               fatal(buf);
+       default:
+               while((w = wait()) != nil)
+                       if(w->pid == pid)
+                               break;
+               if(w == nil){
+                       snprint(buf, sizeof buf, "wait returned nil running %s", file);
+                       free(w);
+                       fatal(buf);
+               }
+               free(w);
+       }
+}
+
 int
 writefile(char *name, char *buf, int len)
 {
@@ -104,12 +70,12 @@ writefile(char *name, char *buf, int len)
 }
 
 void
-setenv(char *name, char *val)
+setenv(char *name, char *val, int ec)
 {
        int f;
        char ename[64];
 
-       snprint(ename, sizeof ename, "#e/%s", name);
+       snprint(ename, sizeof ename, "#e%s/%s", ec ? "c" : "", name);
        f = create(ename, 1, 0666);
        if(f < 0){
                fprint(2, "create %s: %r\n", ename);
@@ -118,65 +84,3 @@ setenv(char *name, char *val)
        write(f, val, strlen(val));
        close(f);
 }
-
-void
-srvcreate(char *name, int fd)
-{
-       char *srvname;
-       int f;
-       char buf[64];
-
-       srvname = strrchr(name, '/');
-       if(srvname)
-               srvname++;
-       else
-               srvname = name;
-
-       snprint(buf, sizeof 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);
-}
-
-void
-catchint(void *a, char *note)
-{
-       USED(a);
-       if(strcmp(note, "alarm") == 0)
-               noted(NCONT);
-       noted(NDFLT);
-}
-
-int
-outin(char *prompt, char *def, int len)
-{
-       int n;
-       char buf[256];
-
-       if(len >= sizeof buf)
-               len = sizeof(buf)-1;
-
-       if(cpuflag){
-               notify(catchint);
-               alarm(15*1000);
-       }
-       print("%s[%s]: ", prompt, *def ? def : "no default");
-       memset(buf, 0, sizeof buf);
-       n = read(0, buf, len);
-       if(cpuflag){
-               alarm(0);
-               notify(0);
-       }
-
-       if(n < 0)
-               return 1;
-       if(n > 1){
-               buf[n-1] = 0;
-               strcpy(def, buf);
-       }
-       return n;
-}