*/
typedef unsigned char nd_byte;
+/*
+ * Round up x to a multiple of y; y must be a power of 2.
+ */
+#ifndef roundup2
+#define roundup2(x, y) (((x)+((y)-1))&(~((y)-1)))
+#endif
+
/* nd_snprintf et al */
#include <stdarg.h>
extern void unsigned_relts_print(netdissect_options *, uint32_t);
extern void fn_print_char(netdissect_options *, u_char);
-extern int fn_print(netdissect_options *, const u_char *, const u_char *);
-extern u_int fn_printztn(netdissect_options *ndo, const u_char *, u_int, const u_char *);
-extern int fn_printn(netdissect_options *, const u_char *, u_int, const u_char *);
-extern int fn_printzp(netdissect_options *, const u_char *, u_int, const u_char *);
+extern void fn_print_str(netdissect_options *, const u_char *);
+extern int nd_print(netdissect_options *, const u_char *, const u_char *);
+extern u_int nd_printztn(netdissect_options *ndo, const u_char *, u_int, const u_char *);
+extern int nd_printn(netdissect_options *, const u_char *, u_int, const u_char *);
+extern int nd_printzp(netdissect_options *, const u_char *, u_int, const u_char *);
/*
* Flags for txtproto_print().
#define ND_ISGRAPH(c) ((c) > 0x20 && (c) <= 0x7E)
#define ND_TOASCII(c) ((c) & 0x7F)
-extern void safeputchar(netdissect_options *, const u_char);
-extern void safeputs(netdissect_options *, const u_char *, const u_int);
-
#if (defined(__i386__) || defined(_M_IX86) || defined(__X86__) || defined(__x86_64__) || defined(_M_X64)) || \
(defined(__arm__) || defined(_M_ARM) || defined(__aarch64__)) || \
(defined(__m68k__) && (!defined(__mc68000__) && !defined(__mc68010__))) || \
extern u_int sl_bsdos_if_print IF_PRINTER_ARGS;
extern u_int sl_if_print IF_PRINTER_ARGS;
extern u_int sll_if_print IF_PRINTER_ARGS;
+extern u_int sll2_if_print IF_PRINTER_ARGS;
extern u_int sunatm_if_print IF_PRINTER_ARGS;
extern u_int symantec_if_print IF_PRINTER_ARGS;
extern u_int token_if_print IF_PRINTER_ARGS;
extern void gre_print(netdissect_options *, const u_char *, u_int);
extern int hbhopt_print(netdissect_options *, const u_char *);
extern void hex_and_ascii_print(netdissect_options *, const char *, const u_char *, u_int);
-extern void hex_and_ascii_print_with_offset(netdissect_options *, const char *, const u_char *, u_int, u_int);
extern void hex_print(netdissect_options *, const char *ident, const u_char *cp, u_int);
extern void hex_print_with_offset(netdissect_options *, const char *ident, const u_char *cp, u_int, u_int);
extern void hncp_print(netdissect_options *, const u_char *, u_int);
extern int nextproto6_cksum(netdissect_options *, const struct ip6_hdr *, const uint8_t *, u_int, u_int, u_int);
/* Utilities */
+extern void nd_print_trunc(netdissect_options *);
+
extern int mask2plen(uint32_t);
extern int mask62plen(const u_char *);