[rtems-libbsd commit] Add error() to the BSD program support.

Chris Johns chrisj at rtems.org
Thu Jun 18 01:26:22 UTC 2015


On 17/06/2015 9:13 pm, Sebastian Huber wrote:
> 
> 
> On 16/06/15 05:21, Chris Johns wrote:
>> Module:    rtems-libbsd
>> Branch:    master
>> Commit:    b5aca585949aa94d8d254ab4c4e5b4b2f7b1f1d9
>> Changeset:
>> http://git.rtems.org/rtems-libbsd/commit/?id=b5aca585949aa94d8d254ab4c4e5b4b2f7b1f1d9
>>
>>
>> Author:    Chris Johns <chrisj at rtems.org>
>> Date:      Tue Jun 16 13:16:37 2015 +1000
>>
>> Add error() to the BSD program support.
>>
>> ---
>>
>>   rtemsbsd/include/machine/rtems-bsd-program.h | 11 +++++++++++
>>   rtemsbsd/rtems/rtems-bsd-program.c           | 13 +++++++++++++
>>   2 files changed, 24 insertions(+)
>>
>> diff --git a/rtemsbsd/include/machine/rtems-bsd-program.h
>> b/rtemsbsd/include/machine/rtems-bsd-program.h
>> index b2e542e..7c2837e 100644
>> --- a/rtemsbsd/include/machine/rtems-bsd-program.h
>> +++ b/rtemsbsd/include/machine/rtems-bsd-program.h
>> @@ -56,6 +56,9 @@ rtems_bsd_program_call_main(const char *name, int
>> (*main)(int, char **),
>>   void
>>   rtems_bsd_program_exit(int exit_code) __dead2;
>>   +void
>> +rtems_bsd_program_error(const char *, ...) __attribute__ ((__format__
>> (__printf__, 1, 2)));
>> +
>>   const char *
>>   rtems_bsd_program_get_name(void);
>>   @@ -69,14 +72,22 @@ void
>>   rtems_bsd_program_unlock(void);
>>     #ifndef RTEMS_BSD_PROGRAM_NO_EXIT_WRAP
>> +  #undef exit
> 
> What is the reason for this #undef?
> 

I got warnings for printf in tcpdump for some reason so add the undef to
all symbols present.

Does it hurt having it present ?

>>     #define exit(code) rtems_bsd_program_exit(code)
>>   #endif
>>   +#ifndef RTEMS_BSD_PROGRAM_NO_ERROR_WRAP
>> +  #undef error
>> +  #define error(fmt, ...) rtems_bsd_program_error(fmt, ## __VA_ARGS__)
>> +#endif
>> +
>>   #ifndef RTEMS_BSD_PROGRAM_NO_GETPROGNAME_WRAP
>> +  #undef getprogname
>>     #define getprogname() rtems_bsd_program_get_name()
>>   #endif
>>     #ifndef RTEMS_BSD_PROGRAM_NO_PRINTF_WRAP
>> +  #undef printf
>>     #define printf(...) fprintf(stdout, __VA_ARGS__)
>>   #endif
>>   diff --git a/rtemsbsd/rtems/rtems-bsd-program.c
>> b/rtemsbsd/rtems/rtems-bsd-program.c
>> index 8edd8f9..7b5920e 100644
>> --- a/rtemsbsd/rtems/rtems-bsd-program.c
>> +++ b/rtemsbsd/rtems/rtems-bsd-program.c
>> @@ -52,6 +52,8 @@
>>   #include <setjmp.h>
>>   #include <stdlib.h>
>>   +#include <machine/rtems-bsd-program.h>
>> +
>>   struct rtems_bsd_program_control {
>>       void *context;
>>       int exit_code;
>> @@ -116,6 +118,17 @@ rtems_bsd_program_exit(int exit_code)
>>       panic("unexpected BSD program exit");
>>   }
>>   +void
>> +rtems_bsd_program_error(const char *fmt, ...)
>> +{
>> +  va_list list;
>> +  va_start(list, fmt);
>> +  vfprintf(stderr, fmt, list);
>> +  fprintf(stderr, "\n");
>> +  va_end(list);
>> +  rtems_bsd_program_exit(1);
>> +}
>> +
> 
> It would be nice to keep the style of the files and this is STYLE(9)
> more or less.

Sure.

Chris



More information about the devel mailing list