]> Zhao Yanbai Git Server - minix.git/commitdiff
Added new signal types for kernel events:
authorJorrit Herder <jnherder@minix3.org>
Tue, 19 Jul 2005 12:24:51 +0000 (12:24 +0000)
committerJorrit Herder <jnherder@minix3.org>
Tue, 19 Jul 2005 12:24:51 +0000 (12:24 +0000)
- SIGKMESS: new kernel message (sent to TTY, IS, or LOG)
- SIGKSTOP: MINIX is shut down (sent to TTY-> switch to primary console)
- SIGKSIG: kernel signals pending (sent to PM)

Renamed SYS_SETPRIORITY to SYS_NICE.

drivers/memory/.depend [deleted file]
include/minix/com.h
include/minix/config.h
include/minix/syslib.h
include/signal.h
lib/syslib/Makefile
lib/syslib/sys_getinfo.c
lib/syslib/sys_nice.c [moved from lib/syslib/sys_setpriority.c with 60% similarity]

diff --git a/drivers/memory/.depend b/drivers/memory/.depend
deleted file mode 100644 (file)
index e69de29..0000000
index d7ed6656c56c544ce83ea36e5331996cbe5f551c..33d09e71f42a25bd6496ff5acc12fa6b9450cbc1 100755 (executable)
  * offset are used for the per-process notification bit maps. 
  */
 #define NOTIFY_FROM(p_nr)       (0x1000 | ((p_nr) + NR_TASKS)) 
-#  define SYN_ALARM    NOTIFY_FROM(CLOCK)      /* synchronous alarm */
-#  define KSIG_PENDING NOTIFY_FROM(SYSTEM)     /* pending signal(s) */
-#  define HARD_INT     NOTIFY_FROM(HARDWARE)   /* hardware interrupt */
-#  define NEW_KMESS    NOTIFY_FROM(SYSTEM)     /* new kernel message */
-#  define NEW_KSIG     NOTIFY_FROM(HARDWARE)   /* new kernel signal */
-#  define FKEY_PRESSED NOTIFY_FROM(TTY)        /* function key press */
+#  define SYN_ALARM    NOTIFY_FROM(CLOCK)      /* synchronous alarm */
+#  define SYS_EVENT    NOTIFY_FROM(SYSTEM)     /* signal system event */
+#  define HARD_INT     NOTIFY_FROM(HARDWARE)   /* hardware interrupt */
+#  define NEW_KSIG     NOTIFY_FROM(HARDWARE)   /* new kernel signal */
+#  define FKEY_PRESSED NOTIFY_FROM(TTY)        /* function key press */
 
 #define NOTIFICATION             0x800         /* flag for notifications */
 #  define HARD_STOP    (NOTIFICATION | 4)      /* system shutdown */ 
 #  define SYS_PHYSCOPY  31     /* sys_physcopy(src_addr,dst_addr,count) */
 #  define SYS_VIRVCOPY  32     /* sys_virvcopy(vec_ptr, vec_size) */
 #  define SYS_MEMSET    33     /* sys_memset(char, addr, count) */
-#  define SYS_SETPRIORITY  34  /* sys_setpriority(who,prio) */
+#  define SYS_NICE      34     /* sys_nice(who,prio) */
 #define NR_SYS_CALLS   35      /* number of system calls */ 
 
 /* Field names for SYS_MEMSET, SYS_SEGCTL. */
 #define I_PROC_NR      m7_i4   /* calling process */
 #define I_VAL_PTR      m7_p1   /* virtual address at caller */ 
 #define I_VAL_LEN      m7_i1   /* max length of value */
-#define I_KEY_PTR      m7_p2   /* virtual address of key to lookup */ 
-#define I_KEY_LEN      m7_i2   /* length of key to lookup */
+#define I_VAL_PTR2      m7_p2  /* second virtual address */ 
+#define I_VAL_LEN2      m7_i2  /* second length, or proc nr */
 
 /* Field names for SYS_TIMES. */
 #define T_PROC_NR      m4_l1   /* process to request time info for */
