]> Zhao Yanbai Git Server - minix.git/commitdiff
Message type for PM_GETEPINFO
authorLionel Sambuc <lionel@minix3.org>
Mon, 12 May 2014 16:55:29 +0000 (18:55 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:35 +0000 (17:05 +0200)
Change-Id: I275f5c50d433fa400c5eddbc85dd3df8eb5dcb90

include/minix/callnr.h
include/minix/ipc.h
lib/libsys/getepinfo.c
servers/pm/misc.c

index 997b36816325b234e702cc4ac03fb78ef8e62dde..0d8562ae6bcde8401e9e27e3df7bd29b12494bdc 100644 (file)
 
 #define NR_PM_CALLS            48      /* highest number from base plus one */
 
-/* Field names for the getepinfo(2) call. */
-#define PM_GETEPINFO_ENDPT     m1_i1   /* endpoint_t */
-#define PM_GETEPINFO_UID       m1_i1   /* uid_t */
-#define PM_GETEPINFO_GID       m1_i2   /* gid_t */
-
 /* Field names for the exit(2) call. */
 #define PM_EXIT_STATUS         m1_i1   /* int */
 
index c9dc5f464cd77f4d816c2576c948f95c317a4fd9..4a34baf17def09111ba2a87fc78a8d53cbfe0e50 100644 (file)
@@ -380,6 +380,21 @@ typedef struct {
 } mess_lc_vfs_umount;
 _ASSERT_MSG_SIZE(mess_lc_vfs_umount);
 
+typedef struct {
+       endpoint_t endpt;
+
+       uint8_t padding[52];
+} mess_lsys_pm_getepinfo;
+_ASSERT_MSG_SIZE(mess_lsys_pm_getepinfo);
+
+typedef struct {
+       uid_t uid;
+       gid_t gid;
+
+       uint8_t padding[48];
+} mess_pm_lsys_getepinfo;
+_ASSERT_MSG_SIZE(mess_pm_lsys_getepinfo);
+
 typedef struct {
        pid_t pid;
 
@@ -897,12 +912,14 @@ typedef struct {
                mess_lc_vfs_umask       m_lc_vfs_umask;
                mess_lc_vfs_umount      m_lc_vfs_umount;
 
+               mess_lsys_pm_getepinfo  m_lsys_pm_getepinfo;
                mess_lsys_pm_getprocnr  m_lsys_pm_getprocnr;
 
                mess_lsys_vfs_checkperms m_lsys_vfs_checkperms;
                mess_lsys_vfs_copyfd    m_lsys_vfs_copyfd;
                mess_lsys_vfs_mapdriver m_lsys_vfs_mapdriver;
 
+               mess_pm_lsys_getepinfo  m_pm_lsys_getepinfo;
                mess_pm_lsys_getprocnr  m_pm_lsys_getprocnr;
 
                mess_vfs_fs_breadwrite  m_vfs_fs_breadwrite;
index 9e594c92c29f03e37d212f3a75ad423a362eafde..26427f14c2a0ce291df6c066bfd1b9469759e489 100644 (file)
@@ -11,15 +11,15 @@ getepinfo(endpoint_t proc_ep, uid_t *uid, gid_t *gid)
        int r;
 
        memset(&m, 0, sizeof(m));
-       m.PM_GETEPINFO_ENDPT = proc_ep;
+       m.m_lsys_pm_getepinfo.endpt = proc_ep;
 
        if ((r = _taskcall(PM_PROC_NR, PM_GETEPINFO, &m)) < 0)
                return r;
 
        if (uid != NULL)
-               *uid = m.PM_GETEPINFO_UID;
+               *uid = m.m_pm_lsys_getepinfo.uid;
        if (gid != NULL)
-               *gid = m.PM_GETEPINFO_GID;
+               *gid = m.m_pm_lsys_getepinfo.gid;
        return (pid_t) r;
 }
 
index 12d80ee0a2c8660a42288eed40cf4f9ba1b4591b..c4c3781ab4bc1130dd9d7ed6f2ea2812502f787c 100644 (file)
@@ -191,13 +191,13 @@ int do_getepinfo(void)
   endpoint_t ep;
   int slot;
 
-  ep = m_in.PM_GETEPINFO_ENDPT;
+  ep = m_in.m_lsys_pm_getepinfo.endpt;
   if (pm_isokendpt(ep, &slot) != OK)
        return(ESRCH);
 
   rmp = &mproc[slot];
-  mp->mp_reply.PM_GETEPINFO_UID = rmp->mp_effuid;
-  mp->mp_reply.PM_GETEPINFO_GID = rmp->mp_effgid;
+  mp->mp_reply.m_pm_lsys_getepinfo.uid = rmp->mp_effuid;
+  mp->mp_reply.m_pm_lsys_getepinfo.gid = rmp->mp_effgid;
   return(rmp->mp_pid);
 }