summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/include/rtems/libio.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-31 15:00:20 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-11-04 15:22:48 +0100
commit8cb28826ffaccd2f9f9f0c77c9cfdf61d1100069 (patch)
treef326b81959591559c91e843326ec198a8d3f9949 /cpukit/libcsupport/include/rtems/libio.h
parentFilesystem: Add poll() handler (diff)
downloadrtems-8cb28826ffaccd2f9f9f0c77c9cfdf61d1100069.tar.bz2
Filesystem: Add kernel event filter handler
This handler is necessary to implement the KQUEUE(2) system calls. Add <sys/event.h> from FreeBSD 8.4.
Diffstat (limited to 'cpukit/libcsupport/include/rtems/libio.h')
-rw-r--r--cpukit/libcsupport/include/rtems/libio.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/cpukit/libcsupport/include/rtems/libio.h b/cpukit/libcsupport/include/rtems/libio.h
index a6420620c3..21d57ebddf 100644
--- a/cpukit/libcsupport/include/rtems/libio.h
+++ b/cpukit/libcsupport/include/rtems/libio.h
@@ -41,6 +41,8 @@
extern "C" {
#endif
+struct knote;
+
/**
* @defgroup LibIOFSOps File System Operations
*
@@ -958,6 +960,22 @@ typedef int (*rtems_filesystem_poll_t)(
);
/**
+ * @brief Kernel event filter support.
+ *
+ * @param[in, out] iop The IO pointer.
+ * @param[in] kn The kernel event note.
+ *
+ * @retval 0 Successful operation.
+ * @retval error An error occurred. This is usually EINVAL.
+ *
+ * @see rtems_filesystem_default_kqfilter().
+ */
+typedef int (*rtems_filesystem_kqfilter_t)(
+ rtems_libio_t *iop,
+ struct knote *kn
+);
+
+/**
* @brief File system node operations table.
*/
struct _rtems_filesystem_file_handlers_r {
@@ -973,6 +991,7 @@ struct _rtems_filesystem_file_handlers_r {
rtems_filesystem_fdatasync_t fdatasync_h;
rtems_filesystem_fcntl_t fcntl_h;
rtems_filesystem_poll_t poll_h;
+ rtems_filesystem_kqfilter_t kqfilter_h;
};
/**
@@ -1158,6 +1177,18 @@ int rtems_filesystem_default_poll(
int events
);
+/**
+ * @brief Default kernel event filter handler.
+ *
+ * @retval EINVAL Always.
+ *
+ * @see rtems_filesystem_kqfilter_t.
+ */
+int rtems_filesystem_default_kqfilter(
+ rtems_libio_t *iop,
+ struct knote *kn
+);
+
/** @} */
/**