summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/bspIo.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/include/rtems/bspIo.h')
-rw-r--r--cpukit/include/rtems/bspIo.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/cpukit/include/rtems/bspIo.h b/cpukit/include/rtems/bspIo.h
new file mode 100644
index 0000000000..372dbd4970
--- /dev/null
+++ b/cpukit/include/rtems/bspIo.h
@@ -0,0 +1,76 @@
+/* bspIo.h
+ *
+ * This include file contains declaration of interface that
+ * will be provided by the file contained in this directory.
+ *
+ * COPYRIGHT (c) 1998 valette@crf.canon.fr
+ *
+ * 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_BSPIO_H
+#define _RTEMS_BSPIO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * All the functions declared as extern after this comment
+ * MUST be implemented in each BSP. Using this function,
+ * this directory contains shared code that export higher level
+ * functionnality described after the next command.
+ */
+typedef void (*BSP_output_char_function_type) (char c);
+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;
+
+/*
+ * All the function declared as extern after this comment
+ * are available for each BSP by compiling and linking
+ * the files contained in this directory PROVIDED definition
+ * and initialisation of the previous variable are done.
+ */
+#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, ...);
+extern void putk(const char *s);
+
+/*
+ * This routine is passed into RTEMS reporting functions
+ * that may have their output redirected. In particular,
+ * the cpu usage, period usage, and stack usage reporting
+ * functions use this. If the user provides their
+ * own "printf plugin", then they may redirect those reports
+ * as they see fit.
+ */
+extern int printk_plugin(void *context, const char *fmt, ...);
+
+/*
+ * Type definition for function which can be plugged in to
+ * certain reporting routines to redirect the output
+ */
+typedef int (*rtems_printk_plugin_t)(void *, const char *format, ...);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif