summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-09-22 21:47:04 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-09-22 21:47:04 +0000
commit23c3f72e4d76daceacafd37d2580965ce79cfb80 (patch)
treeaaaea529330ff714b8c9a5c81a19610bc0b490ff /cpukit
parent2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-23c3f72e4d76daceacafd37d2580965ce79cfb80.tar.bz2
2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com>
* include/rtems/bspIo.h, libcsupport/Makefile.am: Add genchark() for polled debug input from the same device as printk(). * libcsupport/src/getchark.c: New file.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog6
-rw-r--r--cpukit/include/rtems/bspIo.h13
-rw-r--r--cpukit/libcsupport/Makefile.am3
-rw-r--r--cpukit/libcsupport/src/getchark.c25
4 files changed, 45 insertions, 2 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index cc698fc0ce..097b309d0e 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -1,3 +1,9 @@
+2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * include/rtems/bspIo.h, libcsupport/Makefile.am: Add genchark() for
+ polled debug input from the same device as printk().
+ * libcsupport/src/getchark.c: New file.
+
2008-09-22 Ralf Corsépius <ralf.corsepius@rtems.org>
* aclocal/version.m4: Bump RTEMS_API to 4.10.
diff --git a/cpukit/include/rtems/bspIo.h b/cpukit/include/rtems/bspIo.h
index 3e8eb5a534..67c09fe816 100644
--- a/cpukit/include/rtems/bspIo.h
+++ b/cpukit/include/rtems/bspIo.h
@@ -25,7 +25,7 @@ extern "C" {
* functionnality described after the next command.
*/
typedef void (*BSP_output_char_function_type) (char c);
-typedef char (*BSP_polling_getchar_function_type) (void);
+typedef int (*BSP_polling_getchar_function_type) (void);
extern BSP_output_char_function_type BSP_output_char;
extern BSP_polling_getchar_function_type BSP_poll_char;
@@ -38,6 +38,17 @@ extern BSP_polling_getchar_function_type BSP_poll_char;
*/
#include <stdarg.h>
+/**
+ * This method polls for a key in the simplest possible fashion
+ * from whatever the debug console device is.
+ *
+ * @return If a character is available, it is returned. Otherwise
+ * this method returns -1.
+ *
+ * @note This method uses the BSP_poll_char pointer to a BSP
+ * provided method.
+ */
+extern int getchark(void);
extern void vprintk(const char *fmt, va_list ap);
extern void printk(const char *fmt, ...);
diff --git a/cpukit/libcsupport/Makefile.am b/cpukit/libcsupport/Makefile.am
index 12395b1af7..f1361cfefe 100644
--- a/cpukit/libcsupport/Makefile.am
+++ b/cpukit/libcsupport/Makefile.am
@@ -99,7 +99,8 @@ LIBC_GLUE_C_FILES = src/__getpid.c src/__gettod.c src/__times.c \
BSD_LIBC_C_FILES = src/strlcpy.c src/strlcat.c
-libcsupport_a_SOURCES = src/gxx_wrappers.c src/printk.c src/printk_plugin.c \
+libcsupport_a_SOURCES = src/gxx_wrappers.c src/getchark.c src/printk.c \
+ src/printk_plugin.c \
$(BSD_LIBC_C_FILES) $(BASE_FS_C_FILES) $(MALLOC_C_FILES) \
$(ERROR_C_FILES) $(ASSOCIATION_C_FILES)
diff --git a/cpukit/libcsupport/src/getchark.c b/cpukit/libcsupport/src/getchark.c
new file mode 100644
index 0000000000..f501fc65f0
--- /dev/null
+++ b/cpukit/libcsupport/src/getchark.c
@@ -0,0 +1,25 @@
+/*
+ * COPYRIGHT (c) 1989-2008.
+ * 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.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems.h>
+#include <rtems/bspIo.h>
+
+int getchark(void)
+{
+ if ( BSP_poll_char )
+ return (*BSP_poll_char)();
+
+ return -1;
+}