]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/serial.cpp
Implement controls for file descriptor inheritance
[libs/core.git] / source / io / serial.cpp
index cf2c6952bf3d7e97eb52eb0102f5253549aa03da..09a9768023bad9e1fa00be0d398ac45a6933442c 100644 (file)
@@ -42,10 +42,16 @@ void Serial::close()
 
 void Serial::set_block(bool b)
 {
-       mode = b?(mode&~M_NONBLOCK):(mode|M_NONBLOCK);
+       adjust_mode(mode, M_NONBLOCK, !b);
        sys_set_blocking(handle, b);
 }
 
+void Serial::set_inherit(bool i)
+{
+       adjust_mode(mode, M_INHERIT, i);
+       sys_set_inherit(handle, i);
+}
+
 void Serial::set_baud_rate(unsigned rate)
 {
        DeviceState state;
@@ -120,5 +126,11 @@ unsigned Serial::do_read(char *buf, unsigned size)
        return ret;
 }
 
+const Handle &Serial::get_handle(Mode m)
+{
+       check_access(m);
+       return handle;
+}
+
 } // namespace IO
 } // namespace Msp