]> Zhao Yanbai Git Server - minix.git/commitdiff
Message type for SYS_SETGRANT
authorLionel Sambuc <lionel@minix3.org>
Fri, 23 May 2014 10:53:48 +0000 (12:53 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:48 +0000 (17:05 +0200)
Change-Id: I542f839d7992d3348fef19c51bfcb58bb408d9f4

include/minix/com.h
include/minix/ipc.h
kernel/system/do_setgrant.c
lib/libsys/sys_setgrant.c

index b3d127e5663e4211453a126f687bbae67e78e06c..d11fbd13520b0cd9520d298077ab0f68a2de535c 100644 (file)
 #define SYS_PRIV_UPDATE_SYS    9       /* Update a sys privilege structure. */
 #define SYS_PRIV_YIELD        10       /* Allow process to run and suspend */
 
-/* Field names for SYS_SETGRANT */
-#define SG_ADDR                m2_p1   /* address */
-#define SG_SIZE                m2_i2   /* no. of entries */
-
 /* Field names for SYS_FORK, _EXEC, _EXIT, GETMCONTEXT, SETMCONTEXT.*/
 #define PR_ENDPT        m1_i1  /* indicates a process */
 #define PR_PRIORITY     m1_i2  /* process priority */
index 7c5cc8d41dac05f3aa860bcc1dbee2a368e99dc3..e056658ec9361a795364d767efd3601b4e8bc77d 100644 (file)
@@ -795,6 +795,14 @@ typedef struct {
 } mess_lsys_krn_sys_setalarm;
 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_setalarm);
 
+typedef struct {
+       vir_bytes addr;                 /* cp_grant_t * */
+       int size;
+
+       uint8_t padding[48];
+} mess_lsys_krn_sys_setgrant;
+_ASSERT_MSG_SIZE(mess_lsys_krn_sys_setgrant);
+
 typedef struct {
        int request;
 
@@ -1649,6 +1657,7 @@ typedef struct {
                mess_lsys_krn_sys_privctl m_lsys_krn_sys_privctl;
                mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio;
                mess_lsys_krn_sys_setalarm m_lsys_krn_sys_setalarm;
+               mess_lsys_krn_sys_setgrant m_lsys_krn_sys_setgrant;
                mess_lsys_krn_sys_statectl m_lsys_krn_sys_statectl;
                mess_lsys_krn_sys_stime m_lsys_krn_sys_stime;
                mess_lsys_krn_sys_settime m_lsys_krn_sys_settime;
index 11992fa9e133e8564705e4dd986cd5277936991e..c932475482ce1b0b64622ca88946f25320d2ab46 100644 (file)
@@ -2,8 +2,8 @@
  *   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
+ *   m_lsys_krn_sys_setgrant.addr    address of grant table in own address space
+ *   m_lsys_krn_sys_setgrant.size    number of entries
  */
 
 #include "kernel/system.h"
@@ -21,8 +21,8 @@ int do_setgrant(struct proc * caller, message * m_ptr)
                r = EPERM;
        } else {
                _K_SET_GRANT_TABLE(caller,
-                       (vir_bytes) m_ptr->SG_ADDR,
-                       m_ptr->SG_SIZE);
+                       m_ptr->m_lsys_krn_sys_setgrant.addr,
+                       m_ptr->m_lsys_krn_sys_setgrant.size);
                r = OK;
        }
 
index 39d71969004e0e78d4bc9e67bd5ba8ec4c194d96..f09df89bdaf4d17312e99ea1091b9a5199f3fc43 100644 (file)
@@ -7,8 +7,8 @@ int sys_setgrant(cp_grant_t *grants, int ngrants)
 {
   message m;
 
-  m.SG_ADDR = (char *) grants;
-  m.SG_SIZE = ngrants;
+  m.m_lsys_krn_sys_setgrant.addr = (vir_bytes)grants;
+  m.m_lsys_krn_sys_setgrant.size = ngrants;
 
   return _kernel_call(SYS_SETGRANT, &m);
 }