1 /* vi: set sw=4 ts=4: */ 2 #ifndef UTILS_H 3 #define UTILS_H 1 4 5 #include "libnetlink.h" 6 #include "ll_map.h" 7 #include "rtm_map.h" 8 9 PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN 10 11 extern family_t preferred_family; 12 extern smallint show_stats; /* UNUSED */ 13 extern smallint show_details; /* UNUSED */ 14 extern smallint show_raw; /* UNUSED */ 15 extern smallint resolve_hosts; /* UNUSED */ 16 extern smallint oneline; 17 extern char _SL_; 18 19 #ifndef IPPROTO_ESP 20 #define IPPROTO_ESP 50 21 #endif 22 #ifndef IPPROTO_AH 23 #define IPPROTO_AH 51 24 #endif 25 26 #define SPRINT_BSIZE 64 27 #define SPRINT_BUF(x) char x[SPRINT_BSIZE] 28 29 typedef struct { 30 uint8_t family; 31 uint8_t bytelen; 32 int16_t bitlen; 33 uint32_t data[4]; 34 } inet_prefix; 35 36 #define PREFIXLEN_SPECIFIED 1 37 38 #define DN_MAXADDL 20 39 #ifndef AF_DECnet 40 #define AF_DECnet 12 41 #endif 42 43 struct dn_naddr { 44 unsigned short a_len; 45 unsigned char a_addr[DN_MAXADDL]; 46 }; 47 48 #define IPX_NODE_LEN 6 49 50 struct ipx_addr { 51 uint32_t ipx_net; 52 uint8_t ipx_node[IPX_NODE_LEN]; 53 }; 54 55 char** next_arg(char **argv) FAST_FUNC; 56 #define NEXT_ARG() do { argv = next_arg(argv); } while (0) 57 58 uint32_t get_addr32(char *name) FAST_FUNC; 59 int get_addr_1(inet_prefix *dst, char *arg, int family) FAST_FUNC; 60 /*void get_prefix_1(inet_prefix *dst, char *arg, int family) FAST_FUNC;*/ 61 int get_addr(inet_prefix *dst, char *arg, int family) FAST_FUNC; 62 void get_prefix(inet_prefix *dst, char *arg, int family) FAST_FUNC; 63 64 unsigned get_unsigned(char *arg, const char *errmsg) FAST_FUNC; 65 uint32_t get_u32(char *arg, const char *errmsg) FAST_FUNC; 66 uint16_t get_u16(char *arg, const char *errmsg) FAST_FUNC; 67 68 const char *rt_addr_n2a(int af, void *addr) FAST_FUNC; 69 #ifdef RESOLVE_HOSTNAMES 70 const char *format_host(int af, int len, void *addr) FAST_FUNC; 71 #else 72 #define format_host(af, len, addr) \ 73 rt_addr_n2a(af, addr) 74 #endif 75 76 void invarg_1_to_2(const char *, const char *) FAST_FUNC NORETURN; 77 void duparg(const char *, const char *) FAST_FUNC NORETURN; 78 void duparg2(const char *, const char *) FAST_FUNC NORETURN; 79 80 int inet_addr_match(const inet_prefix *a, const inet_prefix *b, int bits) FAST_FUNC; 81 82 //const char *dnet_ntop(int af, const void *addr, char *str, size_t len); 83 //int dnet_pton(int af, const char *src, void *addr); 84 85 //const char *ipx_ntop(int af, const void *addr, char *str, size_t len); 86 //int ipx_pton(int af, const char *src, void *addr); 87 88 unsigned get_hz(void) FAST_FUNC; 89 90 POP_SAVED_FUNCTION_VISIBILITY 91 92 #endif 93