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

include/minix/callnr.h
include/minix/ipc.h
lib/libsys/mapdriver.c
servers/vfs/dmap.c

index 3af6514e5180b0d6db112c6add5ca255337b2486..4fe328bf73f271c4e3a57421bb5299885758147a 100644 (file)
 
 #define NR_VFS_CALLS           49      /* highest number from base plus one */
 
-/* Field names for the mapdriver(2) call. */
-#define VFS_MAPDRIVER_MAJOR    m1_i1   /* devmajor_t */
-#define VFS_MAPDRIVER_LABELLEN m1_i2   /* size_t */
-#define VFS_MAPDRIVER_LABEL    m1_p1   /* char * */
-
 /* Field names for the fsync(2) call. */
 #define VFS_FSYNC_FD           m1_i1   /* int */
 
index e97e06889df8609690d08216f3acbde1ce6a0442..f25dcd944afdb8a59358eae5493f916a5abb9633 100644 (file)
@@ -229,6 +229,15 @@ typedef struct {
 } mess_lsys_vfs_copyfd;
 _ASSERT_MSG_SIZE(mess_lsys_vfs_copyfd);
 
+typedef struct {
+       devmajor_t major;
+       size_t labellen;
+       vir_bytes label;
+
+       uint8_t padding[44];
+} mess_lsys_vfs_mapdriver;
+_ASSERT_MSG_SIZE(mess_lsys_vfs_mapdriver);
+
 typedef struct {
        dev_t device;
        off_t seek_pos;
@@ -689,6 +698,7 @@ typedef struct {
 
                mess_lsys_vfs_checkperms m_lsys_vfs_checkperms;
                mess_lsys_vfs_copyfd    m_lsys_vfs_copyfd;
+               mess_lsys_vfs_mapdriver m_lsys_vfs_mapdriver;
 
                mess_vfs_fs_breadwrite  m_vfs_fs_breadwrite;
                mess_vfs_fs_chmod       m_vfs_fs_chmod;
index e8675608893cd0c8cdbf3295ce5bb06abbd63ace..f72e511a49c55aedbc06c631b9c300668009b340 100644 (file)
@@ -9,9 +9,9 @@ mapdriver(char *label, devmajor_t major)
        message m;
 
        memset(&m, 0, sizeof(m));
-       m.VFS_MAPDRIVER_LABEL = label;
-       m.VFS_MAPDRIVER_LABELLEN = strlen(label) + 1;
-       m.VFS_MAPDRIVER_MAJOR = major;
+       m.m_lsys_vfs_mapdriver.label = (vir_bytes)label;
+       m.m_lsys_vfs_mapdriver.labellen = strlen(label) + 1;
+       m.m_lsys_vfs_mapdriver.major = major;
 
        return _taskcall(VFS_PROC_NR, VFS_MAPDRIVER, &m);
 }
index b4cbe131a9f8fce79210ed5888d88bbefcffcdbd..d9b3cfea10425ec3e4a109999bbf6c4c79580f2a 100644 (file)
@@ -120,9 +120,9 @@ int do_mapdriver(void)
   /* Only RS can map drivers. */
   if (who_e != RS_PROC_NR) return(EPERM);
 
-  label_vir = (vir_bytes) job_m_in.VFS_MAPDRIVER_LABEL;
-  label_len = (size_t) job_m_in.VFS_MAPDRIVER_LABELLEN;
-  major = job_m_in.VFS_MAPDRIVER_MAJOR;
+  label_vir = job_m_in.m_lsys_vfs_mapdriver.label;
+  label_len = job_m_in.m_lsys_vfs_mapdriver.labellen;
+  major = job_m_in.m_lsys_vfs_mapdriver.major;
 
   /* Get the label */
   if (label_len > sizeof(label)) { /* Can we store this label? */