summaryrefslogtreecommitdiff
path: root/include/rtems/deviceio.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/rtems/deviceio.h')
-rw-r--r--include/rtems/deviceio.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/include/rtems/deviceio.h b/include/rtems/deviceio.h
new file mode 100644
index 0000000000..a448fc7bb4
--- /dev/null
+++ b/include/rtems/deviceio.h
@@ -0,0 +1,88 @@
+/**
+ * @file
+ *
+ * @brief Operations on IMFS Device Nodes
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#ifndef _RTEMS_DEVICEIO_H
+#define _RTEMS_DEVICEIO_H
+
+#include <rtems/libio.h>
+
+/**
+ * @defgroup IMFSDevices IMFS Device IO Handler
+ *
+ * @ingroup IMFS
+ *
+ * This contains the interface to device drivers using the RTEMS Classic API.
+ */
+/**@{*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @brief IMFS device node handlers.
+ *
+ * IMFS Device Node Handlers
+ *
+ * This file contains the set of handlers used to map operations on
+ * IMFS device nodes onto calls to the RTEMS Classic API IO Manager.
+ */
+int rtems_deviceio_open(
+ rtems_libio_t *iop,
+ const char *path,
+ int oflag,
+ mode_t mode,
+ rtems_device_major_number major,
+ rtems_device_minor_number minor
+);
+
+int rtems_deviceio_close(
+ rtems_libio_t *iop,
+ rtems_device_major_number major,
+ rtems_device_minor_number minor
+);
+
+ssize_t rtems_deviceio_read(
+ rtems_libio_t *iop,
+ void *buf,
+ size_t nbyte,
+ rtems_device_major_number major,
+ rtems_device_minor_number minor
+);
+
+ssize_t rtems_deviceio_write(
+ rtems_libio_t *iop,
+ const void *buf,
+ size_t nbyte,
+ rtems_device_major_number major,
+ rtems_device_minor_number minor
+);
+
+int rtems_deviceio_control(
+ rtems_libio_t *iop,
+ ioctl_command_t command,
+ void *buffer,
+ rtems_device_major_number major,
+ rtems_device_minor_number minor
+);
+
+#ifdef __cplusplus
+}
+#endif
+/* __cplusplus */
+
+/**@}*/
+
+#endif /* _RTEMS_DEVICEIO_H */