]> Zhao Yanbai Git Server - minix.git/commitdiff
Block protocol: use own [RW]_BIT definitions 64/964/2
authorDavid van Moolenbroek <david@minix3.org>
Fri, 26 Jul 2013 22:49:49 +0000 (00:49 +0200)
committerLionel Sambuc <lionel@minix3.org>
Wed, 19 Feb 2014 10:22:15 +0000 (11:22 +0100)
The original R_BIT and W_BIT definitions have nothing to do with the
way these bits are used. Their distinct usage is more apparent when
they have different names.

Change-Id: Ia984457f900078b2e3502ceed565fead4e5bb965

drivers/ahci/ahci.c
drivers/at_wini/at_wini.c
drivers/fb/fb_edid.c
drivers/filter/driver.c
drivers/virtio_blk/virtio_blk.c
include/minix/com.h
servers/ext2/mount.c
servers/iso9660fs/mount.c
servers/mfs/mount.c
servers/vfs/device.c
test/blocktest/blocktest.c

index 81dd59e3e795a89fa885e224edbd8f19d23460b5..a695702ee2eb36f6ebcfecd28b7d8eaded0d8570 100644 (file)
@@ -2497,7 +2497,7 @@ static int ahci_open(devminor_t minor, int access)
                return ENXIO;
 
        /* Some devices may only be opened in read-only mode. */
-       if ((ps->flags & FLAG_READONLY) && (access & W_BIT))
+       if ((ps->flags & FLAG_READONLY) && (access & BDEV_W_BIT))
                return EACCES;
 
        if (ps->open_count == 0) {
index 23b82272323e649093edf1bbbfb2a69f0412e46e..dc87257cbac709e9bc1641e7182e05fcf0b0c863 100644 (file)
@@ -622,7 +622,7 @@ static int w_do_open(devminor_t minor, int access)
   }
 
 #if ENABLE_ATAPI
-   if ((wn->state & ATAPI) && (access & W_BIT))
+   if ((wn->state & ATAPI) && (access & BDEV_W_BIT))
        return(EACCES);
 #endif
 
index 116b64434ca809daa3d264a70f94a34259e0e95d..f2a16c4f6e5a20e4387a2776a0545ccbc50f3d59 100644 (file)
@@ -92,7 +92,7 @@ do_read(endpoint_t driver_endpt, uint8_t *buf, size_t bufsize)
        /* Open Device - required for drivers using libblockdriver */
        memset(&m, '\0', sizeof(message));
        m.m_type = BDEV_OPEN;
-       m.BDEV_ACCESS = R_BIT;
+       m.BDEV_ACCESS = BDEV_R_BIT;
        m.BDEV_ID = 0;
        m.BDEV_MINOR = 0;
 
index d0a959078bb0bd423e7eb3cb00c26756a38709a2..131ccbd78be85f9458a7ac6e507e3d0f482daac7 100644 (file)
@@ -31,7 +31,7 @@ static int driver_open(int which)
        memset(&msg, 0, sizeof(msg));
        msg.m_type = BDEV_OPEN;
        msg.BDEV_MINOR = driver[which].minor;
-       msg.BDEV_ACCESS = R_BIT | W_BIT;
+       msg.BDEV_ACCESS = BDEV_R_BIT | BDEV_W_BIT;
        msg.BDEV_ID = 0;
        r = sendrec(driver[which].endpt, &msg);
 
index 652f8691c78b360d5a002c82c86120a294ee504b..cef52ee46923d142578c73b063a1ba5bb55d1747 100644 (file)
@@ -124,7 +124,8 @@ virtio_blk_open(devminor_t minor, int access)
                return ENXIO;
 
        /* Read only devices should only be mounted... read-only */
-       if ((access & W_BIT) && virtio_host_supports(blk_dev, VIRTIO_BLK_F_RO))
+       if ((access & BDEV_W_BIT) &&
+           virtio_host_supports(blk_dev, VIRTIO_BLK_F_RO))
                return EACCES;
 
        /* Partition magic when opened the first time or re-opened after
index a2b8053805014613bf43e1d28d80033851658dc2..520836722a502d28d6ac81fbf71e3157d3fc01e8 100644 (file)
 #define BDEV_POS_LO    m10_l2  /* transfer position (low bits) */
 #define BDEV_POS_HI    m10_l3  /* transfer position (high bits) */
 
