]> Zhao Yanbai Git Server - minix.git/commitdiff
. Allow drivers to to physcopy() (table.c)
authorBen Gras <ben@minix3.org>
Mon, 8 Aug 2005 12:18:45 +0000 (12:18 +0000)
committerBen Gras <ben@minix3.org>
Mon, 8 Aug 2005 12:18:45 +0000 (12:18 +0000)
. Also allow receive() to be done from kernel processes, not just
  sendrec(). This is because receive()s can't harm the kernel processes,
  but are done from the CLOCK task (without sendrec()).

kernel/proc.c
kernel/table.c

index 0ac06449279422fdbc3df805fc0d72eaf71e92b2..8fab71827ba96b3b0b197aed66723e333b0c8dff 100755 (executable)
@@ -112,9 +112,10 @@ message *m_ptr;                    /* pointer to message in the caller's space */
    * if the caller doesn't do receive(). 
    */
   if (! (priv(caller_ptr)->s_trap_mask & (1 << function)) || 
-          (iskerneln(src_dst) && function != SENDREC)) { 
-      kprintf("sys_call: trap not allowed, function %d, caller %d\n", 
-          function, proc_nr(caller_ptr));
+          (iskerneln(src_dst) && function != SENDREC && function != RECEIVE)) { 
+      kprintf("sys_call: trap not allowed, function %d, caller %d, mask %x, src_dst %d\n", 
+          function, proc_nr(caller_ptr), 
+               priv(caller_ptr)->s_trap_mask, src_dst);
       return(ECALLDENIED);             /* call denied by trap mask */
   }
   
index 93082917f20bd8bf181e6958ee8b00f4bfc61f5d..0b474c30c29061b8cbf497c1192a26004ee22f38 100755 (executable)
@@ -83,7 +83,7 @@ PUBLIC char *t_stack[TOT_STACK_SPACE / sizeof(char *)];
 #define FS_C   (c(SYS_KILL) | c(SYS_VIRCOPY) | c(SYS_VIRVCOPY) | c(SYS_UMAP) \
     | c(SYS_GETINFO) | c(SYS_EXIT) | c(SYS_TIMES) | c(SYS_SETALARM))
 #define DRV_C  (FS_C | c(SYS_SEGCTL) | c(SYS_IRQCTL) | c(SYS_INT86) \
-    | c(SYS_DEVIO) | c(SYS_VDEVIO) | c(SYS_SDEVIO))
+    | c(SYS_DEVIO) | c(SYS_VDEVIO) | c(SYS_SDEVIO) | c(SYS_PHYSCOPY) | c(SYS_PHYSVCOPY))
 
 /* The system image table lists all programs that are part of the boot image. 
  * The order of the entries here MUST agree with the order of the programs