Magellan Linux

Annotation of /trunk/mkinitrd-magellan/busybox/networking/libiproute/utils.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 532 - (hide annotations) (download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 9 months ago) by niro
File MIME type: text/plain
File size: 2475 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd

1 niro 532 /* vi: set sw=4 ts=4: */
2     #ifndef __UTILS_H__
3     #define __UTILS_H__ 1
4    
5     #include "libbb.h"
6    
7     #include "libnetlink.h"
8     #include "ll_map.h"
9     #include "rtm_map.h"
10    
11     extern int preferred_family;
12     extern int show_stats;
13     extern int show_details;
14     extern int show_raw;
15     extern int resolve_hosts;
16     extern int 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     extern void incomplete_command(void) ATTRIBUTE_NORETURN;
30    
31     #define NEXT_ARG() do { argv++; if (--argc <= 0) incomplete_command(); } while (0)
32    
33     typedef struct
34     {
35     uint8_t family;
36     uint8_t bytelen;
37     int16_t bitlen;
38     uint32_t data[4];
39     } inet_prefix;
40    
41     #define DN_MAXADDL 20
42     #ifndef AF_DECnet
43     #define AF_DECnet 12
44     #endif
45    
46     struct dn_naddr
47     {
48     unsigned short a_len;
49     unsigned char a_addr[DN_MAXADDL];
50     };
51    
52     #define IPX_NODE_LEN 6
53    
54     struct ipx_addr {
55     uint32_t ipx_net;
56     uint8_t ipx_node[IPX_NODE_LEN];
57     };
58    
59     extern uint32_t get_addr32(char *name);
60     extern int get_addr_1(inet_prefix *dst, char *arg, int family);
61     extern int get_prefix_1(inet_prefix *dst, char *arg, int family);
62     extern int get_addr(inet_prefix *dst, char *arg, int family);
63     extern int get_prefix(inet_prefix *dst, char *arg, int family);
64    
65     extern int get_integer(int *val, char *arg, int base);
66     extern int get_unsigned(unsigned *val, char *arg, int base);
67     #define get_byte get_u8
68     #define get_ushort get_u16
69     #define get_short get_s16
70     extern int get_u32(uint32_t *val, char *arg, int base);
71     extern int get_u16(uint16_t *val, char *arg, int base);
72     extern int get_s16(int16_t *val, char *arg, int base);
73     extern int get_u8(uint8_t *val, char *arg, int base);
74     extern int get_s8(int8_t *val, char *arg, int base);
75    
76     extern const char *format_host(int af, int len, void *addr, char *buf, int buflen);
77     extern const char *rt_addr_n2a(int af, int len, void *addr, char *buf, int buflen);
78    
79     void invarg(const char * const, const char * const) ATTRIBUTE_NORETURN;
80     void duparg(char *, char *) ATTRIBUTE_NORETURN;
81     void duparg2(char *, char *) ATTRIBUTE_NORETURN;
82     int matches(char *arg, char *pattern);
83     extern int inet_addr_match(inet_prefix *a, inet_prefix *b, int bits);
84    
85     const char *dnet_ntop(int af, const void *addr, char *str, size_t len);
86     int dnet_pton(int af, const char *src, void *addr);
87    
88     const char *ipx_ntop(int af, const void *addr, char *str, size_t len);
89     int ipx_pton(int af, const char *src, void *addr);
90    
91     #endif /* __UTILS_H__ */