[PATCH 3/3] termios: Add kqueue() and poll() support
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Feb 22 15:24:41 UTC 2017
Real implementation is provided by libbsd.
---
cpukit/libcsupport/include/rtems/termiostypes.h | 20 ++++++++++++++++++++
cpukit/libcsupport/src/termios.c | 4 ++--
cpukit/libfs/src/defaults/default_kqfilter.c | 12 +++++++-----
cpukit/libfs/src/defaults/default_poll.c | 9 +++++++--
4 files changed, 36 insertions(+), 9 deletions(-)
diff --git a/cpukit/libcsupport/include/rtems/termiostypes.h b/cpukit/libcsupport/include/rtems/termiostypes.h
index 3cf6beb..2dcaa16 100644
--- a/cpukit/libcsupport/include/rtems/termiostypes.h
+++ b/cpukit/libcsupport/include/rtems/termiostypes.h
@@ -555,6 +555,26 @@ int rtems_termios_set_initial_baud(
rtems_termios_baud_t baud
);
+/**
+ * @brief Termios kqueue() filter filesystem node handler
+ *
+ * Real implementation is provided by libbsd.
+ */
+int rtems_termios_kqfilter(
+ rtems_libio_t *iop,
+ struct knote *kn
+);
+
+/**
+ * @brief Termios poll() filesystem node handler.
+ *
+ * Real implementation is provided by libbsd.
+ */
+int rtems_termios_poll(
+ rtems_libio_t *iop,
+ int events
+);
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index c44abbe..5067f6c 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -2063,8 +2063,8 @@ static const rtems_filesystem_file_handlers_r rtems_termios_imfs_handler = {
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl,
- .kqfilter_h = rtems_filesystem_default_kqfilter,
- .poll_h = rtems_filesystem_default_poll,
+ .kqfilter_h = rtems_termios_kqfilter,
+ .poll_h = rtems_termios_poll,
.readv_h = rtems_filesystem_default_readv,
.writev_h = rtems_filesystem_default_writev
};
diff --git a/cpukit/libfs/src/defaults/default_kqfilter.c b/cpukit/libfs/src/defaults/default_kqfilter.c
index ef6fc1f..df21a89 100644
--- a/cpukit/libfs/src/defaults/default_kqfilter.c
+++ b/cpukit/libfs/src/defaults/default_kqfilter.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2013, 2017 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -26,13 +26,15 @@
#include <rtems/libio_.h>
-#include <sys/types.h>
-#include <sys/event.h>
-
int rtems_filesystem_default_kqfilter(
rtems_libio_t *iop,
- struct knote *kn
+ struct knote *kn
)
{
return EINVAL;
}
+
+int rtems_termios_kqfilter(
+ rtems_libio_t *iop,
+ struct knote *kn
+) RTEMS_WEAK_ALIAS( rtems_filesystem_default_kqfilter );
diff --git a/cpukit/libfs/src/defaults/default_poll.c b/cpukit/libfs/src/defaults/default_poll.c
index aa895d6..a7c9378 100644
--- a/cpukit/libfs/src/defaults/default_poll.c
+++ b/cpukit/libfs/src/defaults/default_poll.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2013, 2017 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -30,8 +30,13 @@
int rtems_filesystem_default_poll(
rtems_libio_t *iop,
- int events
+ int events
)
{
return POLLERR;
}
+
+int rtems_termios_poll(
+ rtems_libio_t *iop,
+ int events
+) RTEMS_WEAK_ALIAS( rtems_filesystem_default_poll );
--
1.8.4.5
More information about the devel
mailing list