diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-21 09:01:49 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-23 07:27:43 +0100 |
commit | 5bfeddc0c27b7cd896efd8c0b6ef2b5682ec4640 (patch) | |
tree | bd57ef40d12ba5222838dcf6ddba9c1297116872 /cpukit | |
parent | score: Add RTEMS_WEAK_ALIAS() (diff) | |
download | rtems-5bfeddc0c27b7cd896efd8c0b6ef2b5682ec4640.tar.bz2 |
termios: Add kqueue() and poll() support
Real implementation is provided by libbsd.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/libcsupport/include/rtems/termiostypes.h | 20 | ||||
-rw-r--r-- | cpukit/libcsupport/src/termios.c | 4 | ||||
-rw-r--r-- | cpukit/libfs/src/defaults/default_kqfilter.c | 12 | ||||
-rw-r--r-- | 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 3cf6bebe19..2dcaa16abd 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 c44abbe810..5067f6c465 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 ef6fc1f9e4..df21a8969d 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 aa895d6444..a7c9378a8a 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 ); |