rev |
line source |
pascal@21761
|
1 --- busybox-1.31/include/platform.h
|
pascal@21761
|
2 +++ busybox-1.31/include/platform.h
|
pascal@21761
|
3 @@ -533,6 +533,25 @@
|
pascal@21761
|
4 # undef HAVE_PRINTF_PERCENTM
|
pascal@21761
|
5 #endif
|
pascal@21761
|
6
|
pascal@21761
|
7 +#if defined(__dietlibc__)
|
pascal@21761
|
8 +# define __aligned_u64 __u64 __attribute__((aligned(8)))
|
pascal@21761
|
9 +# define LOOP_SET_STATUS64 0x4C04
|
pascal@21761
|
10 +# define LOOP_GET_STATUS64 0x4C05
|
pascal@21761
|
11 +# define MAXSYMLINKS 20
|
pascal@21761
|
12 +# define S_TYPEISMQ(x) 0
|
pascal@21761
|
13 +# define S_TYPEISSEM(x) 0
|
pascal@21761
|
14 +# define S_TYPEISSHM(x) 0
|
pascal@21761
|
15 +# define O_CLOEXEC 0
|
pascal@21761
|
16 +# undef HAVE_STRVERSCMP
|
pascal@21761
|
17 +# undef HAVE_DPRINTF
|
pascal@21761
|
18 +# undef HAVE_STRCASESTR
|
pascal@21761
|
19 +#undef ALWAYS_INLINE
|
pascal@21761
|
20 +#define ALWAYS_INLINE inline
|
pascal@21761
|
21 +#undef NOINLINE
|
pascal@21761
|
22 +#define NOINLINE
|
pascal@21761
|
23 +# define ttyname_r(a,b,c) (strlcpy(b, ttyname(a), c) == 0)
|
pascal@21761
|
24 +#endif
|
pascal@21761
|
25 +
|
pascal@21761
|
26 /*
|
pascal@21761
|
27 * Now, define prototypes for all the functions defined in platform.c
|
pascal@21761
|
28 * These must come after all the HAVE_* macros are defined (or not)
|
pascal@21761
|
29 --- busybox-1.31/networking/ping.c
|
pascal@21761
|
30 +++ busybox-1.31/networking/ping.c
|
pascal@21761
|
31 @@ -123,6 +124,84 @@
|
pascal@21761
|
32 #include "libbb.h"
|
pascal@21761
|
33 #include "common_bufsiz.h"
|
pascal@21761
|
34
|
pascal@21761
|
35 +#ifdef __dietlibc__
|
pascal@21761
|
36 +/* Dietlibc is missing the BSD definition 'struct icmp' */
|
pascal@21761
|
37 +/*
|
pascal@21761
|
38 + * Internal of an ICMP Router Advertisement
|
pascal@21761
|
39 + */
|
pascal@21761
|
40 +struct icmp_ra_addr
|
pascal@21761
|
41 +{
|
pascal@21761
|
42 + uint32_t ira_addr;
|
pascal@21761
|
43 + uint32_t ira_preference;
|
pascal@21761
|
44 +};
|
pascal@21761
|
45 +
|
pascal@21761
|
46 +struct icmp
|
pascal@21761
|
47 +{
|
pascal@21761
|
48 + uint8_t icmp_type; /* type of message, see below */
|
pascal@21761
|
49 + uint8_t icmp_code; /* type sub code */
|
pascal@21761
|
50 + uint16_t icmp_cksum; /* ones complement checksum of struct */
|
pascal@21761
|
51 + union
|
pascal@21761
|
52 + {
|
pascal@21761
|
53 + uint8_t ih_pptr; /* ICMP_PARAMPROB */
|
pascal@21761
|
54 + struct in_addr ih_gwaddr; /* gateway address */
|
pascal@21761
|
55 + struct ih_idseq /* echo datagram */
|
pascal@21761
|
56 + {
|
pascal@21761
|
57 + uint16_t icd_id;
|
pascal@21761
|
58 + uint16_t icd_seq;
|
pascal@21761
|
59 + } ih_idseq;
|
pascal@21761
|
60 + uint32_t ih_void;
|
pascal@21761
|
61 +
|
pascal@21761
|
62 + /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
|
pascal@21761
|
63 + struct ih_pmtu
|
pascal@21761
|
64 + {
|
pascal@21761
|
65 + uint16_t ipm_void;
|
pascal@21761
|
66 + uint16_t ipm_nextmtu;
|
pascal@21761
|
67 + } ih_pmtu;
|
pascal@21761
|
68 +
|
pascal@21761
|
69 + struct ih_rtradv
|
pascal@21761
|
70 + {
|
pascal@21761
|
71 + uint8_t irt_num_addrs;
|
pascal@21761
|
72 + uint8_t irt_wpa;
|
pascal@21761
|
73 + uint16_t irt_lifetime;
|
pascal@21761
|
74 + } ih_rtradv;
|
pascal@21761
|
75 + } icmp_hun;
|
pascal@21761
|
76 +#define icmp_pptr icmp_hun.ih_pptr
|
pascal@21761
|
77 +#define icmp_gwaddr icmp_hun.ih_gwaddr
|
pascal@21761
|
78 +#define icmp_id icmp_hun.ih_idseq.icd_id
|
pascal@21761
|
79 +#define icmp_seq icmp_hun.ih_idseq.icd_seq
|
pascal@21761
|
80 +#define icmp_void icmp_hun.ih_void
|
pascal@21761
|
81 +#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void
|
pascal@21761
|
82 +#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu
|
pascal@21761
|
83 +#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs
|
pascal@21761
|
84 +#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa
|
pascal@21761
|
85 +#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime
|
pascal@21761
|
86 + union
|
pascal@21761
|
87 + {
|
pascal@21761
|
88 + struct
|
pascal@21761
|
89 + {
|
pascal@21761
|
90 + uint32_t its_otime;
|
pascal@21761
|
91 + uint32_t its_rtime;
|
pascal@21761
|
92 + uint32_t its_ttime;
|
pascal@21761
|
93 + } id_ts;
|
pascal@21761
|
94 + struct
|
pascal@21761
|
95 + {
|
pascal@21761
|
96 + struct ip idi_ip;
|
pascal@21761
|
97 + /* options and then 64 bits of data */
|
pascal@21761
|
98 + } id_ip;
|
pascal@21761
|
99 + struct icmp_ra_addr id_radv;
|
pascal@21761
|
100 + uint32_t id_mask;
|
pascal@21761
|
101 + uint8_t id_data[1];
|
pascal@21761
|
102 + } icmp_dun;
|
pascal@21761
|
103 +#define icmp_otime icmp_dun.id_ts.its_otime
|
pascal@21761
|
104 +#define icmp_rtime icmp_dun.id_ts.its_rtime
|
pascal@21761
|
105 +#define icmp_ttime icmp_dun.id_ts.its_ttime
|
pascal@21761
|
106 +#define icmp_ip icmp_dun.id_ip.idi_ip
|
pascal@21761
|
107 +#define icmp_radv icmp_dun.id_radv
|
pascal@21761
|
108 +#define icmp_mask icmp_dun.id_mask
|
pascal@21761
|
109 +#define icmp_data icmp_dun.id_data
|
pascal@21761
|
110 +};
|
pascal@21761
|
111 +#endif /* __dietlibc__ */
|
pascal@21761
|
112 +
|
pascal@21761
|
113 #ifdef __BIONIC__
|
pascal@21761
|
114 /* should be in netinet/ip_icmp.h */
|
pascal@21761
|
115 # define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
|