diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-17 10:38:34 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-31 13:18:48 +0100 |
commit | d01564c473842adfd93148bb367fa0679f99e6b8 (patch) | |
tree | c838d184a92e6df21f32950392190e9b1842adf1 /freebsd/sbin/ping | |
parent | Simplify getopt() to getopt_r() translation (diff) | |
download | rtems-libbsd-d01564c473842adfd93148bb367fa0679f99e6b8.tar.bz2 |
Move program control to thread structure
Diffstat (limited to 'freebsd/sbin/ping')
-rw-r--r-- | freebsd/sbin/ping/ping.c | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/freebsd/sbin/ping/ping.c b/freebsd/sbin/ping/ping.c index 5adb9d5b..f1b4b912 100644 --- a/freebsd/sbin/ping/ping.c +++ b/freebsd/sbin/ping/ping.c @@ -218,44 +218,39 @@ static void tvsub(struct timeval *, struct timeval *); static void usage(void) __dead2; #ifdef __rtems__ -static int main_ping(int argc, char *const *argv); +#include <machine/rtems-bsd-program.h> + +static int main(int argc, char **argv); + static int rtems_shell_main_ping(int argc, char *argv[]) { - rtems_shell_globals_t ping_globals; - rtems_shell_globals = &ping_globals; - memset (rtems_shell_globals, 0, sizeof (ping_globals)); - BBELL = '\a'; - BSPACE = '\b'; - DOT = '.'; - icmp_type = ICMP_ECHO; - icmp_type_rsp = ICMP_ECHOREPLY; - phdr_len = 0; - sweepmin = 0; - sweepincr = 1; - interval = 1000; - waittime = MAXWAIT; - nrcvtimeout = 0; - tmin = 999999999.0; - tmax = 0.0; - tsum = 0.0; - tsumsq = 0.0; - ping_globals.exit_code = 1; - if (setjmp (ping_globals.exit_jmp) == 0) - return main_ping (argc, argv); - return ping_globals.exit_code; + BBELL = '\a'; + BSPACE = '\b'; + DOT = '.'; + icmp_type = ICMP_ECHO; + icmp_type_rsp = ICMP_ECHOREPLY; + phdr_len = 0; + sweepmin = 0; + sweepincr = 1; + interval = 1000; + waittime = MAXWAIT; + nrcvtimeout = 0; + tmin = 999999999.0; + tmax = 0.0; + tsum = 0.0; + tsumsq = 0.0; + + return rtems_bsd_program_call_main("ping", main, argc, argv); } -#endif - - - +#endif /* __rtems__ */ int -#ifdef __rtems__ -main_ping(argc, argv) -#else main(argc, argv) -#endif int argc; +#ifndef __rtems__ char *const *argv; +#else /* __rtems__ */ + char **argv; +#endif /* __rtems__ */ { struct sockaddr_in from, sock_in; struct in_addr ifaddr; |