summaryrefslogtreecommitdiffstats
path: root/freebsd/sbin/ping
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-17 10:38:34 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-31 13:18:48 +0100
commitd01564c473842adfd93148bb367fa0679f99e6b8 (patch)
treec838d184a92e6df21f32950392190e9b1842adf1 /freebsd/sbin/ping
parentSimplify getopt() to getopt_r() translation (diff)
downloadrtems-libbsd-d01564c473842adfd93148bb367fa0679f99e6b8.tar.bz2
Move program control to thread structure
Diffstat (limited to 'freebsd/sbin/ping')
-rw-r--r--freebsd/sbin/ping/ping.c57
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;