Message type for VFS_PIPE2
Change-Id: I01c599cf035d8f103220baae54fefbc80d12fbd2
This commit is contained in:
parent
befa020a9e
commit
3bae8fe45a
4 changed files with 16 additions and 11 deletions
|
@ -232,11 +232,6 @@
|
||||||
|
|
||||||
#define NR_VFS_CALLS 49 /* highest number from base plus one */
|
#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. */
|
/* Field names for the umask(2) call. */
|
||||||
#define VFS_UMASK_MASK m1_i1 /* mode_t */
|
#define VFS_UMASK_MASK m1_i1 /* mode_t */
|
||||||
|
|
||||||
|
|
|
@ -203,6 +203,15 @@ typedef struct {
|
||||||
} mess_lc_vfs_mount;
|
} mess_lc_vfs_mount;
|
||||||
_ASSERT_MSG_SIZE(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 {
|
typedef struct {
|
||||||
uint32_t nfds;
|
uint32_t nfds;
|
||||||
fd_set *readfds;
|
fd_set *readfds;
|
||||||
|
@ -729,6 +738,7 @@ typedef struct {
|
||||||
mess_lc_vfs_ioctl m_lc_vfs_ioctl;
|
mess_lc_vfs_ioctl m_lc_vfs_ioctl;
|
||||||
mess_lc_vfs_lseek m_lc_vfs_lseek;
|
mess_lc_vfs_lseek m_lc_vfs_lseek;
|
||||||
mess_lc_vfs_mount m_lc_vfs_mount;
|
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_select m_lc_vfs_select;
|
||||||
mess_lc_vfs_statvfs1 m_lc_vfs_statvfs1;
|
mess_lc_vfs_statvfs1 m_lc_vfs_statvfs1;
|
||||||
mess_lc_vfs_truncate m_lc_vfs_truncate;
|
mess_lc_vfs_truncate m_lc_vfs_truncate;
|
||||||
|
|
|
@ -15,11 +15,11 @@ pipe2(int fild[2], int flags)
|
||||||
message m;
|
message m;
|
||||||
|
|
||||||
memset(&m, 0, sizeof(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);
|
if (_syscall(VFS_PROC_NR, VFS_PIPE2, &m) < 0) return(-1);
|
||||||
fild[0] = m.VFS_PIPE2_FD0;
|
fild[0] = m.m_lc_vfs_pipe2.fd0;
|
||||||
fild[1] = m.VFS_PIPE2_FD1;
|
fild[1] = m.m_lc_vfs_pipe2.fd1;
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,12 +43,12 @@ int do_pipe2(void)
|
||||||
int r, flags;
|
int r, flags;
|
||||||
int fil_des[2]; /* reply goes here */
|
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);
|
r = create_pipe(fil_des, flags);
|
||||||
if (r == OK) {
|
if (r == OK) {
|
||||||
job_m_out.VFS_PIPE2_FD0 = fil_des[0];
|
job_m_out.m_lc_vfs_pipe2.fd0 = fil_des[0];
|
||||||
job_m_out.VFS_PIPE2_FD1 = fil_des[1];
|
job_m_out.m_lc_vfs_pipe2.fd1 = fil_des[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
|
Loading…
Reference in a new issue