*: add FAST_FUNC to function ptrs where it makes sense
function old new delta evalcommand 1195 1209 +14 testcmd - 10 +10 printfcmd - 10 +10 echocmd - 10 +10 func_exec 270 276 +6 echo_dg 104 109 +5 store_nlmsg 85 89 +4 pseudo_exec_argv 195 198 +3 dotcmd 287 290 +3 machtime_stream 29 31 +2 discard_stream 24 26 +2 argstr 1299 1301 +2 killcmd 108 109 +1 evalfor 226 227 +1 daytime_stream 43 44 +1 run_list 2544 2543 -1 lookupvar 62 61 -1 ipaddr_modify 1310 1309 -1 ... parse_stream 2254 2245 -9 evalpipe 356 347 -9 collect_if 210 197 -13 read_opt 869 851 -18 handle_dollar 681 658 -23 print_addrinfo 1342 1303 -39 iterate_on_dir 156 59 -97 print_route 1709 1609 -100 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 12/130 up/down: 74/-767) Total: -693 bytes text data bss dec hex filename 841748 467 7872 850087 cf8a7 busybox_old 841061 467 7872 849400 cf5f8 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@ -42,8 +42,8 @@ typedef int execfn(char *command);
|
||||
|
||||
struct method_t {
|
||||
const char *name;
|
||||
int (*up)(struct interface_defn_t *ifd, execfn *e);
|
||||
int (*down)(struct interface_defn_t *ifd, execfn *e);
|
||||
int (*up)(struct interface_defn_t *ifd, execfn *e) FAST_FUNC;
|
||||
int (*down)(struct interface_defn_t *ifd, execfn *e) FAST_FUNC;
|
||||
};
|
||||
|
||||
struct address_family_t {
|
||||
@ -325,7 +325,7 @@ static int execute(const char *command, struct interface_defn_t *ifd, execfn *ex
|
||||
#endif
|
||||
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IPV6
|
||||
static int loopback_up6(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC loopback_up6(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
int result;
|
||||
@ -337,7 +337,7 @@ static int loopback_up6(struct interface_defn_t *ifd, execfn *exec)
|
||||
#endif
|
||||
}
|
||||
|
||||
static int loopback_down6(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC loopback_down6(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
return execute("ip link set %iface% down", ifd, exec);
|
||||
@ -346,7 +346,7 @@ static int loopback_down6(struct interface_defn_t *ifd, execfn *exec)
|
||||
#endif
|
||||
}
|
||||
|
||||
static int static_up6(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
int result;
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
@ -362,7 +362,7 @@ static int static_up6(struct interface_defn_t *ifd, execfn *exec)
|
||||
return ((result == 3) ? 3 : 0);
|
||||
}
|
||||
|
||||
static int static_down6(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC static_down6(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
return execute("ip link set %iface% down", ifd, exec);
|
||||
@ -372,7 +372,7 @@ static int static_down6(struct interface_defn_t *ifd, execfn *exec)
|
||||
}
|
||||
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
static int v4tunnel_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC v4tunnel_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
int result;
|
||||
result = execute("ip tunnel add %iface% mode sit remote "
|
||||
@ -383,7 +383,7 @@ static int v4tunnel_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
return ((result == 4) ? 4 : 0);
|
||||
}
|
||||
|
||||
static int v4tunnel_down(struct interface_defn_t * ifd, execfn * exec)
|
||||
static int FAST_FUNC v4tunnel_down(struct interface_defn_t * ifd, execfn * exec)
|
||||
{
|
||||
return execute("ip tunnel del %iface%", ifd, exec);
|
||||
}
|
||||
@ -405,7 +405,7 @@ static const struct address_family_t addr_inet6 = {
|
||||
#endif /* FEATURE_IFUPDOWN_IPV6 */
|
||||
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IPV4
|
||||
static int loopback_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC loopback_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
int result;
|
||||
@ -417,7 +417,7 @@ static int loopback_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
#endif
|
||||
}
|
||||
|
||||
static int loopback_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC loopback_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
int result;
|
||||
@ -429,7 +429,7 @@ static int loopback_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
#endif
|
||||
}
|
||||
|
||||
static int static_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
int result;
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
@ -451,7 +451,7 @@ static int static_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
#endif
|
||||
}
|
||||
|
||||
static int static_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC static_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
int result;
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
@ -468,8 +468,7 @@ static int static_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
}
|
||||
|
||||
#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
|
||||
struct dhcp_client_t
|
||||
{
|
||||
struct dhcp_client_t {
|
||||
const char *name;
|
||||
const char *startcmd;
|
||||
const char *stopcmd;
|
||||
@ -497,7 +496,7 @@ static const struct dhcp_client_t ext_dhcp_clients[] = {
|
||||
#endif /* ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCPC */
|
||||
|
||||
#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
|
||||
static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
unsigned i;
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
@ -517,7 +516,7 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
return 0;
|
||||
}
|
||||
#elif ENABLE_APP_UDHCPC
|
||||
static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||
/* ip doesn't up iface when it configures it (unlike ifconfig) */
|
||||
@ -533,7 +532,7 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
ifd, exec);
|
||||
}
|
||||
#else
|
||||
static int dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM,
|
||||
static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM,
|
||||
execfn *exec UNUSED_PARAM)
|
||||
{
|
||||
return 0; /* no dhcp support */
|
||||
@ -541,7 +540,7 @@ static int dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM,
|
||||
#endif
|
||||
|
||||
#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
|
||||
static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
int result = 0;
|
||||
unsigned i;
|
||||
@ -564,7 +563,7 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
return ((result == 3) ? 3 : 0);
|
||||
}
|
||||
#elif ENABLE_APP_UDHCPC
|
||||
static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
int result;
|
||||
result = execute("kill "
|
||||
@ -579,42 +578,42 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
return ((result == 3) ? 3 : 0);
|
||||
}
|
||||
#else
|
||||
static int dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM,
|
||||
static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM,
|
||||
execfn *exec UNUSED_PARAM)
|
||||
{
|
||||
return 0; /* no dhcp support */
|
||||
}
|
||||
#endif
|
||||
|
||||
static int manual_up_down(struct interface_defn_t *ifd UNUSED_PARAM, execfn *exec UNUSED_PARAM)
|
||||
static int FAST_FUNC manual_up_down(struct interface_defn_t *ifd UNUSED_PARAM, execfn *exec UNUSED_PARAM)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int bootp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC bootp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
return execute("bootpc[[ --bootfile %bootfile%]] --dev %iface%"
|
||||
"[[ --server %server%]][[ --hwaddr %hwaddr%]]"
|
||||
" --returniffail --serverbcast", ifd, exec);
|
||||
}
|
||||
|
||||
static int ppp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC ppp_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
return execute("pon[[ %provider%]]", ifd, exec);
|
||||
}
|
||||
|
||||
static int ppp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC ppp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
return execute("poff[[ %provider%]]", ifd, exec);
|
||||
}
|
||||
|
||||
static int wvdial_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC wvdial_up(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
return execute("start-stop-daemon --start -x wvdial "
|
||||
"-p /var/run/wvdial.%iface% -b -m --[[ %provider%]]", ifd, exec);
|
||||
}
|
||||
|
||||
static int wvdial_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
static int FAST_FUNC wvdial_down(struct interface_defn_t *ifd, execfn *exec)
|
||||
{
|
||||
return execute("start-stop-daemon --stop -x wvdial "
|
||||
"-p /var/run/wvdial.%iface% -s 2", ifd, exec);
|
||||
|
@ -239,36 +239,36 @@ typedef struct servtab_t {
|
||||
#ifdef INETD_BUILTINS_ENABLED
|
||||
/* Echo received data */
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
|
||||
static void echo_stream(int, servtab_t *);
|
||||
static void echo_dg(int, servtab_t *);
|
||||
static void FAST_FUNC echo_stream(int, servtab_t *);
|
||||
static void FAST_FUNC echo_dg(int, servtab_t *);
|
||||
#endif
|
||||
/* Internet /dev/null */
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
|
||||
static void discard_stream(int, servtab_t *);
|
||||
static void discard_dg(int, servtab_t *);
|
||||
static void FAST_FUNC discard_stream(int, servtab_t *);
|
||||
static void FAST_FUNC discard_dg(int, servtab_t *);
|
||||
#endif
|
||||
/* Return 32 bit time since 1900 */
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_TIME
|
||||
static void machtime_stream(int, servtab_t *);
|
||||
static void machtime_dg(int, servtab_t *);
|
||||
static void FAST_FUNC machtime_stream(int, servtab_t *);
|
||||
static void FAST_FUNC machtime_dg(int, servtab_t *);
|
||||
#endif
|
||||
/* Return human-readable time */
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
|
||||
static void daytime_stream(int, servtab_t *);
|
||||
static void daytime_dg(int, servtab_t *);
|
||||
static void FAST_FUNC daytime_stream(int, servtab_t *);
|
||||
static void FAST_FUNC daytime_dg(int, servtab_t *);
|
||||
#endif
|
||||
/* Familiar character generator */
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
|
||||
static void chargen_stream(int, servtab_t *);
|
||||
static void chargen_dg(int, servtab_t *);
|
||||
static void FAST_FUNC chargen_stream(int, servtab_t *);
|
||||
static void FAST_FUNC chargen_dg(int, servtab_t *);
|
||||
#endif
|
||||
|
||||
struct builtin {
|
||||
/* NB: not necessarily NUL terminated */
|
||||
char bi_service7[7]; /* internally provided service name */
|
||||
uint8_t bi_fork; /* 1 if stream fn should run in child */
|
||||
void (*bi_stream_fn)(int, servtab_t *);
|
||||
void (*bi_dgram_fn)(int, servtab_t *);
|
||||
void (*bi_stream_fn)(int, servtab_t *) FAST_FUNC;
|
||||
void (*bi_dgram_fn)(int, servtab_t *) FAST_FUNC;
|
||||
};
|
||||
|
||||
static const struct builtin builtins[] = {
|
||||
@ -1386,7 +1386,7 @@ static const char *const cat_args[] = { "cat", NULL };
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
|
||||
/* Echo service -- echo data back. */
|
||||
/* ARGSUSED */
|
||||
static void echo_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
static void FAST_FUNC echo_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
{
|
||||
#if BB_MMU
|
||||
while (1) {
|
||||
@ -1407,7 +1407,7 @@ static void echo_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
/* on failure we return to main, which does exit(EXIT_FAILURE) */
|
||||
#endif
|
||||
}
|
||||
static void echo_dg(int s, servtab_t *sep)
|
||||
static void FAST_FUNC echo_dg(int s, servtab_t *sep)
|
||||
{
|
||||
enum { BUFSIZE = 12*1024 }; /* for jumbo sized packets! :) */
|
||||
char *buf = xmalloc(BUFSIZE); /* too big for stack */
|
||||
@ -1427,7 +1427,7 @@ static void echo_dg(int s, servtab_t *sep)
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
|
||||
/* Discard service -- ignore data. */
|
||||
/* ARGSUSED */
|
||||
static void discard_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
static void FAST_FUNC discard_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
{
|
||||
#if BB_MMU
|
||||
while (safe_read(s, line, LINE_SIZE) > 0)
|
||||
@ -1446,7 +1446,7 @@ static void discard_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
#endif
|
||||
}
|
||||
/* ARGSUSED */
|
||||
static void discard_dg(int s, servtab_t *sep UNUSED_PARAM)
|
||||
static void FAST_FUNC discard_dg(int s, servtab_t *sep UNUSED_PARAM)
|
||||
{
|
||||
/* dgram builtins are non-forking - DONT BLOCK! */
|
||||
recv(s, line, LINE_SIZE, MSG_DONTWAIT);
|
||||
@ -1467,7 +1467,7 @@ static void init_ring(void)
|
||||
}
|
||||
/* Character generator. MMU arches only. */
|
||||
/* ARGSUSED */
|
||||
static void chargen_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
static void FAST_FUNC chargen_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
{
|
||||
char *rs;
|
||||
int len;
|
||||
@ -1495,7 +1495,7 @@ static void chargen_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
}
|
||||
}
|
||||
/* ARGSUSED */
|
||||
static void chargen_dg(int s, servtab_t *sep)
|
||||
static void FAST_FUNC chargen_dg(int s, servtab_t *sep)
|
||||
{
|
||||
int len;
|
||||
char text[LINESIZ + 2];
|
||||
@ -1544,14 +1544,14 @@ static uint32_t machtime(void)
|
||||
return htonl((uint32_t)(tv.tv_sec + 2208988800));
|
||||
}
|
||||
/* ARGSUSED */
|
||||
static void machtime_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
static void FAST_FUNC machtime_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
{
|
||||
uint32_t result;
|
||||
|
||||
result = machtime();
|
||||
full_write(s, &result, sizeof(result));
|
||||
}
|
||||
static void machtime_dg(int s, servtab_t *sep)
|
||||
static void FAST_FUNC machtime_dg(int s, servtab_t *sep)
|
||||
{
|
||||
uint32_t result;
|
||||
len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len);
|
||||
@ -1569,14 +1569,14 @@ static void machtime_dg(int s, servtab_t *sep)
|
||||
#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
|
||||
/* Return human-readable time of day */
|
||||
/* ARGSUSED */
|
||||
static void daytime_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
static void FAST_FUNC daytime_stream(int s, servtab_t *sep UNUSED_PARAM)
|
||||
{
|
||||
time_t t;
|
||||
|
||||
t = time(NULL);
|
||||
fdprintf(s, "%.24s\r\n", ctime(&t));
|
||||
}
|
||||
static void daytime_dg(int s, servtab_t *sep)
|
||||
static void FAST_FUNC daytime_dg(int s, servtab_t *sep)
|
||||
{
|
||||
time_t t;
|
||||
len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len);
|
||||
|
@ -196,7 +196,7 @@ static int flush_update(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
static int FAST_FUNC print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
struct nlmsghdr *n, void *arg UNUSED_PARAM)
|
||||
{
|
||||
struct ifaddrmsg *ifa = NLMSG_DATA(n);
|
||||
@ -349,8 +349,7 @@ static int print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
}
|
||||
|
||||
|
||||
struct nlmsg_list
|
||||
{
|
||||
struct nlmsg_list {
|
||||
struct nlmsg_list *next;
|
||||
struct nlmsghdr h;
|
||||
};
|
||||
@ -377,7 +376,7 @@ static int print_selected_addrinfo(int ifindex, struct nlmsg_list *ainfo)
|
||||
}
|
||||
|
||||
|
||||
static int store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
|
||||
static int FAST_FUNC store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
|
||||
{
|
||||
struct nlmsg_list **linfo = (struct nlmsg_list**)arg;
|
||||
struct nlmsg_list *h;
|
||||
|
@ -78,7 +78,7 @@ static unsigned get_hz(void)
|
||||
return hz_internal;
|
||||
}
|
||||
|
||||
static int print_route(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
struct nlmsghdr *n, void *arg UNUSED_PARAM)
|
||||
{
|
||||
struct rtmsg *r = NLMSG_DATA(n);
|
||||
|
@ -40,7 +40,7 @@ static void usage(void)
|
||||
}
|
||||
*/
|
||||
|
||||
static int print_rule(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
struct nlmsghdr *n, void *arg UNUSED_PARAM)
|
||||
{
|
||||
struct rtmsg *r = NLMSG_DATA(n);
|
||||
|
@ -104,7 +104,7 @@ int FAST_FUNC rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, in
|
||||
}
|
||||
|
||||
static int rtnl_dump_filter(struct rtnl_handle *rth,
|
||||
int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *n, void *),
|
||||
int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *n, void *) FAST_FUNC,
|
||||
void *arg1/*,
|
||||
int (*junk)(struct sockaddr_nl *, struct nlmsghdr *n, void *),
|
||||
void *arg2*/)
|
||||
@ -196,7 +196,7 @@ static int rtnl_dump_filter(struct rtnl_handle *rth,
|
||||
}
|
||||
|
||||
int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth,
|
||||
int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *, void *),
|
||||
int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *, void *) FAST_FUNC,
|
||||
void *arg1)
|
||||
{
|
||||
int ret = rtnl_dump_filter(rth, filter, arg1/*, NULL, NULL*/);
|
||||
@ -206,10 +206,10 @@ int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth,
|
||||
}
|
||||
|
||||
int FAST_FUNC rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
||||
pid_t peer, unsigned groups,
|
||||
struct nlmsghdr *answer,
|
||||
int (*junk)(struct sockaddr_nl *, struct nlmsghdr *, void *),
|
||||
void *jarg)
|
||||
pid_t peer, unsigned groups,
|
||||
struct nlmsghdr *answer,
|
||||
int (*junk)(struct sockaddr_nl *, struct nlmsghdr *, void *),
|
||||
void *jarg)
|
||||
{
|
||||
/* bbox doesn't use parameters no. 3, 4, 6, 7, they are stubbed out */
|
||||
#define peer 0
|
||||
|
@ -23,16 +23,16 @@ extern void rtnl_close(struct rtnl_handle *rth) FAST_FUNC;
|
||||
extern int xrtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) FAST_FUNC;
|
||||
extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) FAST_FUNC;
|
||||
extern int xrtnl_dump_filter(struct rtnl_handle *rth,
|
||||
int (*filter)(const struct sockaddr_nl*, struct nlmsghdr *n, void*),
|
||||
void *arg1) FAST_FUNC;
|
||||
int (*filter)(const struct sockaddr_nl*, struct nlmsghdr *n, void*) FAST_FUNC,
|
||||
void *arg1) FAST_FUNC;
|
||||
|
||||
/* bbox doesn't use parameters no. 3, 4, 6, 7, stub them out */
|
||||
#define rtnl_talk(rtnl, n, peer, groups, answer, junk, jarg) \
|
||||
rtnl_talk(rtnl, n, answer)
|
||||
extern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer,
|
||||
unsigned groups, struct nlmsghdr *answer,
|
||||
int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
|
||||
void *jarg) FAST_FUNC;
|
||||
unsigned groups, struct nlmsghdr *answer,
|
||||
int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
|
||||
void *jarg) FAST_FUNC;
|
||||
|
||||
extern int rtnl_send(struct rtnl_handle *rth, char *buf, int) FAST_FUNC;
|
||||
|
||||
|
@ -39,7 +39,7 @@ static struct idxmap *find_by_index(int idx)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
int FAST_FUNC ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
struct nlmsghdr *n,
|
||||
void *arg UNUSED_PARAM)
|
||||
{
|
||||
@ -86,7 +86,7 @@ int ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *ll_idx_n2a(int idx, char *buf)
|
||||
const char FAST_FUNC *ll_idx_n2a(int idx, char *buf)
|
||||
{
|
||||
struct idxmap *im;
|
||||
|
||||
@ -100,7 +100,7 @@ const char *ll_idx_n2a(int idx, char *buf)
|
||||
}
|
||||
|
||||
|
||||
const char *ll_index_to_name(int idx)
|
||||
const char FAST_FUNC *ll_index_to_name(int idx)
|
||||
{
|
||||
static char nbuf[16];
|
||||
|
||||
@ -121,7 +121,7 @@ int ll_index_to_type(int idx)
|
||||
}
|
||||
#endif
|
||||
|
||||
unsigned ll_index_to_flags(int idx)
|
||||
unsigned FAST_FUNC ll_index_to_flags(int idx)
|
||||
{
|
||||
struct idxmap *im;
|
||||
|
||||
@ -133,7 +133,7 @@ unsigned ll_index_to_flags(int idx)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int xll_name_to_index(const char *name)
|
||||
int FAST_FUNC xll_name_to_index(const char *name)
|
||||
{
|
||||
int ret = 0;
|
||||
int sock_fd;
|
||||
@ -192,7 +192,7 @@ int xll_name_to_index(const char *name)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ll_init_map(struct rtnl_handle *rth)
|
||||
int FAST_FUNC ll_init_map(struct rtnl_handle *rth)
|
||||
{
|
||||
xrtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK);
|
||||
xrtnl_dump_filter(rth, ll_remember_index, &idxmap);
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
|
||||
|
||||
int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg);
|
||||
int ll_init_map(struct rtnl_handle *rth);
|
||||
int xll_name_to_index(const char *name);
|
||||
const char *ll_index_to_name(int idx);
|
||||
const char *ll_idx_n2a(int idx, char *buf);
|
||||
int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) FAST_FUNC;
|
||||
int ll_init_map(struct rtnl_handle *rth) FAST_FUNC;
|
||||
int xll_name_to_index(const char *name) FAST_FUNC;
|
||||
const char *ll_index_to_name(int idx) FAST_FUNC;
|
||||
const char *ll_idx_n2a(int idx, char *buf) FAST_FUNC;
|
||||
/* int ll_index_to_type(int idx); */
|
||||
unsigned ll_index_to_flags(int idx);
|
||||
unsigned ll_index_to_flags(int idx) FAST_FUNC;
|
||||
|
||||
POP_SAVED_FUNCTION_VISIBILITY
|
||||
|
||||
|
@ -24,7 +24,7 @@ static inline uint64_t hton64(uint64_t v)
|
||||
|
||||
|
||||
/* on these functions, make sure your datatype matches */
|
||||
static int read_ip(const char *line, void *arg)
|
||||
static int FAST_FUNC read_ip(const char *line, void *arg)
|
||||
{
|
||||
len_and_sockaddr *lsa;
|
||||
|
||||
@ -37,13 +37,13 @@ static int read_ip(const char *line, void *arg)
|
||||
}
|
||||
|
||||
|
||||
static int read_mac(const char *line, void *arg)
|
||||
static int FAST_FUNC read_mac(const char *line, void *arg)
|
||||
{
|
||||
return NULL == ether_aton_r(line, (struct ether_addr *)arg);
|
||||
}
|
||||
|
||||
|
||||
static int read_str(const char *line, void *arg)
|
||||
static int FAST_FUNC read_str(const char *line, void *arg)
|
||||
{
|
||||
char **dest = arg;
|
||||
|
||||
@ -53,14 +53,14 @@ static int read_str(const char *line, void *arg)
|
||||
}
|
||||
|
||||
|
||||
static int read_u32(const char *line, void *arg)
|
||||
static int FAST_FUNC read_u32(const char *line, void *arg)
|
||||
{
|
||||
*(uint32_t*)arg = bb_strtou32(line, NULL, 10);
|
||||
return errno == 0;
|
||||
}
|
||||
|
||||
|
||||
static int read_yn(const char *line, void *arg)
|
||||
static int FAST_FUNC read_yn(const char *line, void *arg)
|
||||
{
|
||||
char *dest = arg;
|
||||
|
||||
@ -156,7 +156,7 @@ static void attach_option(struct option_set **opt_list,
|
||||
|
||||
|
||||
/* read a dhcp option and add it to opt_list */
|
||||
static int read_opt(const char *const_line, void *arg)
|
||||
static int FAST_FUNC read_opt(const char *const_line, void *arg)
|
||||
{
|
||||
struct option_set **opt_list = arg;
|
||||
char *opt, *val, *endptr;
|
||||
@ -251,7 +251,7 @@ static int read_opt(const char *const_line, void *arg)
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int read_staticlease(const char *const_line, void *arg)
|
||||
static int FAST_FUNC read_staticlease(const char *const_line, void *arg)
|
||||
{
|
||||
char *line;
|
||||
char *mac_string;
|
||||
@ -278,7 +278,7 @@ static int read_staticlease(const char *const_line, void *arg)
|
||||
|
||||
struct config_keyword {
|
||||
const char *keyword;
|
||||
int (*handler)(const char *line, void *var);
|
||||
int (*handler)(const char *line, void *var) FAST_FUNC;
|
||||
void *var;
|
||||
const char *def;
|
||||
};
|
||||
|
Reference in New Issue
Block a user