busybox/networking/libiproute/utils.h
<<
>>
Prefs
   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
   9PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
  10
  11extern family_t preferred_family;
  12extern smallint show_stats;    /* UNUSED */
  13extern smallint show_details;  /* UNUSED */
  14extern smallint show_raw;      /* UNUSED */
  15extern smallint resolve_hosts; /* UNUSED */
  16extern smallint oneline;
  17extern 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
  29extern void incomplete_command(void) NORETURN;
  30
  31#define NEXT_ARG() do { if (!*++argv) incomplete_command(); } while (0)
  32
  33typedef struct {
  34        uint8_t family;
  35        uint8_t bytelen;
  36        int16_t bitlen;
  37        uint32_t data[4];
  38} inet_prefix;
  39
  40#define PREFIXLEN_SPECIFIED 1
  41
  42#define DN_MAXADDL 20
  43#ifndef AF_DECnet
  44#define AF_DECnet 12
  45#endif
  46
  47struct dn_naddr {
  48        unsigned short a_len;
  49        unsigned char  a_addr[DN_MAXADDL];
  50};
  51
  52#define IPX_NODE_LEN 6
  53
  54struct ipx_addr {
  55        uint32_t ipx_net;
  56        uint8_t  ipx_node[IPX_NODE_LEN];
  57};
  58
  59extern uint32_t get_addr32(char *name);
  60extern int get_addr_1(inet_prefix *dst, char *arg, int family);
  61/*extern void get_prefix_1(inet_prefix *dst, char *arg, int family);*/
  62extern int get_addr(inet_prefix *dst, char *arg, int family);
  63extern void get_prefix(inet_prefix *dst, char *arg, int family);
  64
  65extern unsigned get_unsigned(char *arg, const char *errmsg);
  66extern uint32_t get_u32(char *arg, const char *errmsg);
  67extern uint16_t get_u16(char *arg, const char *errmsg);
  68
  69extern const char *rt_addr_n2a(int af, void *addr);
  70#ifdef RESOLVE_HOSTNAMES
  71extern const char *format_host(int af, int len, void *addr);
  72#else
  73#define format_host(af, len, addr) \
  74        rt_addr_n2a(af, addr)
  75#endif
  76
  77void invarg_1_to_2(const char *, const char *) NORETURN;
  78void duparg(const char *, const char *) NORETURN;
  79void duparg2(const char *, const char *) NORETURN;
  80int inet_addr_match(const inet_prefix *a, const inet_prefix *b, int bits);
  81
  82const char *dnet_ntop(int af, const void *addr, char *str, size_t len);
  83int dnet_pton(int af, const char *src, void *addr);
  84
  85const char *ipx_ntop(int af, const void *addr, char *str, size_t len);
  86int ipx_pton(int af, const char *src, void *addr);
  87
  88unsigned get_hz(void);
  89
  90POP_SAVED_FUNCTION_VISIBILITY
  91
  92#endif
  93