]> Zhao Yanbai Git Server - minix.git/commitdiff
Rest ...
authorJorrit Herder <jnherder@minix3.org>
Fri, 21 Oct 2005 13:46:47 +0000 (13:46 +0000)
committerJorrit Herder <jnherder@minix3.org>
Fri, 21 Oct 2005 13:46:47 +0000 (13:46 +0000)
drivers/rescue/rescue.c
drivers/rtl8139/rtl8139.c
include/minix/com.h
kernel/system/do_exit.c
servers/rs/manager.c
servers/rs/service.c
tools/Makefile

index 1b4df7776666a3d383a23b54dfa294895ff2bda8..dfdf3ea4a22827cf3b2c733b35da466792829182 100644 (file)
@@ -10,7 +10,7 @@
 #include "../../kernel/config.h"
 #include "../../kernel/type.h"
 
-
+#define VERBOSE                   0            /* enable/ disable messages */
 #define NR_DEVS            1           /* number of rescue devices */
 #define RESCUE_KBYTES   128            /* default size in kilobytes */
 
@@ -200,8 +200,10 @@ char **argv;
               panic("RESCUE","Couldn't store rescue disk details at DS.",s);
           }
 
+#if VERBOSE
           printf("RESCUE disk %d (size %u/base %u) initialized\n",
               i, rescue_size, rescue_base);
+#endif
       }
   }
 }
index 3b5ce966299d88fc1cae9d10f6f1e690cb74a535..7863fb2605021e40518fe29796de57ededad0a31 100755 (executable)
@@ -299,13 +299,13 @@ int main(int argc, char *argv[])
        for (rep= &re_table[0]; rep < re_table+RE_PORT_NR; rep++)
                rl_init_buf(rep);
 
-       /* Try to notify inet that we are present (again). */
+       /* Try to notify INET that we are present (again). If INET cannot
+        * be found, assume this is the first time we started and INET is
+        * not yet alive.
+        */
        (progname=strrchr(argv[0],'/')) ? progname++ : (progname=argv[0]);
        r = findproc("inet", &inet_proc_nr);
-       if (r == OK)
-               notify(inet_proc_nr);
-       else
-               printf("rtl8139: cannot find proc number for inet: %d\n", r);
+       if (r == OK) notify(inet_proc_nr);
 
 
        while (TRUE)
index a56517426ff2e4da7c74f8af049482a9a89f130a..e4bf92c8820727748099e925115da1e2404a7875 100755 (executable)
 #define RS_UP          (RS_RQ_BASE + 0)        /* start system service */
 #define RS_DOWN                (RS_RQ_BASE + 1)        /* stop system service */
 #define RS_REFRESH     (RS_RQ_BASE + 2)        /* restart system service */
-#define RS_SHUTDOWN    (RS_RQ_BASE + 3)        /* alert about shutdown */
+#define RS_RESCUE      (RS_RQ_BASE + 3)        /* set rescue directory */
+#define RS_SHUTDOWN    (RS_RQ_BASE + 4)        /* alert about shutdown */
 
 #  define RS_CMD_ADDR          m1_p1           /* command string */
 #  define RS_CMD_LEN           m1_i1           /* length of command */
index f6a28d0609e97f519e452bedcf0cb2d9c4726375..6c144ffc9d5e6716beb7b7da9be439d2ba218832 100644 (file)
@@ -50,7 +50,7 @@ register struct proc *rc;             /* slot of process to clean up */
   register struct proc **xpp;          /* iterate over caller queue */
   int i;
   int sys_id;
-  char rts_flags;
+  char saved_rts_flags;
 
   /* Don't clear if already cleared. */
   if(isemptyp(rc)) return;
@@ -66,7 +66,7 @@ register struct proc *rc;             /* slot of process to clean up */
    * this point. All important fields are reinitialized when the 
    * slots are assigned to another, new process. 
    */
-  rts_flags = rc->p_rts_flags;
+  saved_rts_flags = rc->p_rts_flags;
   rc->p_rts_flags = SLOT_FREE;         
   if (priv(rc)->s_flags & SYS_PROC) priv(rc)->s_proc_nr = NONE;
 
@@ -74,7 +74,7 @@ register struct proc *rc;             /* slot of process to clean up */
    * message (e.g., the process was killed by a signal, rather than it doing 
    * a normal exit), then it must be removed from the message queues.
    */
-  if (rts_flags & SENDING) {
+  if (saved_rts_flags & SENDING) {
       xpp = &proc[rc->p_sendto].p_caller_q;    /* destination's queue */
       while (*xpp != NIL_PROC) {               /* check entire queue */
           if (*xpp == rc) {                    /* process is on the queue */
index 341e677480f8b6ff49917940e245249d42f32d07..1ad9ae1b5da069bd5d76ddc8de1c55e451b423d0 100644 (file)
@@ -345,8 +345,6 @@ struct rproc *rp;
        */
       execve(rp->r_argv[0], rp->r_argv, NULL);         /* POSIX execute */
       file_only = strrchr(rp->r_argv[0], '/') + 1;
-      printf("Absolute exec failed (%d), trying file only: %s\n",
-         errno, file_only);
       execve(file_only, rp->r_argv, NULL);             /* POSIX execute */
       printf("RS: exec failed for %s: %d\n", rp->r_argv[0], errno);
       exit(EXEC_FAILED);                               /* terminate child */
index 3cdac48305c7ab8f550fbd2a76f694ab45e6fc12..15f965e3138742f1e8ceaca4037eefb2c9111530 100644 (file)
@@ -195,6 +195,10 @@ PRIVATE int parse_arguments(int argc, char **argv)
           exit(EINVAL);
       }
       req_path = argv[ARG_PATH];
+      if (req_path[0] != '/') {
+          print_usage(argv[ARG_NAME], "rescue dir should be absolute path");
+          exit(EINVAL);
+      }
       if (stat(argv[ARG_PATH], &stat_buf) == -1) {
           print_usage(argv[ARG_NAME], "couldn't get status of directory");
           exit(errno);
index ab652518fe0b40febd7585ad9c481ac8f6a4b90e..39d6861cc74b96320609d280a0517644113f897e 100755 (executable)
@@ -99,7 +99,7 @@ fdboot:       image
        exec su root mkboot $@
        @sync
 
-install: services hdboot
+install: includes services hdboot
 
 # clean up compile results
 clean: