]> Zhao Yanbai Git Server - minix.git/commitdiff
Rename paramctl to setgrant.
authorBen Gras <ben@minix3.org>
Fri, 23 Jun 2006 15:35:05 +0000 (15:35 +0000)
committerBen Gras <ben@minix3.org>
Fri, 23 Jun 2006 15:35:05 +0000 (15:35 +0000)
include/minix/com.h
include/minix/syslib.h
kernel/system.c
kernel/system.h
kernel/system/Makefile
kernel/system/do_paramctl.c [deleted file]
kernel/system/do_setgrant.c [new file with mode: 0644]
lib/syslib/Makefile.in
lib/syslib/safecopies.c
lib/syslib/sys_setgrant.c [new file with mode: 0644]

index 679d3ca4a81015d259015252f5701d3b447ded12..b4b65bf3821211b6d8d8a4c25cab3dcea9d56f04 100755 (executable)
 #  define SYS_SAFECOPYFROM (KERNEL_CALL + 31)  /* sys_safecopyfrom() */
 #  define SYS_SAFECOPYTO   (KERNEL_CALL + 32)  /* sys_safecopyto() */
 #  define SYS_VSAFECOPY  (KERNEL_CALL + 33)    /* sys_vsafecopy() */
-#  define SYS_PARAMCTL   (KERNEL_CALL + 34)    /* sys_paramctl() */
+#  define SYS_SETGRANT   (KERNEL_CALL + 34)    /* sys_setgrant() */
 
 #define NR_SYS_CALLS   35      /* number of system calls */ 
 
                                         */
 #define SYS_PRIV_ADD_IRQ       4       /* Add IRQ */
 
-/* Subfunctions for SYS_PARAMCTL */
+/* Subfunctions for SYS_SETGRANT */
 #define SYS_PARAM_SET_GRANT    1       /* Set address and size of grant table */
 
 /* Field names for SYS_MEMSET, SYS_SEGCTL. */
 #define CTL_ADDRESS    m2_l1   /* address at traced process' space */
 #define CTL_DATA       m2_l2   /* data field for tracing */
 
-/* Field names for SYS_PARAMCTL */
-#define PCTL_REQ       m2_i1   /* request code */
-#define PCTL_INT1      m2_i2   /* int param 1 */
-#define PCTL_INT2      m2_i3   /* int param 2 */
-#define PCTL_ADDR1     m2_p1   /* address param 1 */
+/* Field names for SYS_SETGRANT */
+#define SG_ADDR                m2_p1   /* address */
+#define SG_SIZE                m2_i2   /* no. of entries */
 
 /* Field names for SYS_KILL, SYS_SIGCTL */
 #define SIG_REQUEST    m2_l2   /* PM signal control request */
index ad7cca1cda100bdb4fa9cc8bd6154fb41f7a44dc..85a8b3a83252fb0a77737e35939b23c934f5de3a 100755 (executable)
@@ -37,7 +37,7 @@ _PROTOTYPE( int sys_exit, (endpoint_t proc));
 _PROTOTYPE( int sys_trace, (int req, endpoint_t proc, long addr, long *data_p));
 
 _PROTOTYPE( int sys_privctl, (endpoint_t proc, int req, int i, void *p));
-_PROTOTYPE( int sys_paramctl, (int req, int int1, void *addr1, int int2));
+_PROTOTYPE( int sys_setgrant, (cp_grant_t *grants, int ngrants));
 _PROTOTYPE( int sys_nice, (endpoint_t proc, int priority));
 
 _PROTOTYPE( int sys_int86, (struct reg86u *reg86p));
index bfdc1f4196247d93b28fe72a7545ecfd13ed6c1e..5520bfcdb21fd01c84702d65a7febc835e671979 100755 (executable)
@@ -148,7 +148,7 @@ PRIVATE void initialize(void)
   map(SYS_NICE, do_nice);              /* set scheduling priority */
   map(SYS_PRIVCTL, do_privctl);                /* system privileges control */
   map(SYS_TRACE, do_trace);            /* request a trace operation */
-  map(SYS_PARAMCTL, do_paramctl);      /* get/set own parameters */
+  map(SYS_SETGRANT, do_setgrant);      /* get/set own parameters */
 
   /* Signal handling. */
   map(SYS_KILL, do_kill);              /* cause a process to be signaled */
index fd7ef35e8d8f3d69b5fc15172db477919500520a..452ca254386e2547ee196aa38f4e0d9f181c8629 100644 (file)
@@ -176,7 +176,7 @@ _PROTOTYPE( int do_setalarm, (message *m_ptr) );
 _PROTOTYPE( int do_safecopy, (message *m_ptr) );       
 _PROTOTYPE( int do_vsafecopy, (message *m_ptr) );      
 _PROTOTYPE( int do_iopenable, (message *m_ptr) );      
-_PROTOTYPE( int do_paramctl, (message *m_ptr) );       
+_PROTOTYPE( int do_setgrant, (message *m_ptr) );       
 
 #endif /* SYSTEM_H */
 
index a3b288f6af2166988a07c0a446ff7d06b5846a25..9c873ee574f2d8fe6bb5daa07e83990384745938 100644 (file)
@@ -35,7 +35,7 @@ OBJECTS       = \
        $(SYSTEM)(do_vcopy.o) \
        $(SYSTEM)(do_umap.o) \
        $(SYSTEM)(do_memset.o) \
-       $(SYSTEM)(do_paramctl.o) \
+       $(SYSTEM)(do_setgrant.o) \
        $(SYSTEM)(do_privctl.o) \
        $(SYSTEM)(do_segctl.o) \
        $(SYSTEM)(do_safecopy.o) \
@@ -138,8 +138,8 @@ $(SYSTEM)(do_getinfo.o):    do_getinfo.c
 $(SYSTEM)(do_abort.o): do_abort.c
        $(CC) do_abort.c
 
-$(SYSTEM)(do_paramctl.o):      do_paramctl.c
-       $(CC) do_paramctl.c
+$(SYSTEM)(do_setgrant.o):      do_setgrant.c
+       $(CC) do_setgrant.c
 
 $(SYSTEM)(do_privctl.o):       do_privctl.c
        $(CC) do_privctl.c
diff --git a/kernel/system/do_paramctl.c b/kernel/system/do_paramctl.c
deleted file mode 100644 (file)
index 2fcd24b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* The kernel call implemented in this file:
- *   m_type:   SYS_PARAMCTL
- *
- * The parameters for this kernel call are:
- *      PCTL_REQ       request code (SYS_PARAM_*)
- *      PCTL_INT[12]   integer parameters
- *     PCTL_ADDR1      address parameter
- */
-
-#include "../system.h"
-#include <minix/safecopies.h>
-
-/*===========================================================================*
- *                             do_paramctl                                  *
- *===========================================================================*/
-PUBLIC int do_paramctl(m_ptr)
-message *m_ptr;
-{
-       struct proc *rp;
-       int r;
-
-       /* Who wants to set a parameter? */
-       rp = proc_addr(who_p);
-
-       /* Which parameter is it? */
-       switch(m_ptr->PCTL_REQ) {
-
-               case SYS_PARAM_SET_GRANT:
-                       /* Copy grant table set in priv. struct. */
-                       if ((rp->p_rts_flags & NO_PRIV) || !(priv(rp))) {
-                               r = EPERM;
-                       } else {
-                               _K_SET_GRANT_TABLE(rp, 
-                                       (vir_bytes) m_ptr->PCTL_ADDR1,
-                                       m_ptr->PCTL_INT1);
-                               r = OK;
-                       }
-                       break;
-               default:
-                       r = EINVAL;
-                       break;
-       }
-
-       return r;
-}
diff --git a/kernel/system/do_setgrant.c b/kernel/system/do_setgrant.c
new file mode 100644 (file)
index 0000000..7f353e3
--- /dev/null
@@ -0,0 +1,35 @@
+/* The kernel call implemented in this file:
+ *   m_type:   SYS_SETGRANT
+ *
+ * The parameters for this kernel call are:
+ *      SG_ADDR        address of grant table in own address space
+ *     SG_SIZE number of entries
+ */
+
+#include "../system.h"
+#include <minix/safecopies.h>
+
+/*===========================================================================*
+ *                             do_setgrant                                  *
+ *===========================================================================*/
+PUBLIC int do_setgrant(m_ptr)
+message *m_ptr;
+{
+       struct proc *rp;
+       int r;
+
+       /* Who wants to set a parameter? */
+       rp = proc_addr(who_p);
+
+       /* Copy grant table set in priv. struct. */
+       if ((rp->p_rts_flags & NO_PRIV) || !(priv(rp))) {
+               r = EPERM;
+       } else {
+               _K_SET_GRANT_TABLE(rp, 
+                       (vir_bytes) m_ptr->SG_ADDR,
+                       m_ptr->SG_SIZE);
+               r = OK;
+       }
+
+       return r;
+}
index a0e0621da017ce215974c09b00fc5d2ff8f5c32a..0b0736b7f59f1a4c9dd5f2a05529eb9f5a0483d2 100644 (file)
@@ -49,7 +49,7 @@ libsys_FILES=" \
        sys_sigreturn.c \
        sys_sigsend.c \
        sys_privctl.c \
-       sys_paramctl.c \
+       sys_setgrant.c \
        sys_times.c \
        sys_trace.c \
        sys_umap.c \
index 14298d11a77b36b4d3c025a228ab5d029ac7be61..1b3312e87fdcd80dff33c2c54f3387e7f0a06d3a 100644 (file)
@@ -35,7 +35,7 @@ cpf_preallocate(cp_grant_t *new_grants, int new_ngrants)
        }
 
        /* Update kernel about the table. */
-       if((s=sys_paramctl(SYS_PARAM_SET_GRANT, new_ngrants, new_grants, 0))) {
+       if((s=sys_setgrant(new_grants, new_ngrants))) {
                return -1;
        }
 
@@ -80,7 +80,7 @@ cpf_grow(void)
                new_grants[g].cp_flags = 0;
 
        /* Inform kernel about new size (and possibly new location). */
-       if((sys_paramctl(SYS_PARAM_SET_GRANT, new_size, new_grants, 0))) {
+       if((sys_setgrant(new_grants, new_size))) {
                free(new_grants);
                return; /* Failed - don't grow then. */
        }
diff --git a/lib/syslib/sys_setgrant.c b/lib/syslib/sys_setgrant.c
new file mode 100644 (file)
index 0000000..6d2c96d
--- /dev/null
@@ -0,0 +1,14 @@
+
+#include "syslib.h"
+
+#include <minix/safecopies.h>
+
+int sys_setgrant(cp_grant_t *grants, int ngrants)
+{
+  message m;
+
+  m.SG_ADDR = (char *) grants;
+  m.SG_SIZE = ngrants;
+
+  return _taskcall(SYSTASK, SYS_SETGRANT, &m);
+}