]> Zhao Yanbai Git Server - minix.git/commitdiff
*** empty log message ***
authorJorrit Herder <jnherder@minix3.org>
Thu, 19 May 2005 09:38:29 +0000 (09:38 +0000)
committerJorrit Herder <jnherder@minix3.org>
Thu, 19 May 2005 09:38:29 +0000 (09:38 +0000)
include/minix/callnr.h
include/minix/com.h
include/minix/ipc.h
include/minix/type.h
servers/pm/misc.c

index 2f005e3a18bb2b1a579547a1d5c6f8a41f3ea096..c1b9bf5d938464c4307d33fb4947dedde28c07eb 100755 (executable)
 
 #define REBOOT           76
 
-/* MINIX specific calls to support system services. */
+/* MINIX specific calls, e.g., to support system services. */
 #define SVRCTL           77
 #define CMOSTIME         78
 #define GETSYSINFO       79    /* to MM or FS */
+#define GETPROCNR         80    /* to MM */
 
 #define FSTATFS                  82
index 18716d63728d02e77c3fadffb12970152b8b8ec3..ca7ef32ce07e6eb8c908aea07527c3223b4bc6e1 100755 (executable)
@@ -11,6 +11,7 @@
 #define SEND            1      /* function code for sending messages */
 #define RECEIVE                 2      /* function code for receiving messages */
 #define BOTH            3      /* function code for SEND + RECEIVE */
+#define NOTIFY          4      /* function code for notifications */
 #define NB_SEND        (SEND | NON_BLOCKING)     /* non-blocking SEND */
 #define NB_RECEIVE     (RECEIVE | NON_BLOCKING)  /* non-blocking RECEIVE */
 
  * blocking notifications are delivered. The lowest numbers go first. The
  * offset are used for the per-process notification bit maps. 
  */
-#define NR_NOTIFICATIONS         5     /* number of bits in notify_mask_t */
-#      define NOTIFICATION     333     /* offset for notification types */
-#      define HARD_INT     NOTIFICATION + 0    /* hardware interrupt */
-#      define SYN_ALARM    NOTIFICATION + 1    /* synchronous alarm */
-#      define KSIG_PENDING NOTIFICATION + 2    /* signal(s) pending */
-#      define NEW_KMESS    NOTIFICATION + 3    /* new kernel message */
-#      define HARD_STOP    NOTIFICATION + 4    /* system shutdown */
+#define NOTIFICATION             0x0800        /* flag for notifications */
+#  define HARD_INT     (NOTIFICATION | 0)      /* hardware interrupt */
+#  define SYN_ALARM    (NOTIFICATION | 1)      /* synchronous alarm */
+#  define KSIG_PENDING (NOTIFICATION | 2)      /* signal(s) pending */
+#  define NEW_KMESS    (NOTIFICATION | 3)      /* new kernel message */
+#  define HARD_STOP    (NOTIFICATION | 4)      /* system shutdown */
+#define NR_NOTIFY_TYPES               5        /* nr of bits in mask */
+
+/* Shorthands for message parameters passed with notifications. */
+#define NOTIFY_ARG     m2_l1                   /* passed for some types */
 
 
 /*===========================================================================*
index d1646b90a6a96b9877bf3ffbde82490d918444f6..02349fce133e6ec115654d7740bf8b20cea30d13 100644 (file)
@@ -94,12 +94,14 @@ typedef struct {
 #define sendrec                _sendrec
 #define receive                _receive
 #define send           _send
+#define notify         _notify
 #define nb_receive     _nb_receive
 #define nb_send                _nb_send
 
 _PROTOTYPE( int sendrec, (int src_dest, message *m_ptr)                        );
 _PROTOTYPE( int receive, (int src, message *m_ptr)                     );
 _PROTOTYPE( int send, (int dest, message *m_ptr)                       );
+_PROTOTYPE( int notify, (int dest, message *m_ptr)                     );
 _PROTOTYPE( int nb_receive, (int src, message *m_ptr)                  );
 _PROTOTYPE( int nb_send, (int dest, message *m_ptr)                    );
 
index 10fe1d0640a8957a086bf6d0ed27546b37ef65a1..6b53612afee1e38f0e1a728311236c60cc54dbf9 100755 (executable)
@@ -102,6 +102,19 @@ struct kinfo {
   phys_bytes bootdev_size;
   phys_bytes params_base;      /* parameters passed by boot monitor */
   phys_bytes params_size;
+  long notify_held;
+  long notify_blocked;
+  long notify_switching;
+  long notify_reenter;
+  long notify_ok;
+  long notify_unhold;
+  long notify_int;
+  long notify_alarm;
+  long notify_sig;
+  long notify_kmess;
+  long notify_stop;
+  int nr_procs;                        /* number of user processes */
+  int nr_tasks;                        /* number of kernel tasks */
   char version[8];             /* kernel version number */
 };
 
index fe3428d601aad0c628217572ebdb4986c5a39e1a..983435e3821b8a3b8f6f2751fee724d84cba75f4 100644 (file)
@@ -4,6 +4,7 @@
  *   do_reboot: kill all processes, then reboot system
  *   do_svrctl: process manager control
  *   do_getsysinfo: request copy of PM data structure
+ *   do_getprocnr: get process slot number (like getpid)
  */
 
 #include "pm.h"
@@ -30,6 +31,15 @@ PUBLIC int do_getsysinfo()
 }
 
 
+/*=====================================================================*
+ *                         do_getprocnr                               *
+ *=====================================================================*/
+PUBLIC int do_getprocnr()
+{
+  return(OK);
+}
+
+
 /*=====================================================================*
  *                         do_reboot                                  *
  *=====================================================================*/