diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-06-03 14:54:05 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-06-06 12:57:07 +0200 |
commit | 214156d98c3421a84fe8ad27ba8891651eea7291 (patch) | |
tree | 90c1e146f07c5719d4079d6ff1e4eba25bad5cd9 | |
parent | rtems: Fix no protocol mutex release (diff) | |
download | rtems-214156d98c3421a84fe8ad27ba8891651eea7291.tar.bz2 |
mghttpd: Add RTEMS printer support
-rw-r--r-- | cpukit/include/rtems/print.h | 4 | ||||
-rw-r--r-- | cpukit/mghttpd/mongoose.c | 12 | ||||
-rw-r--r-- | cpukit/mghttpd/mongoose.h | 4 |
3 files changed, 18 insertions, 2 deletions
diff --git a/cpukit/include/rtems/print.h b/cpukit/include/rtems/print.h index 5268e8c744..91c45150a6 100644 --- a/cpukit/include/rtems/print.h +++ b/cpukit/include/rtems/print.h @@ -39,10 +39,10 @@ extern "C" { * Type definition for the printer structure used to access the kernel print * support. */ -typedef struct { +typedef struct rtems_printer { void *context; rtems_print_plugin_t printer; -}rtems_printer; +} rtems_printer; /** * @brief check if the printer is valid. diff --git a/cpukit/mghttpd/mongoose.c b/cpukit/mghttpd/mongoose.c index dd243d3320..a89fc56885 100644 --- a/cpukit/mghttpd/mongoose.c +++ b/cpukit/mghttpd/mongoose.c @@ -5519,3 +5519,15 @@ struct mg_context *mg_start(const struct mg_callbacks *callbacks, return ctx; } +#ifdef __rtems__ +#include <rtems/print.h> + +static int mg_printer_plugin(void *context, const char *fmt, va_list ap) { + return mg_vprintf(context, fmt, ap); +} + +void rtems_print_printer_mg_printf(rtems_printer *printer, struct mg_connection *conn) { + printer->context = conn; + printer->printer = mg_printer_plugin; +} +#endif /* __rtems__ */ diff --git a/cpukit/mghttpd/mongoose.h b/cpukit/mghttpd/mongoose.h index ad7c40f2dd..330ed6701b 100644 --- a/cpukit/mghttpd/mongoose.h +++ b/cpukit/mghttpd/mongoose.h @@ -256,6 +256,10 @@ enum { // Works exactly like mg_write(), but allows to do message formatting. int mg_printf(struct mg_connection *, PRINTF_FORMAT_STRING(const char *fmt), ...) PRINTF_ARGS(2, 3); +#ifdef __rtems__ +struct rtems_printer; +void rtems_print_printer_mg_printf(struct rtems_printer *, struct mg_connection *); +#endif /* __rtems__ */ // Send contents of the entire file together with HTTP headers. |