index 2786d4dc97a3230de99b5923f1b7b475e8f22fdf..deae4289bc22a9b3f63dacfe8aea9e4a5588808e 100755 (executable)
@@ -56,8 +56,6 @@
 /* Defines for driver and kernel configuration. */
 #define AUTO_BIOS          0   /* xt_wini.c - use Western's autoconfig BIOS */
 #define LINEWRAP           1   /* console.c - wrap lines at column 80 */
-#define ALLOW_GAP_MESSAGES 1   /* proc.c - allow messages in the gap between
-                                * the end of bss and lowest stack address */
 
 /* Number of controller tasks (/dev/cN device classes). */
 #define NR_CTRLRS          2
index ef1e46a2e01d8cbfd69163e8f22e3a8a9ed46ea1..20b11920d20b82c9a6734b2ee330238b6e3ceb9d 100755 (executable)
@@ -31,7 +31,7 @@ _PROTOTYPE( int sys_exit, (int proc)                                  );
 _PROTOTYPE( int sys_trace, (int req, int proc, long addr, long *data_p)        );
 
 _PROTOTYPE( int sys_svrctl, (int proc, int req, int priv,vir_bytes argp));
-_PROTOTYPE( int sys_setpriority, (int proc, int prio)                  );
+_PROTOTYPE( int sys_nice, (int proc, int prio)                         );
 
 
 /* Shorthands for sys_sdevio() system call. */
@@ -102,7 +102,7 @@ _PROTOTYPE(int sys_segctl, (int *index, u16_t *seg, vir_bytes *off,
 #define sys_getschedinfo(v1,v2)        sys_getinfo(GET_SCHEDINFO, v1,0, v2,0)
 #define sys_getlocktimings(dst)        sys_getinfo(GET_LOCKTIMING, dst, 0,0,0)
 _PROTOTYPE(int sys_getinfo, (int request, void *val_ptr, int val_len,
-                                void *key_ptr, int key_len)            );
+                                void *val_ptr2, int val_len2)          );
 
 /* Signal control. */
 _PROTOTYPE(int sys_kill, (int proc, int sig) );
index d5588956b0db9f5a6cb73ffa83eb6933f1b485f5..405320b16eba8ab1e9e4eb990e0895c39ae5aa7b 100755 (executable)
@@ -25,7 +25,7 @@ typedef unsigned long sigset_t;
 #endif
 #endif
 
-#define _NSIG             17   /* number of signals used */
+#define _NSIG             20   /* number of signals used */
 
 #define SIGHUP             1   /* hangup */
 #define SIGINT             2   /* interrupt (DEL) */
@@ -48,6 +48,13 @@ typedef unsigned long sigset_t;
 #define SIGEMT             7   /* obsolete */
 #define SIGBUS            10   /* obsolete */
 
+/* MINIX specific signals. These signals are not used by user proceses, 
+ * but meant to inform system processes, like the PM, about system events.
+ */
+#define SIGKMESS         18    /* new kernel message */
+#define SIGKSIG          19    /* kernel signal pending */
+#define SIGKSTOP         20    /* kernel shutting down */
+
 /* POSIX requires the following signals to be defined, even if they are
  * not supported.  Here are the definitions, but they are not supported.
  */
@@ -57,6 +64,7 @@ typedef unsigned long sigset_t;
 #define SIGTTIN           21   /* background process wants to read */
 #define SIGTTOU           22   /* background process wants to write */
 
+
 /* The sighandler_t type is not allowed unless _POSIX_SOURCE is defined. */
 typedef void _PROTOTYPE( (*__sighandler_t), (int) );
 
@@ -66,6 +74,7 @@ typedef void _PROTOTYPE( (*__sighandler_t), (int) );
 #define SIG_IGN           ((__sighandler_t)  1)        /* ignore signal */
 #define SIG_HOLD   ((__sighandler_t)  2)       /* block signal */
 #define SIG_CATCH  ((__sighandler_t)  3)       /* catch signal */
