Module: xenomai-head
Branch: master
Commit: 1ace8a2563ba58f0869e9119151175bf3037e701
URL:    
http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=1ace8a2563ba58f0869e9119151175bf3037e701

Author: Jan Kiszka <jan.kis...@siemens.com>
Date:   Sun Jul 31 19:36:24 2011 +0200

rt_print: Clean up print_to_buffer invocation without vargs

Some archs define va_list in a way that a NULL placeholder cannot be
used. Create a helper that accepts variable - or zero - format
arguments and use that one to implement rt_puts.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>

---

 src/skins/common/rt_print.c |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/skins/common/rt_print.c b/src/skins/common/rt_print.c
index 186de48..e398135 100644
--- a/src/skins/common/rt_print.c
+++ b/src/skins/common/rt_print.c
@@ -95,8 +95,8 @@ static void print_buffers(void);
 
 /* *** rt_print API *** */
 
-static int print_to_buffer(FILE *stream, int priority, unsigned int mode,
-                          const char *format, va_list args)
+static int vprint_to_buffer(FILE *stream, int priority, unsigned int mode,
+                           const char *format, va_list args)
 {
        struct print_buffer *buffer = pthread_getspecific(buffer_key);
        off_t write_pos, read_pos;
@@ -207,9 +207,22 @@ static int print_to_buffer(FILE *stream, int priority, 
unsigned int mode,
        return res;
 }
 
+static int print_to_buffer(FILE *stream, int priority, unsigned int mode,
+                          const char *format, ...)
+{
+       va_list args;
+       int ret;
+
+       va_start(args, format);
+       ret = vprint_to_buffer(stream, priority, mode, format, args);
+       va_end(args);
+
+       return ret;
+}
+
 int rt_vfprintf(FILE *stream, const char *format, va_list args)
 {
-       return print_to_buffer(stream, 0, RT_PRINT_MODE_FORMAT, format, args);
+       return vprint_to_buffer(stream, 0, RT_PRINT_MODE_FORMAT, format, args);
 }
 
 int rt_vprintf(const char *format, va_list args)
@@ -243,7 +256,7 @@ int rt_printf(const char *format, ...)
 
 int rt_puts(const char *s)
 {
-       return print_to_buffer(stdout, 0, RT_PRINT_MODE_PUTS, s, NULL);
+       return print_to_buffer(stdout, 0, RT_PRINT_MODE_PUTS, s);
 }
 
 void rt_syslog(int priority, const char *format, ...)
@@ -251,15 +264,15 @@ void rt_syslog(int priority, const char *format, ...)
        va_list args;
 
        va_start(args, format);
-       print_to_buffer(RT_PRINT_SYSLOG_STREAM, priority, RT_PRINT_MODE_FORMAT,
-                       format, args);
+       vprint_to_buffer(RT_PRINT_SYSLOG_STREAM, priority,
+                        RT_PRINT_MODE_FORMAT, format, args);
        va_end(args);
 }
 
 void rt_vsyslog(int priority, const char *format, va_list args)
 {
-       print_to_buffer(RT_PRINT_SYSLOG_STREAM, priority, RT_PRINT_MODE_FORMAT,
-                       format, args);
+       vprint_to_buffer(RT_PRINT_SYSLOG_STREAM, priority,
+                        RT_PRINT_MODE_FORMAT, format, args);
 }
 
 static void set_buffer_name(struct print_buffer *buffer, const char *name)


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to