+/* Bits in 'BDEV_ACCESS' field of block device open requests. */
+#  define BDEV_R_BIT           0x01    /* open with read access */
+#  define BDEV_W_BIT           0x02    /* open with write access */
+
 /* Bits in 'BDEV_FLAGS' field of block device transfer requests. */
 #  define BDEV_NOFLAGS         0x00    /* no flags are set */
 #  define BDEV_FORCEWRITE      0x01    /* force write to disk immediately */
index d72f8ef79236a1fef915524951c9445700586241..f97edc0621456c066ff47f02bb84a98a7633a349 100644 (file)
@@ -54,7 +54,8 @@ int fs_readsuper()
   bdev_driver(fs_dev, fs_dev_label);
 
   /* Open the device the file system lives on. */
-  if (bdev_open(fs_dev, readonly ? R_BIT : (R_BIT|W_BIT)) != OK) {
+  if (bdev_open(fs_dev, readonly ? BDEV_R_BIT : (BDEV_R_BIT|BDEV_W_BIT)) !=
+               OK) {
         return(EINVAL);
   }
 
index fa7e4b9d5d80e7f7be2d60eb297d494d61268900..443b71dac12e6234eeba69ed0291183a96ea8002 100644 (file)
@@ -32,7 +32,7 @@ int fs_readsuper() {
   bdev_driver(fs_dev, fs_dev_label);
 
   /* Open the device the file system lives on in read only mode */
-  if (bdev_open(fs_dev, R_BIT) != OK) {
+  if (bdev_open(fs_dev, BDEV_R_BIT) != OK) {
         return(EINVAL);
   }
 
index 00fedeba754e1f1161908e41150f07029329600f..60a6b50f771ff17032d46d486504155c80965374 100644 (file)
@@ -44,7 +44,8 @@ int fs_readsuper()
   bdev_driver(fs_dev, fs_dev_label);
 
   /* Open the device the file system lives on. */
-  if (bdev_open(fs_dev, readonly ? R_BIT : (R_BIT|W_BIT) ) != OK) {
+  if (bdev_open(fs_dev, readonly ? BDEV_R_BIT : (BDEV_R_BIT|BDEV_W_BIT) ) !=
+               OK) {
         return(EINVAL);
   }
   
@@ -71,7 +72,7 @@ int fs_readsuper()
                panic("couldn't bdev_close after found unclean FS");
        readonly = 1;
 
-       if (bdev_open(fs_dev, R_BIT) != OK) {
+       if (bdev_open(fs_dev, BDEV_R_BIT) != OK) {
                panic("couldn't bdev_open after found unclean FS");
                return(EINVAL);
        }
index 2eff1097960c2aa6e1be387547ec5341beef7f7c..7e7111c364a5b7cbc1c6875372bdd5f3870f14fe 100644 (file)
@@ -386,7 +386,9 @@ int gen_opcl(
        memset(&dev_mess, 0, sizeof(dev_mess));
        dev_mess.m_type = op;
        dev_mess.BDEV_MINOR = minor_dev;
-       dev_mess.BDEV_ACCESS = flags;
+       dev_mess.BDEV_ACCESS = 0;
+       if (flags & R_BIT) dev_mess.BDEV_ACCESS |= BDEV_R_BIT;
+       if (flags & W_BIT) dev_mess.BDEV_ACCESS |= BDEV_W_BIT;
        dev_mess.BDEV_ID = 0;
 
        /* Call the task. */
index e512d93e9e710f0aada4cf5975c91c751bb99bb6..ee0f149e7a1d5e33cfd3dc0a5ee8ccff4154b787 100644 (file)
@@ -169,7 +169,7 @@ static void reopen_device(dev_t minor)
        memset(&m, 0, sizeof(m));
        m.m_type = BDEV_OPEN;
        m.BDEV_MINOR = minor;
-       m.BDEV_ACCESS = (may_write) ? (R_BIT | W_BIT) : R_BIT;
+       m.BDEV_ACCESS = (may_write) ? (BDEV_R_BIT | BDEV_W_BIT) : BDEV_R_BIT;
        m.BDEV_ID = 0;
 
        (void) sendrec(driver_endpt, &m);
@@ -1025,7 +1025,7 @@ static void open_device(dev_t minor)
        memset(&m, 0, sizeof(m));
        m.m_type = BDEV_OPEN;
        m.BDEV_MINOR = minor;
-       m.BDEV_ACCESS = may_write ? (R_BIT | W_BIT) : R_BIT;
+       m.BDEV_ACCESS = may_write ? (BDEV_R_BIT | BDEV_W_BIT) : BDEV_R_BIT;
        m.BDEV_ID = lrand48();
 
        sendrec_driver(&m, OK, &res);