aboutsummaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-06-05 12:06:05 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-06-05 12:06:05 +0200
commitd5f1b1bbe0a881f66b6bb6951fa54e553002c24d (patch)
treea3da20d19fa86c77e63c08f01d052b196cb1b192 /networking
parent8507e1f10927bc6498cf38eb8324a53bde8e0a61 (diff)
downloadbusybox-w32-d5f1b1bbe0a881f66b6bb6951fa54e553002c24d.tar.gz
busybox-w32-d5f1b1bbe0a881f66b6bb6951fa54e553002c24d.tar.bz2
busybox-w32-d5f1b1bbe0a881f66b6bb6951fa54e553002c24d.zip
*: 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>
Diffstat (limited to 'networking')
-rw-r--r--networking/ifupdown.c51
-rw-r--r--networking/inetd.c44
-rw-r--r--networking/libiproute/ipaddress.c7
-rw-r--r--networking/libiproute/iproute.c2
-rw-r--r--networking/libiproute/iprule.c2
-rw-r--r--networking/libiproute/libnetlink.c12
-rw-r--r--networking/libiproute/libnetlink.h10
-rw-r--r--networking/libiproute/ll_map.c12
-rw-r--r--networking/libiproute/ll_map.h12
-rw-r--r--networking/udhcp/files.c16
10 files changed, 83 insertions, 85 deletions
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 604a216d4..6d608105e 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -42,8 +42,8 @@ typedef int execfn(char *command);
42 42
43struct method_t { 43struct method_t {
44 const char *name; 44 const char *name;
45 int (*up)(struct interface_defn_t *ifd, execfn *e); 45 int (*up)(struct interface_defn_t *ifd, execfn *e) FAST_FUNC;
46 int (*down)(struct interface_defn_t *ifd, execfn *e); 46 int (*down)(struct interface_defn_t *ifd, execfn *e) FAST_FUNC;
47}; 47};
48 48
49struct address_family_t { 49struct address_family_t {
@@ -325,7 +325,7 @@ static int execute(const char *command, struct interface_defn_t *ifd, execfn *ex
325#endif 325#endif
326 326
327#if ENABLE_FEATURE_IFUPDOWN_IPV6 327#if ENABLE_FEATURE_IFUPDOWN_IPV6
328static int loopback_up6(struct interface_defn_t *ifd, execfn *exec) 328static int FAST_FUNC loopback_up6(struct interface_defn_t *ifd, execfn *exec)
329{ 329{
330#if ENABLE_FEATURE_IFUPDOWN_IP 330#if ENABLE_FEATURE_IFUPDOWN_IP
331 int result; 331 int result;
@@ -337,7 +337,7 @@ static int loopback_up6(struct interface_defn_t *ifd, execfn *exec)
337#endif 337#endif
338} 338}
339 339
340static int loopback_down6(struct interface_defn_t *ifd, execfn *exec) 340static int FAST_FUNC loopback_down6(struct interface_defn_t *ifd, execfn *exec)
341{ 341{
342#if ENABLE_FEATURE_IFUPDOWN_IP 342#if ENABLE_FEATURE_IFUPDOWN_IP
343 return execute("ip link set %iface% down", ifd, exec); 343 return execute("ip link set %iface% down", ifd, exec);
@@ -346,7 +346,7 @@ static int loopback_down6(struct interface_defn_t *ifd, execfn *exec)
346#endif 346#endif
347} 347}
348 348
349static int static_up6(struct interface_defn_t *ifd, execfn *exec) 349static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec)
350{ 350{
351 int result; 351 int result;
352#if ENABLE_FEATURE_IFUPDOWN_IP 352#if ENABLE_FEATURE_IFUPDOWN_IP
@@ -362,7 +362,7 @@ static int static_up6(struct interface_defn_t *ifd, execfn *exec)
362 return ((result == 3) ? 3 : 0); 362 return ((result == 3) ? 3 : 0);
363} 363}
364 364
365static int static_down6(struct interface_defn_t *ifd, execfn *exec) 365static int FAST_FUNC static_down6(struct interface_defn_t *ifd, execfn *exec)
366{ 366{
367#if ENABLE_FEATURE_IFUPDOWN_IP 367#if ENABLE_FEATURE_IFUPDOWN_IP
368 return execute("ip link set %iface% down", ifd, exec); 368 return execute("ip link set %iface% down", ifd, exec);
@@ -372,7 +372,7 @@ static int static_down6(struct interface_defn_t *ifd, execfn *exec)
372} 372}
373 373
374#if ENABLE_FEATURE_IFUPDOWN_IP 374#if ENABLE_FEATURE_IFUPDOWN_IP
375static int v4tunnel_up(struct interface_defn_t *ifd, execfn *exec) 375static int FAST_FUNC v4tunnel_up(struct interface_defn_t *ifd, execfn *exec)
376{ 376{
377 int result; 377 int result;
378 result = execute("ip tunnel add %iface% mode sit remote " 378 result = execute("ip tunnel add %iface% mode sit remote "
@@ -383,7 +383,7 @@ static int v4tunnel_up(struct interface_defn_t *ifd, execfn *exec)
383 return ((result == 4) ? 4 : 0); 383 return ((result == 4) ? 4 : 0);
384} 384}
385 385
386static int v4tunnel_down(struct interface_defn_t * ifd, execfn * exec) 386static int FAST_FUNC v4tunnel_down(struct interface_defn_t * ifd, execfn * exec)
387{ 387{
388 return execute("ip tunnel del %iface%", ifd, exec); 388 return execute("ip tunnel del %iface%", ifd, exec);
389} 389}
@@ -405,7 +405,7 @@ static const struct address_family_t addr_inet6 = {
405#endif /* FEATURE_IFUPDOWN_IPV6 */ 405#endif /* FEATURE_IFUPDOWN_IPV6 */
406 406
407#if ENABLE_FEATURE_IFUPDOWN_IPV4 407#if ENABLE_FEATURE_IFUPDOWN_IPV4
408static int loopback_up(struct interface_defn_t *ifd, execfn *exec) 408static int FAST_FUNC loopback_up(struct interface_defn_t *ifd, execfn *exec)
409{ 409{
410#if ENABLE_FEATURE_IFUPDOWN_IP 410#if ENABLE_FEATURE_IFUPDOWN_IP
411 int result; 411 int result;
@@ -417,7 +417,7 @@ static int loopback_up(struct interface_defn_t *ifd, execfn *exec)
417#endif 417#endif
418} 418}
419 419
420static int loopback_down(struct interface_defn_t *ifd, execfn *exec) 420static int FAST_FUNC loopback_down(struct interface_defn_t *ifd, execfn *exec)
421{ 421{
422#if ENABLE_FEATURE_IFUPDOWN_IP 422#if ENABLE_FEATURE_IFUPDOWN_IP
423 int result; 423 int result;
@@ -429,7 +429,7 @@ static int loopback_down(struct interface_defn_t *ifd, execfn *exec)
429#endif 429#endif
430} 430}
431 431
432static int static_up(struct interface_defn_t *ifd, execfn *exec) 432static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec)
433{ 433{
434 int result; 434 int result;
435#if ENABLE_FEATURE_IFUPDOWN_IP 435#if ENABLE_FEATURE_IFUPDOWN_IP
@@ -451,7 +451,7 @@ static int static_up(struct interface_defn_t *ifd, execfn *exec)
451#endif 451#endif
452} 452}
453 453
454static int static_down(struct interface_defn_t *ifd, execfn *exec) 454static int FAST_FUNC static_down(struct interface_defn_t *ifd, execfn *exec)
455{ 455{
456 int result; 456 int result;
457#if ENABLE_FEATURE_IFUPDOWN_IP 457#if ENABLE_FEATURE_IFUPDOWN_IP
@@ -468,8 +468,7 @@ static int static_down(struct interface_defn_t *ifd, execfn *exec)
468} 468}
469 469
470#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP 470#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
471struct dhcp_client_t 471struct dhcp_client_t {
472{
473 const char *name; 472 const char *name;
474 const char *startcmd; 473 const char *startcmd;
475 const char *stopcmd; 474 const char *stopcmd;
@@ -497,7 +496,7 @@ static const struct dhcp_client_t ext_dhcp_clients[] = {
497#endif /* ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCPC */ 496#endif /* ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCPC */
498 497
499#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP 498#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
500static int dhcp_up(struct interface_defn_t *ifd, execfn *exec) 499static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd, execfn *exec)
501{ 500{
502 unsigned i; 501 unsigned i;
503#if ENABLE_FEATURE_IFUPDOWN_IP 502#if ENABLE_FEATURE_IFUPDOWN_IP
@@ -517,7 +516,7 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
517 return 0; 516 return 0;
518} 517}
519#elif ENABLE_APP_UDHCPC 518#elif ENABLE_APP_UDHCPC
520static int dhcp_up(struct interface_defn_t *ifd, execfn *exec) 519static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd, execfn *exec)
521{ 520{
522#if ENABLE_FEATURE_IFUPDOWN_IP 521#if ENABLE_FEATURE_IFUPDOWN_IP
523 /* ip doesn't up iface when it configures it (unlike ifconfig) */ 522 /* 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)
533 ifd, exec); 532 ifd, exec);
534} 533}
535#else 534#else
536static int dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM, 535static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM,
537 execfn *exec UNUSED_PARAM) 536 execfn *exec UNUSED_PARAM)
538{ 537{
539 return 0; /* no dhcp support */ 538 return 0; /* no dhcp support */
@@ -541,7 +540,7 @@ static int dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM,
541#endif 540#endif
542 541
543#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP 542#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
544static int dhcp_down(struct interface_defn_t *ifd, execfn *exec) 543static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec)
545{ 544{
546 int result = 0; 545 int result = 0;
547 unsigned i; 546 unsigned i;
@@ -564,7 +563,7 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
564 return ((result == 3) ? 3 : 0); 563 return ((result == 3) ? 3 : 0);
565} 564}
566#elif ENABLE_APP_UDHCPC 565#elif ENABLE_APP_UDHCPC
567static int dhcp_down(struct interface_defn_t *ifd, execfn *exec) 566static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec)
568{ 567{
569 int result; 568 int result;
570 result = execute("kill " 569 result = execute("kill "
@@ -579,42 +578,42 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
579 return ((result == 3) ? 3 : 0); 578 return ((result == 3) ? 3 : 0);
580} 579}
581#else 580#else
582static int dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM, 581static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM,
583 execfn *exec UNUSED_PARAM) 582 execfn *exec UNUSED_PARAM)
584{ 583{
585 return 0; /* no dhcp support */ 584 return 0; /* no dhcp support */
586} 585}
587#endif 586#endif
588 587
589static int manual_up_down(struct interface_defn_t *ifd UNUSED_PARAM, execfn *exec UNUSED_PARAM) 588static int FAST_FUNC manual_up_down(struct interface_defn_t *ifd UNUSED_PARAM, execfn *exec UNUSED_PARAM)
590{ 589{
591 return 1; 590 return 1;
592} 591}
593 592
594static int bootp_up(struct interface_defn_t *ifd, execfn *exec) 593static int FAST_FUNC bootp_up(struct interface_defn_t *ifd, execfn *exec)
595{ 594{
596 return execute("bootpc[[ --bootfile %bootfile%]] --dev %iface%" 595 return execute("bootpc[[ --bootfile %bootfile%]] --dev %iface%"
597 "[[ --server %server%]][[ --hwaddr %hwaddr%]]" 596 "[[ --server %server%]][[ --hwaddr %hwaddr%]]"
598 " --returniffail --serverbcast", ifd, exec); 597 " --returniffail --serverbcast", ifd, exec);
599} 598}
600 599
601static int ppp_up(struct interface_defn_t *ifd, execfn *exec) 600static int FAST_FUNC ppp_up(struct interface_defn_t *ifd, execfn *exec)
602{ 601{
603 return execute("pon[[ %provider%]]", ifd, exec); 602 return execute("pon[[ %provider%]]", ifd, exec);
604} 603}
605 604
606static int ppp_down(struct interface_defn_t *ifd, execfn *exec) 605static int FAST_FUNC ppp_down(struct interface_defn_t *ifd, execfn *exec)
607{ 606{
608 return execute("poff[[ %provider%]]", ifd, exec); 607 return execute("poff[[ %provider%]]", ifd, exec);
609} 608}
610 609
611static int wvdial_up(struct interface_defn_t *ifd, execfn *exec) 610static int FAST_FUNC wvdial_up(struct interface_defn_t *ifd, execfn *exec)
612{ 611{
613 return execute("start-stop-daemon --start -x wvdial " 612 return execute("start-stop-daemon --start -x wvdial "
614 "-p /var/run/wvdial.%iface% -b -m --[[ %provider%]]", ifd, exec); 613 "-p /var/run/wvdial.%iface% -b -m --[[ %provider%]]", ifd, exec);
615} 614}
616 615
617static int wvdial_down(struct interface_defn_t *ifd, execfn *exec) 616static int FAST_FUNC wvdial_down(struct interface_defn_t *ifd, execfn *exec)
618{ 617{
619 return execute("start-stop-daemon --stop -x wvdial " 618 return execute("start-stop-daemon --stop -x wvdial "
620 "-p /var/run/wvdial.%iface% -s 2", ifd, exec); 619 "-p /var/run/wvdial.%iface% -s 2", ifd, exec);
diff --git a/networking/inetd.c b/networking/inetd.c
index 751010bc8..031edc397 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -239,36 +239,36 @@ typedef struct servtab_t {
239#ifdef INETD_BUILTINS_ENABLED 239#ifdef INETD_BUILTINS_ENABLED
240/* Echo received data */ 240/* Echo received data */
241#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO 241#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
242static void echo_stream(int, servtab_t *); 242static void FAST_FUNC echo_stream(int, servtab_t *);
243static void echo_dg(int, servtab_t *); 243static void FAST_FUNC echo_dg(int, servtab_t *);
244#endif 244#endif
245/* Internet /dev/null */ 245/* Internet /dev/null */
246#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD 246#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
247static void discard_stream(int, servtab_t *); 247static void FAST_FUNC discard_stream(int, servtab_t *);
248static void discard_dg(int, servtab_t *); 248static void FAST_FUNC discard_dg(int, servtab_t *);
249#endif 249#endif
250/* Return 32 bit time since 1900 */ 250/* Return 32 bit time since 1900 */
251#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_TIME 251#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_TIME
252static void machtime_stream(int, servtab_t *); 252static void FAST_FUNC machtime_stream(int, servtab_t *);
253static void machtime_dg(int, servtab_t *); 253static void FAST_FUNC machtime_dg(int, servtab_t *);
254#endif 254#endif
255/* Return human-readable time */ 255/* Return human-readable time */
256#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME 256#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
257static void daytime_stream(int, servtab_t *); 257static void FAST_FUNC daytime_stream(int, servtab_t *);
258static void daytime_dg(int, servtab_t *); 258static void FAST_FUNC daytime_dg(int, servtab_t *);
259#endif 259#endif
260/* Familiar character generator */ 260/* Familiar character generator */
261#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN 261#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
262static void chargen_stream(int, servtab_t *); 262static void FAST_FUNC chargen_stream(int, servtab_t *);
263static void chargen_dg(int, servtab_t *); 263static void FAST_FUNC chargen_dg(int, servtab_t *);
264#endif 264#endif
265 265
266struct builtin { 266struct builtin {
267 /* NB: not necessarily NUL terminated */ 267 /* NB: not necessarily NUL terminated */
268 char bi_service7[7]; /* internally provided service name */ 268 char bi_service7[7]; /* internally provided service name */
269 uint8_t bi_fork; /* 1 if stream fn should run in child */ 269 uint8_t bi_fork; /* 1 if stream fn should run in child */
270 void (*bi_stream_fn)(int, servtab_t *); 270 void (*bi_stream_fn)(int, servtab_t *) FAST_FUNC;
271 void (*bi_dgram_fn)(int, servtab_t *); 271 void (*bi_dgram_fn)(int, servtab_t *) FAST_FUNC;
272}; 272};
273 273
274static const struct builtin builtins[] = { 274static const struct builtin builtins[] = {
@@ -1386,7 +1386,7 @@ static const char *const cat_args[] = { "cat", NULL };
1386#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO 1386#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
1387/* Echo service -- echo data back. */ 1387/* Echo service -- echo data back. */
1388/* ARGSUSED */ 1388/* ARGSUSED */
1389static void echo_stream(int s, servtab_t *sep UNUSED_PARAM) 1389static void FAST_FUNC echo_stream(int s, servtab_t *sep UNUSED_PARAM)
1390{ 1390{
1391#if BB_MMU 1391#if BB_MMU
1392 while (1) { 1392 while (1) {
@@ -1407,7 +1407,7 @@ static void echo_stream(int s, servtab_t *sep UNUSED_PARAM)
1407 /* on failure we return to main, which does exit(EXIT_FAILURE) */ 1407 /* on failure we return to main, which does exit(EXIT_FAILURE) */
1408#endif 1408#endif
1409} 1409}
1410static void echo_dg(int s, servtab_t *sep) 1410static void FAST_FUNC echo_dg(int s, servtab_t *sep)
1411{ 1411{
1412 enum { BUFSIZE = 12*1024 }; /* for jumbo sized packets! :) */ 1412 enum { BUFSIZE = 12*1024 }; /* for jumbo sized packets! :) */
1413 char *buf = xmalloc(BUFSIZE); /* too big for stack */ 1413 char *buf = xmalloc(BUFSIZE); /* too big for stack */
@@ -1427,7 +1427,7 @@ static void echo_dg(int s, servtab_t *sep)
1427#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD 1427#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
1428/* Discard service -- ignore data. */ 1428/* Discard service -- ignore data. */
1429/* ARGSUSED */ 1429/* ARGSUSED */
1430static void discard_stream(int s, servtab_t *sep UNUSED_PARAM) 1430static void FAST_FUNC discard_stream(int s, servtab_t *sep UNUSED_PARAM)
1431{ 1431{
1432#if BB_MMU 1432#if BB_MMU
1433 while (safe_read(s, line, LINE_SIZE) > 0) 1433 while (safe_read(s, line, LINE_SIZE) > 0)
@@ -1446,7 +1446,7 @@ static void discard_stream(int s, servtab_t *sep UNUSED_PARAM)
1446#endif 1446#endif
1447} 1447}
1448/* ARGSUSED */ 1448/* ARGSUSED */
1449static void discard_dg(int s, servtab_t *sep UNUSED_PARAM) 1449static void FAST_FUNC discard_dg(int s, servtab_t *sep UNUSED_PARAM)
1450{ 1450{
1451 /* dgram builtins are non-forking - DONT BLOCK! */ 1451 /* dgram builtins are non-forking - DONT BLOCK! */
1452 recv(s, line, LINE_SIZE, MSG_DONTWAIT); 1452 recv(s, line, LINE_SIZE, MSG_DONTWAIT);
@@ -1467,7 +1467,7 @@ static void init_ring(void)
1467} 1467}
1468/* Character generator. MMU arches only. */ 1468/* Character generator. MMU arches only. */
1469/* ARGSUSED */ 1469/* ARGSUSED */
1470static void chargen_stream(int s, servtab_t *sep UNUSED_PARAM) 1470static void FAST_FUNC chargen_stream(int s, servtab_t *sep UNUSED_PARAM)
1471{ 1471{
1472 char *rs; 1472 char *rs;
1473 int len; 1473 int len;
@@ -1495,7 +1495,7 @@ static void chargen_stream(int s, servtab_t *sep UNUSED_PARAM)
1495 } 1495 }
1496} 1496}
1497/* ARGSUSED */ 1497/* ARGSUSED */
1498static void chargen_dg(int s, servtab_t *sep) 1498static void FAST_FUNC chargen_dg(int s, servtab_t *sep)
1499{ 1499{
1500 int len; 1500 int len;
1501 char text[LINESIZ + 2]; 1501 char text[LINESIZ + 2];
@@ -1544,14 +1544,14 @@ static uint32_t machtime(void)
1544 return htonl((uint32_t)(tv.tv_sec + 2208988800)); 1544 return htonl((uint32_t)(tv.tv_sec + 2208988800));
1545} 1545}
1546/* ARGSUSED */ 1546/* ARGSUSED */
1547static void machtime_stream(int s, servtab_t *sep UNUSED_PARAM) 1547static void FAST_FUNC machtime_stream(int s, servtab_t *sep UNUSED_PARAM)
1548{ 1548{
1549 uint32_t result; 1549 uint32_t result;
1550 1550
1551 result = machtime(); 1551 result = machtime();
1552 full_write(s, &result, sizeof(result)); 1552 full_write(s, &result, sizeof(result));
1553} 1553}
1554static void machtime_dg(int s, servtab_t *sep) 1554static void FAST_FUNC machtime_dg(int s, servtab_t *sep)
1555{ 1555{
1556 uint32_t result; 1556 uint32_t result;
1557 len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len); 1557 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)
1569#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME 1569#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
1570/* Return human-readable time of day */ 1570/* Return human-readable time of day */
1571/* ARGSUSED */ 1571/* ARGSUSED */
1572static void daytime_stream(int s, servtab_t *sep UNUSED_PARAM) 1572static void FAST_FUNC daytime_stream(int s, servtab_t *sep UNUSED_PARAM)
1573{ 1573{
1574 time_t t; 1574 time_t t;
1575 1575
1576 t = time(NULL); 1576 t = time(NULL);
1577 fdprintf(s, "%.24s\r\n", ctime(&t)); 1577 fdprintf(s, "%.24s\r\n", ctime(&t));
1578} 1578}
1579static void daytime_dg(int s, servtab_t *sep) 1579static void FAST_FUNC daytime_dg(int s, servtab_t *sep)
1580{ 1580{
1581 time_t t; 1581 time_t t;
1582 len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len); 1582 len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len);
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c
index 644874f46..d042af07b 100644
--- a/networking/libiproute/ipaddress.c
+++ b/networking/libiproute/ipaddress.c
@@ -196,7 +196,7 @@ static int flush_update(void)
196 return 0; 196 return 0;
197} 197}
198 198
199static int print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM, 199static int FAST_FUNC print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM,
200 struct nlmsghdr *n, void *arg UNUSED_PARAM) 200 struct nlmsghdr *n, void *arg UNUSED_PARAM)
201{ 201{
202 struct ifaddrmsg *ifa = NLMSG_DATA(n); 202 struct ifaddrmsg *ifa = NLMSG_DATA(n);
@@ -349,8 +349,7 @@ static int print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM,
349} 349}
350 350
351 351
352struct nlmsg_list 352struct nlmsg_list {
353{
354 struct nlmsg_list *next; 353 struct nlmsg_list *next;
355 struct nlmsghdr h; 354 struct nlmsghdr h;
356}; 355};
@@ -377,7 +376,7 @@ static int print_selected_addrinfo(int ifindex, struct nlmsg_list *ainfo)
377} 376}
378 377
379 378
380static int store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) 379static int FAST_FUNC store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
381{ 380{
382 struct nlmsg_list **linfo = (struct nlmsg_list**)arg; 381 struct nlmsg_list **linfo = (struct nlmsg_list**)arg;
383 struct nlmsg_list *h; 382 struct nlmsg_list *h;
diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
index 37859525d..ac7eec598 100644
--- a/networking/libiproute/iproute.c
+++ b/networking/libiproute/iproute.c
@@ -78,7 +78,7 @@ static unsigned get_hz(void)
78 return hz_internal; 78 return hz_internal;
79} 79}
80 80
81static int print_route(const struct sockaddr_nl *who UNUSED_PARAM, 81static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
82 struct nlmsghdr *n, void *arg UNUSED_PARAM) 82 struct nlmsghdr *n, void *arg UNUSED_PARAM)
83{ 83{
84 struct rtmsg *r = NLMSG_DATA(n); 84 struct rtmsg *r = NLMSG_DATA(n);
diff --git a/networking/libiproute/iprule.c b/networking/libiproute/iprule.c
index 6c90c6d21..bec530dcb 100644
--- a/networking/libiproute/iprule.c
+++ b/networking/libiproute/iprule.c
@@ -40,7 +40,7 @@ static void usage(void)
40} 40}
41*/ 41*/
42 42
43static int print_rule(const struct sockaddr_nl *who UNUSED_PARAM, 43static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM,
44 struct nlmsghdr *n, void *arg UNUSED_PARAM) 44 struct nlmsghdr *n, void *arg UNUSED_PARAM)
45{ 45{
46 struct rtmsg *r = NLMSG_DATA(n); 46 struct rtmsg *r = NLMSG_DATA(n);
diff --git a/networking/libiproute/libnetlink.c b/networking/libiproute/libnetlink.c
index 7ad2de9fa..b4cc8dfa4 100644
--- a/networking/libiproute/libnetlink.c
+++ b/networking/libiproute/libnetlink.c
@@ -104,7 +104,7 @@ int FAST_FUNC rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, in
104} 104}
105 105
106static int rtnl_dump_filter(struct rtnl_handle *rth, 106static int rtnl_dump_filter(struct rtnl_handle *rth,
107 int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *n, void *), 107 int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *n, void *) FAST_FUNC,
108 void *arg1/*, 108 void *arg1/*,
109 int (*junk)(struct sockaddr_nl *, struct nlmsghdr *n, void *), 109 int (*junk)(struct sockaddr_nl *, struct nlmsghdr *n, void *),
110 void *arg2*/) 110 void *arg2*/)
@@ -196,7 +196,7 @@ static int rtnl_dump_filter(struct rtnl_handle *rth,
196} 196}
197 197
198int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth, 198int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth,
199 int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *, void *), 199 int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *, void *) FAST_FUNC,
200 void *arg1) 200 void *arg1)
201{ 201{
202 int ret = rtnl_dump_filter(rth, filter, arg1/*, NULL, NULL*/); 202 int ret = rtnl_dump_filter(rth, filter, arg1/*, NULL, NULL*/);
@@ -206,10 +206,10 @@ int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth,
206} 206}
207 207
208int FAST_FUNC rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, 208int FAST_FUNC rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
209 pid_t peer, unsigned groups, 209 pid_t peer, unsigned groups,
210 struct nlmsghdr *answer, 210 struct nlmsghdr *answer,
211 int (*junk)(struct sockaddr_nl *, struct nlmsghdr *, void *), 211 int (*junk)(struct sockaddr_nl *, struct nlmsghdr *, void *),
212 void *jarg) 212 void *jarg)
213{ 213{
214/* bbox doesn't use parameters no. 3, 4, 6, 7, they are stubbed out */ 214/* bbox doesn't use parameters no. 3, 4, 6, 7, they are stubbed out */
215#define peer 0 215#define peer 0
diff --git a/networking/libiproute/libnetlink.h b/networking/libiproute/libnetlink.h
index 11a4a100a..41ecfa6d0 100644
--- a/networking/libiproute/libnetlink.h
+++ b/networking/libiproute/libnetlink.h
@@ -23,16 +23,16 @@ extern void rtnl_close(struct rtnl_handle *rth) FAST_FUNC;
23extern int xrtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) FAST_FUNC; 23extern int xrtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) FAST_FUNC;
24extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) FAST_FUNC; 24extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) FAST_FUNC;
25extern int xrtnl_dump_filter(struct rtnl_handle *rth, 25extern int xrtnl_dump_filter(struct rtnl_handle *rth,
26 int (*filter)(const struct sockaddr_nl*, struct nlmsghdr *n, void*), 26 int (*filter)(const struct sockaddr_nl*, struct nlmsghdr *n, void*) FAST_FUNC,
27 void *arg1) FAST_FUNC; 27 void *arg1) FAST_FUNC;
28 28
29/* bbox doesn't use parameters no. 3, 4, 6, 7, stub them out */ 29/* bbox doesn't use parameters no. 3, 4, 6, 7, stub them out */
30#define rtnl_talk(rtnl, n, peer, groups, answer, junk, jarg) \ 30#define rtnl_talk(rtnl, n, peer, groups, answer, junk, jarg) \
31 rtnl_talk(rtnl, n, answer) 31 rtnl_talk(rtnl, n, answer)
32extern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, 32extern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer,
33 unsigned groups, struct nlmsghdr *answer, 33 unsigned groups, struct nlmsghdr *answer,
34 int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *), 34 int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
35 void *jarg) FAST_FUNC; 35 void *jarg) FAST_FUNC;
36 36
37extern int rtnl_send(struct rtnl_handle *rth, char *buf, int) FAST_FUNC; 37extern int rtnl_send(struct rtnl_handle *rth, char *buf, int) FAST_FUNC;
38 38
diff --git a/networking/libiproute/ll_map.c b/networking/libiproute/ll_map.c
index 951496f4d..62528cc83 100644
--- a/networking/libiproute/ll_map.c
+++ b/networking/libiproute/ll_map.c
@@ -39,7 +39,7 @@ static struct idxmap *find_by_index(int idx)
39 return NULL; 39 return NULL;
40} 40}
41 41
42int ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM, 42int FAST_FUNC ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM,
43 struct nlmsghdr *n, 43 struct nlmsghdr *n,
44 void *arg UNUSED_PARAM) 44 void *arg UNUSED_PARAM)
45{ 45{
@@ -86,7 +86,7 @@ int ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM,
86 return 0; 86 return 0;
87} 87}
88 88
89const char *ll_idx_n2a(int idx, char *buf) 89const char FAST_FUNC *ll_idx_n2a(int idx, char *buf)
90{ 90{
91 struct idxmap *im; 91 struct idxmap *im;
92 92
@@ -100,7 +100,7 @@ const char *ll_idx_n2a(int idx, char *buf)
100} 100}
101 101
102 102
103const char *ll_index_to_name(int idx) 103const char FAST_FUNC *ll_index_to_name(int idx)
104{ 104{
105 static char nbuf[16]; 105 static char nbuf[16];
106 106
@@ -121,7 +121,7 @@ int ll_index_to_type(int idx)
121} 121}
122#endif 122#endif
123 123
124unsigned ll_index_to_flags(int idx) 124unsigned FAST_FUNC ll_index_to_flags(int idx)
125{ 125{
126 struct idxmap *im; 126 struct idxmap *im;
127 127
@@ -133,7 +133,7 @@ unsigned ll_index_to_flags(int idx)
133 return 0; 133 return 0;
134} 134}
135 135
136int xll_name_to_index(const char *name) 136int FAST_FUNC xll_name_to_index(const char *name)
137{ 137{
138 int ret = 0; 138 int ret = 0;
139 int sock_fd; 139 int sock_fd;
@@ -192,7 +192,7 @@ int xll_name_to_index(const char *name)
192 return ret; 192 return ret;
193} 193}
194 194
195int ll_init_map(struct rtnl_handle *rth) 195int FAST_FUNC ll_init_map(struct rtnl_handle *rth)
196{ 196{
197 xrtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK); 197 xrtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK);
198 xrtnl_dump_filter(rth, ll_remember_index, &idxmap); 198 xrtnl_dump_filter(rth, ll_remember_index, &idxmap);
diff --git a/networking/libiproute/ll_map.h b/networking/libiproute/ll_map.h
index b183cd6c6..c5d383422 100644
--- a/networking/libiproute/ll_map.h
+++ b/networking/libiproute/ll_map.h
@@ -4,13 +4,13 @@
4 4
5PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN 5PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
6 6
7int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg); 7int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) FAST_FUNC;
8int ll_init_map(struct rtnl_handle *rth); 8int ll_init_map(struct rtnl_handle *rth) FAST_FUNC;
9int xll_name_to_index(const char *name); 9int xll_name_to_index(const char *name) FAST_FUNC;
10const char *ll_index_to_name(int idx); 10const char *ll_index_to_name(int idx) FAST_FUNC;
11const char *ll_idx_n2a(int idx, char *buf); 11const char *ll_idx_n2a(int idx, char *buf) FAST_FUNC;
12/* int ll_index_to_type(int idx); */ 12/* int ll_index_to_type(int idx); */
13unsigned ll_index_to_flags(int idx); 13unsigned ll_index_to_flags(int idx) FAST_FUNC;
14 14
15POP_SAVED_FUNCTION_VISIBILITY 15POP_SAVED_FUNCTION_VISIBILITY
16 16
diff --git a/networking/udhcp/files.c b/networking/udhcp/files.c
index b13897608..af7730890 100644
--- a/networking/udhcp/files.c
+++ b/networking/udhcp/files.c
@@ -24,7 +24,7 @@ static inline uint64_t hton64(uint64_t v)
24 24
25 25
26/* on these functions, make sure your datatype matches */ 26/* on these functions, make sure your datatype matches */
27static int read_ip(const char *line, void *arg) 27static int FAST_FUNC read_ip(const char *line, void *arg)
28{ 28{
29 len_and_sockaddr *lsa; 29 len_and_sockaddr *lsa;
30 30
@@ -37,13 +37,13 @@ static int read_ip(const char *line, void *arg)
37} 37}
38 38
39 39
40static int read_mac(const char *line, void *arg) 40static int FAST_FUNC read_mac(const char *line, void *arg)
41{ 41{
42 return NULL == ether_aton_r(line, (struct ether_addr *)arg); 42 return NULL == ether_aton_r(line, (struct ether_addr *)arg);
43} 43}
44 44
45 45
46static int read_str(const char *line, void *arg) 46static int FAST_FUNC read_str(const char *line, void *arg)
47{ 47{
48 char **dest = arg; 48 char **dest = arg;
49 49
@@ -53,14 +53,14 @@ static int read_str(const char *line, void *arg)
53} 53}
54 54
55 55
56static int read_u32(const char *line, void *arg) 56static int FAST_FUNC read_u32(const char *line, void *arg)
57{ 57{
58 *(uint32_t*)arg = bb_strtou32(line, NULL, 10); 58 *(uint32_t*)arg = bb_strtou32(line, NULL, 10);
59 return errno == 0; 59 return errno == 0;
60} 60}
61 61
62 62
63static int read_yn(const char *line, void *arg) 63static int FAST_FUNC read_yn(const char *line, void *arg)
64{ 64{
65 char *dest = arg; 65 char *dest = arg;
66 66
@@ -156,7 +156,7 @@ static void attach_option(struct option_set **opt_list,
156 156
157 157
158/* read a dhcp option and add it to opt_list */ 158/* read a dhcp option and add it to opt_list */
159static int read_opt(const char *const_line, void *arg) 159static int FAST_FUNC read_opt(const char *const_line, void *arg)
160{ 160{
161 struct option_set **opt_list = arg; 161 struct option_set **opt_list = arg;
162 char *opt, *val, *endptr; 162 char *opt, *val, *endptr;
@@ -251,7 +251,7 @@ static int read_opt(const char *const_line, void *arg)
251 return retval; 251 return retval;
252} 252}
253 253
254static int read_staticlease(const char *const_line, void *arg) 254static int FAST_FUNC read_staticlease(const char *const_line, void *arg)
255{ 255{
256 char *line; 256 char *line;
257 char *mac_string; 257 char *mac_string;
@@ -278,7 +278,7 @@ static int read_staticlease(const char *const_line, void *arg)
278 278
279struct config_keyword { 279struct config_keyword {
280 const char *keyword; 280 const char *keyword;
281 int (*handler)(const char *line, void *var); 281 int (*handler)(const char *line, void *var) FAST_FUNC;
282 void *var; 282 void *var;
283 const char *def; 283 const char *def;
284}; 284};