]> Zhao Yanbai Git Server - minix.git/commitdiff
Use nonblocking sends to reply, fixed reply message for DIAGNOSTICS(_S)
authorPhilip Homburg <philip@cs.vu.nl>
Fri, 22 Feb 2008 16:03:00 +0000 (16:03 +0000)
committerPhilip Homburg <philip@cs.vu.nl>
Fri, 22 Feb 2008 16:03:00 +0000 (16:03 +0000)
drivers/tty/console.c
drivers/tty/tty.c

index 205651ba7888c0ace20f6b04ef05eb0e773677bd..c7a2421f583c9dd3b1961f5d5e7d33700567ccc5 100644 (file)
@@ -1132,7 +1132,8 @@ int safe;
        cons_putk(c);
   }
   cons_putk(0);                        /* always terminate, even with EFAULT */
-  m_ptr->m_type = result;
+  m_ptr->m_type = DIAG_REPL;
+  m_ptr->REP_STATUS = result;
   send(m_ptr->m_source, m_ptr);
 }
 
index 780dbda34445e056fcc22445c5db8dd73fb233b1..56b41247739bebb265f996f2d67f526f70b0d7ea 100644 (file)
@@ -212,7 +212,11 @@ PUBLIC void main(void)
                continue;
        }
        case DIAGNOSTICS:               /* a server wants to print some */
-               printf("WARNING: old DIAGNOSTICS from %d\n", tty_mess.m_source);
+               if (tty_mess.m_source != LOG_PROC_NR)
+               {
+                       printf("WARNING: old DIAGNOSTICS from %d\n",
+                               tty_mess.m_source);
+               }
                do_diagnostics(&tty_mess, 0);
                continue;
        case DIAGNOSTICS_S: 
@@ -377,8 +381,10 @@ message *m_ptr;
   }
 
   /* Almost done. Send back the reply message to the caller. */
-  if ((status = send(m_ptr->m_source, m_ptr)) != OK) {
-       panic("TTY","send in do_status failed, status\n", status);
+  status = sendnb(m_ptr->m_source, m_ptr);
+  if (status != OK) {
+       printf("tty`do_status: send to %d failed: %d\n",
+               m_ptr->m_source, status);
   }
 }
 
@@ -1473,9 +1479,9 @@ int status;                       /* reply code */
        panic("TTY","tty_reply sending TTY_REVIVE", NO_NUM);
   }
 
-  if ((status = send(replyee, &tty_mess)) != OK) {
-       printf("tty: tty_reply to %d failed: %d\n", replyee, status);
-  }
+  status = sendnb(replyee, &tty_mess);
+  if (status != OK)
+       printf("tty`tty_reply: send to %d failed: %d\n", replyee, status);
 }
 
 /*===========================================================================*