libbb: introduce and use print_flags().

Mostly by Natanael Copa <natanael.copa AT gmail.com>

function                                             old     new   delta
print_e2flags                                          -     189    +189
print_flags_separated                                  -      86     +86
static.flag_labels                                     -      60     +60
static.dma_wmode_masks                                 -      32     +32
static.flag_masks                                      -      28     +28
static.arp_labels                                      -      16     +16
static.arp_masks                                       -      12     +12
ls_main                                              836     843      +7
...
popstring                                            140     134      -6
arp_show                                             740     708     -32
print_flags                                          189      25    -164
ipaddr_list_or_flush                                2396    2170    -226
process_dev                                         5306    4706    -600
------------------------------------------------------------------------------
(add/remove: 10/0 grow/shrink: 5/10 up/down: 458/-1043)      Total: -585 bytes
   text    data     bss     dec     hex filename
 810564     624    7060  818248   c7c48 busybox_old
 810002     624    7060  817686   c7a16 busybox_unstripped
This commit is contained in:
Denis Vlasenko
2008-06-07 15:10:29 +00:00
parent f0d6c25586
commit 53354ac47d
11 changed files with 77 additions and 76 deletions

View File

@@ -313,6 +313,26 @@ static void
arp_disp(const char *name, char *ip, int type, int arp_flags,
char *hwa, char *mask, char *dev)
{
static const int arp_masks[] = {
ATF_PERM, ATF_PUBL,
#ifdef HAVE_ATF_MAGIC
ATF_MAGIC,
#endif
#ifdef HAVE_ATF_DONTPUB
ATF_DONTPUB,
#endif
ATF_USETRAILERS,
};
static const char arp_labels[] ALIGN1 = "PERM\0""PUP\0"
#ifdef HAVE_ATF_MAGIC
"AUTO\0"
#endif
#ifdef HAVE_ATF_DONTPUB
"DONTPUB\0"
#endif
"TRAIL\0"
;
const struct hwtype *xhw;
xhw = get_hwntype(type);
@@ -333,22 +353,8 @@ arp_disp(const char *name, char *ip, int type, int arp_flags,
if (arp_flags & ATF_NETMASK)
printf("netmask %s ", mask);
if (arp_flags & ATF_PERM)
printf("PERM ");
if (arp_flags & ATF_PUBL)
printf("PUP ");
#ifdef HAVE_ATF_MAGIC
if (arp_flags & ATF_MAGIC)
printf("AUTO ");
#endif
#ifdef HAVE_ATF_DONTPUB
if (arp_flags & ATF_DONTPUB)
printf("DONTPUB ");
#endif
if (arp_flags & ATF_USETRAILERS)
printf("TRAIL ");
printf("on %s\n", dev);
print_flags_separated(arp_masks, arp_labels, arp_flags, " ");
printf(" on %s\n", dev);
}
/* Display the contents of the ARP cache in the kernel. */

View File

@@ -45,16 +45,15 @@ typedef struct filter_t {
static void print_link_flags(unsigned flags, unsigned mdown)
{
static const int flag_masks[] = {
IFF_LOOPBACK, IFF_BROADCAST, IFF_POINTOPOINT,
IFF_MULTICAST, IFF_NOARP, IFF_UP, IFF_LOWER_UP };
static const char flag_labels[] ALIGN1 =
"LOOPBACK\0""BROADCAST\0""POINTOPOINT\0"
"MULTICAST\0""NOARP\0""UP\0""LOWER_UP\0";
bb_putchar('<');
flags &= ~IFF_RUNNING;
#define _PF(f) if (flags & IFF_##f) { \
flags &= ~IFF_##f; \
printf(#f "%s", flags ? "," : ""); }
_PF(LOOPBACK);
_PF(BROADCAST);
_PF(POINTOPOINT);
_PF(MULTICAST);
_PF(NOARP);
#if 0
_PF(ALLMULTI);
_PF(PROMISC);
@@ -66,9 +65,7 @@ static void print_link_flags(unsigned flags, unsigned mdown)
_PF(PORTSEL);
_PF(NOTRAILERS);
#endif
_PF(UP);
_PF(LOWER_UP);
#undef _PF
flags = print_flags_separated(flag_masks, flag_labels, flags, ",");
if (flags)
printf("%x", flags);
if (mdown)