summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-05-13 13:46:43 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-05-13 13:46:43 +0000
commit158b416c7264d5f67b512c43fa5567e396ba774c (patch)
tree6c16bf09c4db4b7ef71b0f0616f360e559f15eb6 /cpukit
parent2011-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com> (diff)
downloadrtems-158b416c7264d5f67b512c43fa5567e396ba774c.tar.bz2
2011-05-13 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libmisc/devnull/devzero.c, libmisc/devnull/devzero.h: New files. * libmisc/Makefile.am, Makefile.am, preinstall.am: Reflect changes above.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/Makefile.am3
-rw-r--r--cpukit/libmisc/Makefile.am3
-rw-r--r--cpukit/libmisc/devnull/devzero.c88
-rw-r--r--cpukit/libmisc/devnull/devzero.h78
-rw-r--r--cpukit/preinstall.am4
5 files changed, 174 insertions, 2 deletions
diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
index 0d5cce7df0..22298ebea0 100644
--- a/cpukit/Makefile.am
+++ b/cpukit/Makefile.am
@@ -140,7 +140,8 @@ include_rtems_HEADERS += libmisc/capture/capture.h \
include_rtems_HEADERS += libmisc/cpuuse/cpuuse.h
## devnull
-include_rtems_HEADERS += libmisc/devnull/devnull.h
+include_rtems_HEADERS += libmisc/devnull/devnull.h \
+ libmisc/devnull/devzero.h
## dumpbuf
include_rtems_HEADERS += libmisc/dumpbuf/dumpbuf.h
diff --git a/cpukit/libmisc/Makefile.am b/cpukit/libmisc/Makefile.am
index f288f14f2b..207ee8bbc2 100644
--- a/cpukit/libmisc/Makefile.am
+++ b/cpukit/libmisc/Makefile.am
@@ -30,7 +30,8 @@ libcpuuse_a_SOURCES = cpuuse/cpuusagereport.c cpuuse/cpuusagereset.c \
## devnull
noinst_LIBRARIES += libdevnull.a
-libdevnull_a_SOURCES = devnull/devnull.c devnull/devnull.h
+libdevnull_a_SOURCES = devnull/devnull.c devnull/devnull.h \
+ devnull/devzero.c devnull/devzero.h
## dummy
EXTRA_DIST += dummy/README
diff --git a/cpukit/libmisc/devnull/devzero.c b/cpukit/libmisc/devnull/devzero.c
new file mode 100644
index 0000000000..621d9a02fe
--- /dev/null
+++ b/cpukit/libmisc/devnull/devzero.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2011 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/devzero.h>
+
+#include <string.h>
+
+#include <rtems/libio.h>
+
+rtems_device_driver dev_zero_initialize(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor __attribute__((unused)),
+ void *arg __attribute__((unused))
+)
+{
+ return rtems_io_register_name(DEVZERO_DEVICE_NAME, major, 0);
+}
+
+rtems_device_driver dev_zero_open(
+ rtems_device_major_number major __attribute__((unused)),
+ rtems_device_minor_number minor __attribute__((unused)),
+ void *arg __attribute__((unused))
+)
+{
+ return RTEMS_SUCCESSFUL;
+}
+
+rtems_device_driver dev_zero_close(
+ rtems_device_major_number major __attribute__((unused)),
+ rtems_device_minor_number minor __attribute__((unused)),
+ void *arg __attribute__((unused))
+)
+{
+ return RTEMS_SUCCESSFUL;
+}
+
+rtems_device_driver dev_zero_read(
+ rtems_device_major_number major __attribute__((unused)),
+ rtems_device_minor_number minor __attribute__((unused)),
+ void *arg __attribute__((unused))
+)
+{
+ rtems_libio_rw_args_t *rw = arg;
+
+ rw->bytes_moved = rw->count;
+ memset(rw->buffer, 0, rw->count);
+
+ return RTEMS_SUCCESSFUL;
+}
+
+rtems_device_driver dev_zero_write(
+ rtems_device_major_number major __attribute__((unused)),
+ rtems_device_minor_number minor __attribute__((unused)),
+ void *arg
+)
+{
+ rtems_libio_rw_args_t *rw = arg;
+
+ rw->bytes_moved = rw->count;
+
+ return RTEMS_SUCCESSFUL;
+}
+
+rtems_device_driver dev_zero_control(
+ rtems_device_major_number major __attribute__((unused)),
+ rtems_device_minor_number minor __attribute__((unused)),
+ void *arg __attribute__((unused))
+)
+{
+ return RTEMS_IO_ERROR;
+}
diff --git a/cpukit/libmisc/devnull/devzero.h b/cpukit/libmisc/devnull/devzero.h
new file mode 100644
index 0000000000..7e5fb62a29
--- /dev/null
+++ b/cpukit/libmisc/devnull/devzero.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2011 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef _RTEMS_DEVZERO_H
+#define _RTEMS_DEVZERO_H
+
+#include <rtems/io.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define DEVZERO_DEVICE_NAME "/dev/zero"
+
+#define DEVZERO_DRIVER_TABLE_ENTRY \
+ { \
+ dev_zero_initialize, \
+ dev_zero_open, \
+ dev_zero_close, \
+ dev_zero_read, \
+ dev_zero_write, \
+ dev_zero_control \
+ }
+
+rtems_device_driver dev_zero_initialize(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+);
+
+rtems_device_driver dev_zero_open(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+);
+
+rtems_device_driver dev_zero_close(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+);
+
+rtems_device_driver dev_zero_read(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+);
+
+rtems_device_driver dev_zero_write(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+);
+
+rtems_device_driver dev_zero_control(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _RTEMS_DEVZERO_H */
diff --git a/cpukit/preinstall.am b/cpukit/preinstall.am
index d773150301..8671a8c5e6 100644
--- a/cpukit/preinstall.am
+++ b/cpukit/preinstall.am
@@ -309,6 +309,10 @@ $(PROJECT_INCLUDE)/rtems/devnull.h: libmisc/devnull/devnull.h $(PROJECT_INCLUDE)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/devnull.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/devnull.h
+$(PROJECT_INCLUDE)/rtems/devzero.h: libmisc/devnull/devzero.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/devzero.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/devzero.h
+
$(PROJECT_INCLUDE)/rtems/dumpbuf.h: libmisc/dumpbuf/dumpbuf.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/dumpbuf.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/dumpbuf.h