+#define SIG_MESS   ((__sighandler_t)  4)       /* pass as message (MINIX) */
 
 #ifdef _POSIX_SOURCE
 struct sigaction {
index b5f097ad994b7c4aa546acf917234822b6270867..36c72a94d1b859ce28a9668fd6fe0d072bc3d0b2 100755 (executable)
@@ -27,7 +27,7 @@ OBJECTS       = \
        $(LIBSYS)(sys_getinfo.o) \
        $(LIBSYS)(sys_irqctl.o) \
        $(LIBSYS)(sys_segctl.o) \
-       $(LIBSYS)(sys_setpriority.o) \
+       $(LIBSYS)(sys_nice.o) \
        $(LIBSYS)(sys_umap.o) \
        $(LIBSYS)(sys_physcopy.o) \
        $(LIBSYS)(sys_vircopy.o) \
@@ -89,8 +89,8 @@ $(LIBSYS)(sys_irqctl.o):      sys_irqctl.c
 $(LIBSYS)(sys_eniop.o):        sys_eniop.c
        $(CC1) sys_eniop.c
 
-$(LIBSYS)(sys_setpriority.o):  sys_setpriority.c
-       $(CC1) sys_setpriority.c
+$(LIBSYS)(sys_nice.o): sys_nice.c
+       $(CC1) sys_nice.c
 
 $(LIBSYS)(sys_segctl.o):       sys_segctl.c
        $(CC1) sys_segctl.c
index e033d420a5d4ef7936d29fa2a788fadb87cc355d..f0f46757d2ee6cd5acacc3f9bd29b1058cc0c42e 100644 (file)
@@ -3,21 +3,21 @@
 /*===========================================================================*
  *                                sys_getinfo                               *
  *===========================================================================*/
-PUBLIC int sys_getinfo(request, val_ptr, val_len, key_ptr, key_len)
+PUBLIC int sys_getinfo(request, ptr, len, ptr2, len2)
 int request;                           /* system info requested */
-void *val_ptr;                         /* pointer where to store it */
-int val_len;                           /* max length of value to get */
-void *key_ptr;                         /* pointer to key requested */
-int key_len;                           /* length of key */ 
+void *ptr;                             /* pointer where to store it */
+int len;                               /* max length of value to get */
+void *ptr2;                            /* second pointer */
+int len2;                              /* length or process nr */ 
 {
     message m;
 
     m.I_REQUEST = request;
     m.I_PROC_NR = SELF;                        /* always store values at caller */
-    m.I_VAL_PTR = val_ptr;
-    m.I_VAL_LEN = val_len;
-    m.I_KEY_PTR = key_ptr;
-    m.I_KEY_LEN = key_len;
+    m.I_VAL_PTR = ptr;
+    m.I_VAL_LEN = len;
+    m.I_VAL_PTR2 = ptr2;
+    m.I_VAL_LEN2 = len2;
 
     return(_taskcall(SYSTASK, SYS_GETINFO, &m));
 }
similarity index 60%
rename from lib/syslib/sys_setpriority.c
rename to lib/syslib/sys_nice.c
index 942d7c772a18fc33fbce10893d0644756ba03620..5cab55e44eebc842bacd4505bad6ca0817718876 100755 (executable)
@@ -1,13 +1,13 @@
 #include "syslib.h"
 
 /*===========================================================================*
- *                                sys_xit                                   *
+ *                                sys_nice                                  *
  *===========================================================================*/
-PUBLIC int sys_setpriority(int proc, int prio)
+PUBLIC int sys_nice(int proc, int prio)
 {
   message m;
 
   m.m1_i1 = proc;
   m.m1_i2 = prio;
-  return(_taskcall(SYSTASK, SYS_SETPRIORITY, &m));
+  return(_taskcall(SYSTASK, SYS_NICE, &m));
 }