]> Zhao Yanbai Git Server - minix.git/commitdiff
Message type for VFS_FCHMOD
authorLionel Sambuc <lionel@minix3.org>
Mon, 12 May 2014 15:05:32 +0000 (17:05 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:34 +0000 (17:05 +0200)
Change-Id: I933e5b5a214aa9e7ddb6546b459ef40688e8ca04

include/minix/callnr.h
include/minix/ipc.h
lib/libc/sys-minix/fchmod.c
servers/vfs/protect.c

index 7548a1e85df912ac9999bc6d7d56d5d402a3a694..cf052dbc92b8de89708ec19f5abbdfe3bc152412 100644 (file)
 
 #define NR_VFS_CALLS           49      /* highest number from base plus one */
 
-/* Field names for the fchmod(2) call. */
-#define VFS_FCHMOD_FD          m1_i1   /* int */
-#define VFS_FCHMOD_MODE                m1_i2   /* mode_t */
-
 /* Field names for the close(2) call. */
 #define VFS_CLOSE_FD           m1_i1   /* int */
 
index 8f9278f4a4fcc396773757d0be89cf5ca0a3a928..37bfdfffeba136d7cced20d3a8ea3121112bfdb4 100644 (file)
@@ -173,6 +173,14 @@ typedef struct {
 } mess_lc_vfs_fchdir;
 _ASSERT_MSG_SIZE(mess_lc_vfs_fchdir);
 
+typedef struct {
+       int fd;
+       mode_t mode;
+
+       uint8_t padding[48];
+} mess_lc_vfs_fchmod;
+_ASSERT_MSG_SIZE(mess_lc_vfs_fchmod);
+
 typedef struct {
        int fd;
        int cmd;
@@ -837,6 +845,7 @@ typedef struct {
                mess_lc_vfs_chown       m_lc_vfs_chown;
                mess_lc_vfs_creat       m_lc_vfs_creat;
                mess_lc_vfs_fchdir      m_lc_vfs_fchdir;
+               mess_lc_vfs_fchmod      m_lc_vfs_fchmod;
                mess_lc_vfs_fcntl       m_lc_vfs_fcntl;
                mess_lc_vfs_fstat       m_lc_vfs_fstat;
                mess_lc_vfs_fsync       m_lc_vfs_fsync;
index bb58cb44342680107f39cbe8552e71e427aa5f2b..7e0134daf7286ce633cfa762a8f11e0c2ea00370 100644 (file)
@@ -10,7 +10,7 @@ int fchmod(int fd, mode_t mode)
   message m;
 
   memset(&m, 0, sizeof(m));
-  m.VFS_FCHMOD_FD = fd;
-  m.VFS_FCHMOD_MODE = mode;
+  m.m_lc_vfs_fchmod.fd = fd;
+  m.m_lc_vfs_fchmod.mode = mode;
   return(_syscall(VFS_PROC_NR, VFS_FCHMOD, &m));
 }
index 7bee28a7fc7225c82da1d92236b0f38863f2cd38..f36b71800c743acddb1392ab918deaee0ed47ef3 100644 (file)
@@ -50,8 +50,8 @@ int do_chmod(void)
                return(err_code);
        if ((vp = eat_path(&resolve, fp)) == NULL) return(err_code);
   } else {     /* call_nr == VFS_FCHMOD */
-       rfd = job_m_in.VFS_FCHMOD_FD;
-       new_mode = (mode_t) job_m_in.VFS_FCHMOD_MODE;
+       rfd = job_m_in.m_lc_vfs_fchmod.fd;
+       new_mode = job_m_in.m_lc_vfs_fchmod.mode;
        /* File is already opened; get a pointer to vnode from filp. */
        if ((flp = get_filp(rfd, VNODE_WRITE)) == NULL) return(err_code);
        vp = flp->filp_vno;