diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-30 11:57:31 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-31 13:18:53 +0100 |
commit | c4645e4de4ca0b597da70e871f2422160c838fd4 (patch) | |
tree | e1f99a3134098f45fa55f52a3b169faffb2305fe /freebsd/sbin/ping | |
parent | PING(8): Avoid large buffers on the stack (diff) | |
download | rtems-libbsd-c4645e4de4ca0b597da70e871f2422160c838fd4.tar.bz2 |
PING(8): Use BSD program lock
Diffstat (limited to 'freebsd/sbin/ping')
-rw-r--r-- | freebsd/sbin/ping/ping.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/freebsd/sbin/ping/ping.c b/freebsd/sbin/ping/ping.c index 4b7f96ad..ae144698 100644 --- a/freebsd/sbin/ping/ping.c +++ b/freebsd/sbin/ping/ping.c @@ -44,6 +44,8 @@ static char sccsid[] = "@(#)ping.c 8.1 (Berkeley) 6/5/93"; #ifdef __rtems__ #define __need_getopt_newlib #include <getopt.h> +#include <machine/rtems-bsd-program.h> +#include <machine/rtems-bsd-commands.h> #endif /* __rtems__ */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); @@ -220,13 +222,14 @@ static void tvsub(struct timeval *, struct timeval *); static void usage(void) __dead2; #ifdef __rtems__ -#include <machine/rtems-bsd-program.h> -#include <machine/rtems-bsd-commands.h> - static int main(int argc, char **argv); int rtems_bsd_command_ping(int argc, char *argv[]) { + int exit_code; + + rtems_bsd_program_lock(); + BBELL = '\a'; BSPACE = '\b'; DOT = '.'; @@ -243,7 +246,11 @@ int rtems_bsd_command_ping(int argc, char *argv[]) tsum = 0.0; tsumsq = 0.0; - return rtems_bsd_program_call_main("ping", main, argc, argv); + exit_code = rtems_bsd_program_call_main("ping", main, argc, argv); + + rtems_bsd_program_unlock(); + + return exit_code; } #endif /* __rtems__ */ int |