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

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

index 048e4db56a3ede521e90d542fde0121ffab6241f..4ef3d790aae5813aec31fcb42b60cadb315604fc 100644 (file)
 
 #define NR_VFS_CALLS           49      /* highest number from base plus one */
 
-/* Field names for the pipe2(2) call. */
-#define VFS_PIPE2_FD0          m1_i1   /* int */
-#define VFS_PIPE2_FD1          m1_i2   /* int */
-#define VFS_PIPE2_FLAGS                m1_i3   /* int */
-
 /* Field names for the umask(2) call. */
 #define VFS_UMASK_MASK         m1_i1   /* mode_t */
 
index 8f4077462b07e20a5393c2338e2807402c7eb25c..ad8b3fc0642d891955beb9a4e832b3b1fbb83d78 100644 (file)
@@ -203,6 +203,15 @@ typedef struct {
 } mess_lc_vfs_mount;
 _ASSERT_MSG_SIZE(mess_lc_vfs_mount);
 
+typedef struct {
+       int fd0;
+       int fd1;
+       int flags;
+
+       uint8_t padding[44];
+} mess_lc_vfs_pipe2;
+_ASSERT_MSG_SIZE(mess_lc_vfs_pipe2);
+
 typedef struct {
        uint32_t nfds;
        fd_set *readfds;
@@ -729,6 +738,7 @@ typedef struct {
                mess_lc_vfs_ioctl       m_lc_vfs_ioctl;
                mess_lc_vfs_lseek       m_lc_vfs_lseek;
                mess_lc_vfs_mount       m_lc_vfs_mount;
+               mess_lc_vfs_pipe2       m_lc_vfs_pipe2;
                mess_lc_vfs_select      m_lc_vfs_select;
                mess_lc_vfs_statvfs1    m_lc_vfs_statvfs1;
                mess_lc_vfs_truncate    m_lc_vfs_truncate;
index 552658cab8b31a660c422f879ed3dffbe35aa129..38e79664b82564f55636d25b08e2ea2524daaa9c 100644 (file)
@@ -15,11 +15,11 @@ pipe2(int fild[2], int flags)
        message m;
 
        memset(&m, 0, sizeof(m));
-       m.VFS_PIPE2_FLAGS = flags;
+       m.m_lc_vfs_pipe2.flags = flags;
 
        if (_syscall(VFS_PROC_NR, VFS_PIPE2, &m) < 0) return(-1);
-       fild[0] = m.VFS_PIPE2_FD0;
-       fild[1] = m.VFS_PIPE2_FD1;
+       fild[0] = m.m_lc_vfs_pipe2.fd0;
+       fild[1] = m.m_lc_vfs_pipe2.fd1;
        return(0);
 }
 
index ea75afb070c49a3917ac0e700726ee31dd50363f..047c392af4ef8f705e0f5ca495f96db68afc0f73 100644 (file)
@@ -43,12 +43,12 @@ int do_pipe2(void)
   int r, flags;
   int fil_des[2];              /* reply goes here */
 
-  flags = job_m_in.VFS_PIPE2_FLAGS;
+  flags = job_m_in.m_lc_vfs_pipe2.flags;
 
   r = create_pipe(fil_des, flags);
   if (r == OK) {
-       job_m_out.VFS_PIPE2_FD0 = fil_des[0];
-       job_m_out.VFS_PIPE2_FD1 = fil_des[1];
+       job_m_out.m_lc_vfs_pipe2.fd0 = fil_des[0];
+       job_m_out.m_lc_vfs_pipe2.fd1 = fil_des[1];
   }
 
   return r;