termios: Add kqueue() and poll() support

Real implementation is provided by libbsd.
This commit is contained in:
Sebastian Huber
2017-02-21 09:01:49 +01:00
parent c8339709e0
commit 5bfeddc0c2
4 changed files with 36 additions and 9 deletions

View File

@@ -555,6 +555,26 @@ int rtems_termios_set_initial_baud(
rtems_termios_baud_t 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 #ifdef __cplusplus
} }
#endif #endif

View File

@@ -2063,8 +2063,8 @@ static const rtems_filesystem_file_handlers_r rtems_termios_imfs_handler = {
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync, .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync, .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl, .fcntl_h = rtems_filesystem_default_fcntl,
.kqfilter_h = rtems_filesystem_default_kqfilter, .kqfilter_h = rtems_termios_kqfilter,
.poll_h = rtems_filesystem_default_poll, .poll_h = rtems_termios_poll,
.readv_h = rtems_filesystem_default_readv, .readv_h = rtems_filesystem_default_readv,
.writev_h = rtems_filesystem_default_writev .writev_h = rtems_filesystem_default_writev
}; };

View File

@@ -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 * embedded brains GmbH
* Dornierstr. 4 * Dornierstr. 4
@@ -26,13 +26,15 @@
#include <rtems/libio_.h> #include <rtems/libio_.h>
#include <sys/types.h>
#include <sys/event.h>
int rtems_filesystem_default_kqfilter( int rtems_filesystem_default_kqfilter(
rtems_libio_t *iop, rtems_libio_t *iop,
struct knote *kn struct knote *kn
) )
{ {
return EINVAL; return EINVAL;
} }
int rtems_termios_kqfilter(
rtems_libio_t *iop,
struct knote *kn
) RTEMS_WEAK_ALIAS( rtems_filesystem_default_kqfilter );

View File

@@ -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 * embedded brains GmbH
* Dornierstr. 4 * Dornierstr. 4
@@ -30,8 +30,13 @@
int rtems_filesystem_default_poll( int rtems_filesystem_default_poll(
rtems_libio_t *iop, rtems_libio_t *iop,
int events int events
) )
{ {
return POLLERR; return POLLERR;
} }
int rtems_termios_poll(
rtems_libio_t *iop,
int events
) RTEMS_WEAK_ALIAS( rtems_filesystem_default_poll );