diff --git a/include/minix/ipc.h b/include/minix/ipc.h index 0c64dcad5..f1bf5ac31 100644 --- a/include/minix/ipc.h +++ b/include/minix/ipc.h @@ -227,6 +227,16 @@ typedef struct { } mess_vfs_fs_mountpoint; _ASSERT_MSG_SIZE(mess_vfs_fs_mountpoint); +typedef struct { + dev_t device; + + cp_grant_id_t grant; + size_t path_len; + + uint8_t data[40]; +} mess_vfs_fs_new_driver; +_ASSERT_MSG_SIZE(mess_vfs_fs_new_driver); + typedef struct { dev_t device; @@ -395,6 +405,7 @@ typedef struct { mess_vfs_fs_lookup m_vfs_fs_lookup; mess_fs_vfs_lookup m_fs_vfs_lookup; mess_vfs_fs_mountpoint m_vfs_fs_mountpoint; + mess_vfs_fs_new_driver m_vfs_fs_new_driver; mess_vfs_fs_readsuper m_vfs_fs_readsuper; mess_fs_vfs_readsuper m_fs_vfs_readsuper; mess_vfs_fs_rename m_vfs_fs_rename; diff --git a/servers/ext2/misc.c b/servers/ext2/misc.c index 03191a9a8..2405ad338 100644 --- a/servers/ext2/misc.c +++ b/servers/ext2/misc.c @@ -71,9 +71,9 @@ int fs_new_driver(void) char label[sizeof(fs_dev_label)]; int r; - dev = fs_m_in.REQ_DEV; - label_gid = (cp_grant_id_t) fs_m_in.REQ_GRANT; - label_len = (size_t) fs_m_in.REQ_PATH_LEN; + dev = fs_m_in.m_vfs_fs_new_driver.device; + label_gid = fs_m_in.m_vfs_fs_new_driver.grant; + label_len = fs_m_in.m_vfs_fs_new_driver.path_len; if (label_len > sizeof(label)) return(EINVAL); diff --git a/servers/iso9660fs/misc.c b/servers/iso9660fs/misc.c index 456f20157..6749affe5 100644 --- a/servers/iso9660fs/misc.c +++ b/servers/iso9660fs/misc.c @@ -26,9 +26,9 @@ int fs_new_driver(void) char label[sizeof(fs_dev_label)]; int r; - dev = fs_m_in.REQ_DEV; - label_gid = (cp_grant_id_t) fs_m_in.REQ_GRANT; - label_len = (size_t) fs_m_in.REQ_PATH_LEN; + dev = fs_m_in.m_vfs_fs_new_driver.device; + label_gid = fs_m_in.m_vfs_fs_new_driver.grant; + label_len = fs_m_in.m_vfs_fs_new_driver.path_len; if (label_len > sizeof(label)) return(EINVAL); diff --git a/servers/mfs/misc.c b/servers/mfs/misc.c index d633595b6..e4bcbc31b 100644 --- a/servers/mfs/misc.c +++ b/servers/mfs/misc.c @@ -60,9 +60,9 @@ int fs_new_driver(void) char label[sizeof(fs_dev_label)]; int r; - dev = fs_m_in.REQ_DEV; - label_gid = (cp_grant_id_t) fs_m_in.REQ_GRANT; - label_len = (size_t) fs_m_in.REQ_PATH_LEN; + dev = fs_m_in.m_vfs_fs_new_driver.device; + label_gid = fs_m_in.m_vfs_fs_new_driver.grant; + label_len = fs_m_in.m_vfs_fs_new_driver.path_len; if (label_len > sizeof(label)) return(EINVAL); diff --git a/servers/vfs/request.c b/servers/vfs/request.c index b31f5f085..17df01af2 100644 --- a/servers/vfs/request.c +++ b/servers/vfs/request.c @@ -676,9 +676,9 @@ int req_newdriver( /* Fill in request message */ m.m_type = REQ_NEW_DRIVER; - m.REQ_DEV = dev; - m.REQ_GRANT = grant_id; - m.REQ_PATH_LEN = len; + m.m_vfs_fs_new_driver.device = dev; + m.m_vfs_fs_new_driver.grant = grant_id; + m.m_vfs_fs_new_driver.path_len = len; /* Issue request */ r = fs_sendrec(fs_e, &m);