]> Zhao Yanbai Git Server - minix.git/commitdiff
Message type for PM_EXEC_RESTART
authorLionel Sambuc <lionel@minix3.org>
Tue, 13 May 2014 11:22:52 +0000 (13:22 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:36 +0000 (17:05 +0200)
Change-Id: I0b7abd7b20a56a7982bccd0f677c1cf9d6bf7d3b

include/minix/callnr.h
include/minix/ipc.h
servers/pm/exec.c
servers/rs/exec.c

index 20c418b1f7d20a8598b1bb35e5ce9c27b6aca4af..060a3a65d377cff00b5fb7c0379f049a5aa4133d 100644 (file)
 /* Field names for the reboot(2) call. */
 #define PM_REBOOT_HOW          m1_i1   /* int */
 
-/* Field names for the PM_EXEC_RESTART call. */
-#define PM_EXEC_RESTART_ENDPT  m1_i1   /* endpoint_t */
-#define PM_EXEC_RESTART_RESULT m1_i2   /* int */
-#define PM_EXEC_RESTART_PC     m1_p1   /* vir_bytes */
-#define PM_EXEC_RESTART_PS_STR m1_p2   /* vir_bytes */
-
 /*===========================================================================*
  *                             Calls to VFS                                 *
  *===========================================================================*/
index db144032dad3615bc287da64c2f2959060bf6645..f0331b14db4c68ae588bb56fe62d3edab11412bc 100644 (file)
@@ -522,6 +522,16 @@ typedef struct {
 } mess_lsys_vfs_mapdriver;
 _ASSERT_MSG_SIZE(mess_lsys_vfs_mapdriver);
 
+typedef struct {
+       endpoint_t endpt;
+       int result;
+       vir_bytes pc;
+       vir_bytes ps_str;
+
+       uint8_t padding[40];
+} mess_rs_pm_exec_restart;
+_ASSERT_MSG_SIZE(mess_rs_pm_exec_restart);
+
 typedef struct {
        dev_t device;
        off_t seek_pos;
@@ -1022,6 +1032,8 @@ typedef struct {
                mess_pm_lsys_getepinfo  m_pm_lsys_getepinfo;
                mess_pm_lsys_getprocnr  m_pm_lsys_getprocnr;
 
+               mess_rs_pm_exec_restart m_rs_pm_exec_restart;
+
                mess_vfs_fs_breadwrite  m_vfs_fs_breadwrite;
                mess_vfs_fs_chmod       m_vfs_fs_chmod;
                mess_vfs_fs_chown       m_vfs_fs_chown;
index 4d7c142b3f70cb0ec0a0b18d4cc2b4fc4576beae..b50d893c4317dbbae447c7ea7139d257dd22debe 100644 (file)
@@ -131,14 +131,14 @@ int do_execrestart(void)
        if (who_e != RS_PROC_NR)
                return EPERM;
 
-       proc_e = m_in.PM_EXEC_RESTART_ENDPT;
+       proc_e = m_in.m_rs_pm_exec_restart.endpt;
        if (pm_isokendpt(proc_e, &proc_n) != OK) {
                panic("do_execrestart: got bad endpoint: %d", proc_e);
        }
        rmp = &mproc[proc_n];
-       result = m_in.PM_EXEC_RESTART_RESULT;
-       pc = (vir_bytes)m_in.PM_EXEC_RESTART_PC;
-       ps_str = (vir_bytes)m_in.PM_EXEC_RESTART_PS_STR;
+       result = m_in.m_rs_pm_exec_restart.result;
+       pc = m_in.m_rs_pm_exec_restart.pc;
+       ps_str = m_in.m_rs_pm_exec_restart.ps_str;
 
        exec_restart(rmp, result, pc, rmp->mp_frame_addr, ps_str);
 
index 09e0b9a0b39aaf36aff3a235ef35e1acb09e0eb2..f72d0e598c66b7c00c86097cc38ca5d27e09c458 100644 (file)
@@ -129,10 +129,10 @@ static int exec_restart(int proc_e, int result, vir_bytes pc, vir_bytes ps_str)
 
        memset(&m, 0, sizeof(m));
        m.m_type = PM_EXEC_RESTART;
-       m.PM_EXEC_RESTART_ENDPT = proc_e;
-       m.PM_EXEC_RESTART_RESULT = result;
-       m.PM_EXEC_RESTART_PC = (void *)pc;
-       m.PM_EXEC_RESTART_PS_STR = (void *)ps_str;
+       m.m_rs_pm_exec_restart.endpt = proc_e;
+       m.m_rs_pm_exec_restart.result = result;
+       m.m_rs_pm_exec_restart.pc = pc;
+       m.m_rs_pm_exec_restart.ps_str = ps_str;
 
        r = ipc_sendrec(PM_PROC_NR, &m);
        if (r != OK)