#define NR_VFS_CALLS 49 /* highest number from base plus one */
-/* Field names for the ioctl(2) call. */
-#define VFS_IOCTL_FD m2_i1 /* int */
-#define VFS_IOCTL_REQ m2_i3 /* unsigned long */
-#define VFS_IOCTL_ARG m2_p1 /* void * */
-
/* Field names for the checkperms(2) call. */
#define VFS_CHECKPERMS_ENDPT m2_i1 /* endpoint_t */
#define VFS_CHECKPERMS_GRANT m2_i2 /* cp_grant_id_t */
} mess_lc_vfs_getvfsstat;
_ASSERT_MSG_SIZE(mess_lc_vfs_getvfsstat);
+typedef struct {
+ int fd;
+ unsigned long req;
+ void *arg;
+
+ uint8_t padding[44];
+} mess_lc_vfs_ioctl;
+_ASSERT_MSG_SIZE(mess_lc_vfs_ioctl);
+
typedef struct {
int flags;
size_t devlen;
mess_fs_vfs_readwrite m_fs_vfs_readwrite;
mess_lc_vfs_getvfsstat m_lc_vfs_getvfsstat;
+ mess_lc_vfs_ioctl m_lc_vfs_ioctl;
mess_lc_vfs_mount m_lc_vfs_mount;
mess_lc_vfs_select m_lc_vfs_select;
mess_lc_vfs_statvfs1 m_lc_vfs_statvfs1;
}
memset(&m, 0, sizeof(m));
- m.VFS_IOCTL_FD = fd;
- m.VFS_IOCTL_REQ = request;
- m.VFS_IOCTL_ARG = (char *) addr;
+ m.m_lc_vfs_ioctl.fd = fd;
+ m.m_lc_vfs_ioctl.req = request;
+ m.m_lc_vfs_ioctl.arg = addr;
r = _syscall(VFS_PROC_NR, VFS_IOCTL, &m);
dev_t dev;
void *argx;
- scratch(fp).file.fd_nr = job_m_in.VFS_IOCTL_FD;
- ioctlrequest = job_m_in.VFS_IOCTL_REQ;
- argx = job_m_in.VFS_IOCTL_ARG;
+ scratch(fp).file.fd_nr = job_m_in.m_lc_vfs_ioctl.fd;
+ ioctlrequest = job_m_in.m_lc_vfs_ioctl.req;
+ argx = job_m_in.m_lc_vfs_ioctl.arg;
if ((f = get_filp(scratch(fp).file.fd_nr, VNODE_READ)) == NULL)
return(err_code);