Message type for SYS_SETGRANT
Change-Id: I542f839d7992d3348fef19c51bfcb58bb408d9f4
This commit is contained in:
parent
dd2552d6d4
commit
f06c676a47
4 changed files with 15 additions and 10 deletions
|
@ -351,10 +351,6 @@
|
||||||
#define SYS_PRIV_UPDATE_SYS 9 /* Update a sys privilege structure. */
|
#define SYS_PRIV_UPDATE_SYS 9 /* Update a sys privilege structure. */
|
||||||
#define SYS_PRIV_YIELD 10 /* Allow process to run and suspend */
|
#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.*/
|
/* Field names for SYS_FORK, _EXEC, _EXIT, GETMCONTEXT, SETMCONTEXT.*/
|
||||||
#define PR_ENDPT m1_i1 /* indicates a process */
|
#define PR_ENDPT m1_i1 /* indicates a process */
|
||||||
#define PR_PRIORITY m1_i2 /* process priority */
|
#define PR_PRIORITY m1_i2 /* process priority */
|
||||||
|
|
|
@ -795,6 +795,14 @@ typedef struct {
|
||||||
} mess_lsys_krn_sys_setalarm;
|
} mess_lsys_krn_sys_setalarm;
|
||||||
_ASSERT_MSG_SIZE(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 {
|
typedef struct {
|
||||||
int request;
|
int request;
|
||||||
|
|
||||||
|
@ -1649,6 +1657,7 @@ typedef struct {
|
||||||
mess_lsys_krn_sys_privctl m_lsys_krn_sys_privctl;
|
mess_lsys_krn_sys_privctl m_lsys_krn_sys_privctl;
|
||||||
mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio;
|
mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio;
|
||||||
mess_lsys_krn_sys_setalarm m_lsys_krn_sys_setalarm;
|
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_statectl m_lsys_krn_sys_statectl;
|
||||||
mess_lsys_krn_sys_stime m_lsys_krn_sys_stime;
|
mess_lsys_krn_sys_stime m_lsys_krn_sys_stime;
|
||||||
mess_lsys_krn_sys_settime m_lsys_krn_sys_settime;
|
mess_lsys_krn_sys_settime m_lsys_krn_sys_settime;
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
* m_type: SYS_SETGRANT
|
* m_type: SYS_SETGRANT
|
||||||
*
|
*
|
||||||
* The parameters for this kernel call are:
|
* The parameters for this kernel call are:
|
||||||
* SG_ADDR address of grant table in own address space
|
* m_lsys_krn_sys_setgrant.addr address of grant table in own address space
|
||||||
* SG_SIZE number of entries
|
* m_lsys_krn_sys_setgrant.size number of entries
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "kernel/system.h"
|
#include "kernel/system.h"
|
||||||
|
@ -21,8 +21,8 @@ int do_setgrant(struct proc * caller, message * m_ptr)
|
||||||
r = EPERM;
|
r = EPERM;
|
||||||
} else {
|
} else {
|
||||||
_K_SET_GRANT_TABLE(caller,
|
_K_SET_GRANT_TABLE(caller,
|
||||||
(vir_bytes) m_ptr->SG_ADDR,
|
m_ptr->m_lsys_krn_sys_setgrant.addr,
|
||||||
m_ptr->SG_SIZE);
|
m_ptr->m_lsys_krn_sys_setgrant.size);
|
||||||
r = OK;
|
r = OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ int sys_setgrant(cp_grant_t *grants, int ngrants)
|
||||||
{
|
{
|
||||||
message m;
|
message m;
|
||||||
|
|
||||||
m.SG_ADDR = (char *) grants;
|
m.m_lsys_krn_sys_setgrant.addr = (vir_bytes)grants;
|
||||||
m.SG_SIZE = ngrants;
|
m.m_lsys_krn_sys_setgrant.size = ngrants;
|
||||||
|
|
||||||
return _kernel_call(SYS_SETGRANT, &m);
|
return _kernel_call(SYS_SETGRANT, &m);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue