On Wed, May 09, 2007 at 03:12:29PM -0400, Jon Ringle wrote:
> Has anyone implemented the ability to have diag_printf() messages be
> sent to a remote syslog server in Redboot/ecos?

You will have to be careful when doing this. diag_printf() uses a very
simple polled IO, blocking serial device driver. The idea is that it
should always work, in any context. So you can do a diag_printf() in
an ISR or a DSR, not just a thread. It is also guaranteed the output
will be out the serial port before diag_printf() returns. 

If you somehow modify diag_printf to send over a network stack it is
unlikely you can keep these properties. I would suggest you look at
adding a standard syslog interface, eg:

       #include <syslog.h>

       void openlog(const char *ident, int option, int facility);
       void syslog(int priority, const char *format, ...);
       void closelog(void);

       #define _BSD_SOURCE
       #include <stdarg.h>

       void vsyslog(int priority, const char *format, va_list ap);

and don't modify diag_printf().

    Andrew



-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply via email to