]> sigrok.org Git - libserialport.git/commitdiff
Add SP_MODE_READ_WRITE enum value.
authorAurelien Jacobs <redacted>
Sat, 20 Sep 2014 19:24:31 +0000 (21:24 +0200)
committerAurelien Jacobs <redacted>
Sat, 20 Sep 2014 19:24:31 +0000 (21:24 +0200)
libserialport.h.in
serialport.c

index 51d9afe6c1449c5a57d69f33da1daffd329b7cd6..6a09318a9c22a2232fe468787fbd59af3ab9c52c 100644 (file)
@@ -108,7 +108,9 @@ enum sp_mode {
        /** Open port for read access. */
        SP_MODE_READ = 1,
        /** Open port for write access. */
-       SP_MODE_WRITE = 2
+       SP_MODE_WRITE = 2,
+       /** Open port for read and write access. */
+       SP_MODE_READ_WRITE = 3
 };
 
 /** Port events. */
index 4dc1b83d0146917fcfc5927db51df905645351f5..d4371400d5fa46a388ab66061a920fed6448d9d2 100644 (file)
@@ -402,7 +402,7 @@ SP_API enum sp_return sp_open(struct sp_port *port, enum sp_mode flags)
 
        CHECK_PORT();
 
-       if (flags > (SP_MODE_READ | SP_MODE_WRITE))
+       if (flags > SP_MODE_READ_WRITE)
                RETURN_ERROR(SP_ERR_ARG, "Invalid flags");
 
        DEBUG_FMT("Opening port %s", port->name);
@@ -479,7 +479,7 @@ SP_API enum sp_return sp_open(struct sp_port *port, enum sp_mode flags)
        int flags_local = O_NONBLOCK | O_NOCTTY;
 
        /* Map 'flags' to the OS-specific settings. */
-       if (flags & (SP_MODE_READ | SP_MODE_WRITE))
+       if ((flags & SP_MODE_READ_WRITE) == SP_MODE_READ_WRITE)
                flags_local |= O_RDWR;
        else if (flags & SP_MODE_READ)
                flags_local |= O_RDONLY;