/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2008-2014 Apple Inc. All rights reserved.
*
- * @APPLE_LICENSE_HEADER_START@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
- * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
- * Reserved. This file contains Original Code and/or Modifications of
- * Original Code as defined in and that are subject to the Apple Public
- * Source License Version 1.0 (the 'License'). You may not use this file
- * except in compliance with the License. Please obtain a copy of the
- * License at http://www.apple.com/publicsource and read it before using
- * this file.
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
*
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
- * License for the specific language governing rights and limitations
- * under the License."
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
*
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
/*
* Copyright (c) 1992, 1993
#include <sys/cdefs.h>
#include <sys/types.h>
+#include <stdint.h>
+
+#include <TargetConditionals.h>
+
+extern int Aflag; /* show addresses of protocol control block */
+extern int aflag; /* show all sockets (including servers) */
+extern int bflag; /* show i/f total bytes in/out */
+extern int cflag; /* show specific classq */
+extern int dflag; /* show i/f dropped packets */
+extern int Fflag; /* show i/f forwarded packets */
+#if defined(__APPLE__) && !TARGET_OS_EMBEDDED
+extern int gflag; /* show group (multicast) routing or stats */
+#endif
+extern int iflag; /* show interfaces */
+extern int lflag; /* show routing table with use and ref */
+extern int Lflag; /* show size of listen queues */
+extern int mflag; /* show memory stats */
+extern int nflag; /* show addresses numerically */
+extern int Rflag; /* show reachability information */
+extern int rflag; /* show routing tables (or routing stats) */
+extern int sflag; /* show protocol statistics */
+extern int prioflag; /* show packet priority statistics */
+extern int tflag; /* show i/f watchdog timers */
+extern int vflag; /* more verbose */
+extern int Wflag; /* wide display */
+extern int qflag; /* Display ifclassq stats */
+extern int Qflag; /* Display opportunistic polling stats */
+extern int xflag; /* show extended link-layer reachability information */
+
+extern int cq; /* send classq index (-1 for all) */
+extern int interval; /* repeat interval for i/f stats */
+
+extern char *interface; /* desired i/f for stats, or NULL for all i/fs */
+extern int unit; /* unit number for above */
+
+extern int af; /* address family */
+
+extern char *plural(int);
+extern char *plurales(int);
+extern char *pluralies(int);
+
+extern void protopr(uint32_t, char *, int);
+extern void mptcppr(uint32_t, char *, int);
+extern void tcp_stats(uint32_t, char *, int);
+extern void mptcp_stats(uint32_t, char *, int);
+extern void udp_stats(uint32_t, char *, int);
+extern void ip_stats(uint32_t, char *, int);
+extern void icmp_stats(uint32_t, char *, int);
+extern void igmp_stats(uint32_t, char *, int);
+extern void arp_stats(uint32_t, char *, int);
+#ifdef IPSEC
+extern void ipsec_stats(uint32_t, char *, int);
+#endif
+
+#ifdef INET6
+extern void ip6_stats(uint32_t, char *, int);
+extern void ip6_ifstats(char *);
+extern void icmp6_stats(uint32_t, char *, int);
+extern void icmp6_ifstats(char *);
+extern void rip6_stats(uint32_t, char *, int);
+
+/* forward references */
+struct sockaddr_in6;
+struct in6_addr;
+struct sockaddr;
+
+extern char *routename6(struct sockaddr_in6 *);
+extern char *netname6(struct sockaddr_in6 *, struct sockaddr *);
+#endif /*INET6*/
-#ifndef EXTERN
-#define EXTERN extern
+#ifdef IPSEC
+extern void pfkey_stats(uint32_t, char *, int);
#endif
-EXTERN int Aflag; /* show addresses of protocol control block */
-EXTERN int aflag; /* show all sockets (including servers) */
-EXTERN int bflag; /* show i/f total bytes in/out */
-EXTERN int dflag; /* show i/f dropped packets */
-EXTERN int gflag; /* show group (multicast) routing or stats */
-EXTERN int iflag; /* show static interfaces */
-EXTERN int mflag; /* show memory stats */
-EXTERN int nflag; /* show addresses numerically */
-EXTERN int pflag; /* show given protocol */
-EXTERN int rflag; /* show routing tables (or routing stats) */
-EXTERN int sflag; /* show protocol statistics */
-EXTERN int tflag; /* show i/f watchdog timers */
-
-EXTERN int interval; /* repeat interval for i/f stats */
-
-EXTERN char *interface; /* desired i/f for stats, or NULL for all i/fs */
-EXTERN int unit; /* unit number for above */
-
-EXTERN int af; /* address family */
-
-int kread __P((u_long addr, char *buf, int size));
-char *plural __P((int));
-char *plurales __P((int));
-void trimdomain __P((char *));
-
-void protopr __P((u_long, char *));
-void tcp_stats __P((u_long, char *));
-void udp_stats __P((u_long, char *));
-void ip_stats __P((u_long, char *));
-void icmp_stats __P((u_long, char *));
-void igmp_stats __P((u_long, char *));
-void protopr __P((u_long, char *));
-
-void mbpr __P((u_long));
-
-void hostpr __P((u_long, u_long));
-void impstats __P((u_long, u_long));
-
-void intpr __P((int, u_long));
-
-void pr_rthdr __P(());
-void pr_family __P((int));
-void rt_stats __P((u_long));
-char *ipx_pnet __P((struct sockaddr *));
-char *ipx_phost __P((struct sockaddr *));
-char *ns_phost __P((struct sockaddr *));
-void upHex __P((char *));
-
-char *routename __P((u_long));
-char *netname __P((u_long, u_long));
-char *atalk_print __P((struct sockaddr *, int));
-char *atalk_print2 __P((struct sockaddr *, struct sockaddr *, int));
-char *ipx_print __P((struct sockaddr *));
-char *ns_print __P((struct sockaddr *));
-void routepr __P((u_long));
-
-void ipxprotopr __P((u_long, char *));
-void spx_stats __P((u_long, char *));
-void ipx_stats __P((u_long, char *));
-void ipxerr_stats __P((u_long, char *));
-
-void nsprotopr __P((u_long, char *));
-void spp_stats __P((u_long, char *));
-void idp_stats __P((u_long, char *));
-void nserr_stats __P((u_long, char *));
-
-void atalkprotopr __P((u_long, char *));
-void ddp_stats __P((u_long, char *));
-
-void intpr __P((int, u_long));
-
-void unixpr __P((void));
-
-void esis_stats __P((u_long, char *));
-void clnp_stats __P((u_long, char *));
-void cltp_stats __P((u_long, char *));
-void iso_protopr __P((u_long, char *));
-void iso_protopr1 __P((u_long, int));
-void tp_protopr __P((u_long, char *));
-void tp_inproto __P((u_long));
-void tp_stats __P((caddr_t, caddr_t));
-
-void mroutepr __P((u_long, u_long));
-void mrt_stats __P((u_long));
+extern void systmpr(uint32_t, char *, int);
+extern void kctl_stats(uint32_t, char *, int);
+extern void kevt_stats(uint32_t, char *, int);
+
+extern void mbpr(void);
+
+extern void intpr(void (*)(char *));
+extern void intpr_ri(void (*)(char *));
+extern void intervalpr(void (*)(uint32_t, char *, int), uint32_t,
+ char *, int);
+
+extern void pr_rthdr(int);
+extern void pr_family(int);
+extern void rt_stats(void);
+extern void upHex(char *);
+extern char *routename(uint32_t);
+extern char *netname(uint32_t, uint32_t);
+extern void routepr(void);
+
+extern void unixpr(void);
+extern void aqstatpr(void);
+extern void rxpollstatpr(void);
+
+extern void ifmalist_dump(void);
+
+extern int print_time(void);