diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-03-08 13:10:23 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-03-08 13:10:23 +0100 |
commit | f7fa8001b7db605b8ab18c688051583f6d5b687f (patch) | |
tree | 71c1bf97299b222096c92d3ae399b065aeabf1c3 | |
parent | 694bc0634587e2535567c1732a372ec79ba0e0c7 (diff) | |
download | busybox-w32-f7fa8001b7db605b8ab18c688051583f6d5b687f.tar.gz busybox-w32-f7fa8001b7db605b8ab18c688051583f6d5b687f.tar.bz2 busybox-w32-f7fa8001b7db605b8ab18c688051583f6d5b687f.zip |
ipcs: code shrink
function old new delta
packed_usage 32539 32543 +4
format 1 - -1
do_shm 883 880 -3
do_sem 636 633 -3
do_msg 782 779 -3
ipcs_main 1049 1014 -35
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/4 up/down: 4/-45) Total: -41 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | util-linux/ipcs.c | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/util-linux/ipcs.c b/util-linux/ipcs.c index 7092ecd92..dc107eb95 100644 --- a/util-linux/ipcs.c +++ b/util-linux/ipcs.c | |||
@@ -101,8 +101,6 @@ union semun { | |||
101 | #define TIME 4 | 101 | #define TIME 4 |
102 | #define PID 5 | 102 | #define PID 5 |
103 | 103 | ||
104 | static char format; | ||
105 | |||
106 | static void print_perms(int id, struct ipc_perm *ipcp) | 104 | static void print_perms(int id, struct ipc_perm *ipcp) |
107 | { | 105 | { |
108 | struct passwd *pw; | 106 | struct passwd *pw; |
@@ -125,8 +123,7 @@ static void print_perms(int id, struct ipc_perm *ipcp) | |||
125 | else printf(" %-10d\n", ipcp->gid); | 123 | else printf(" %-10d\n", ipcp->gid); |
126 | } | 124 | } |
127 | 125 | ||
128 | 126 | static NOINLINE void do_shm(int format) | |
129 | static NOINLINE void do_shm(void) | ||
130 | { | 127 | { |
131 | int maxid, shmid, id; | 128 | int maxid, shmid, id; |
132 | struct shmid_ds shmseg; | 129 | struct shmid_ds shmseg; |
@@ -252,8 +249,7 @@ static NOINLINE void do_shm(void) | |||
252 | } | 249 | } |
253 | } | 250 | } |
254 | 251 | ||
255 | 252 | static NOINLINE void do_sem(int format) | |
256 | static NOINLINE void do_sem(void) | ||
257 | { | 253 | { |
258 | int maxid, semid, id; | 254 | int maxid, semid, id; |
259 | struct semid_ds semary; | 255 | struct semid_ds semary; |
@@ -358,8 +354,7 @@ static NOINLINE void do_sem(void) | |||
358 | } | 354 | } |
359 | } | 355 | } |
360 | 356 | ||
361 | 357 | static NOINLINE void do_msg(int format) | |
362 | static NOINLINE void do_msg(void) | ||
363 | { | 358 | { |
364 | int maxid, msqid, id; | 359 | int maxid, msqid, id; |
365 | struct msqid_ds msgque; | 360 | struct msqid_ds msgque; |
@@ -466,7 +461,6 @@ static NOINLINE void do_msg(void) | |||
466 | } | 461 | } |
467 | } | 462 | } |
468 | 463 | ||
469 | |||
470 | static void print_shm(int shmid) | 464 | static void print_shm(int shmid) |
471 | { | 465 | { |
472 | struct shmid_ds shmds; | 466 | struct shmid_ds shmds; |
@@ -493,7 +487,6 @@ static void print_shm(int shmid) | |||
493 | printf("change_time=%-26.24s\n\n", ctime(&shmds.shm_ctime)); | 487 | printf("change_time=%-26.24s\n\n", ctime(&shmds.shm_ctime)); |
494 | } | 488 | } |
495 | 489 | ||
496 | |||
497 | static void print_msg(int msqid) | 490 | static void print_msg(int msqid) |
498 | { | 491 | { |
499 | struct msqid_ds buf; | 492 | struct msqid_ds buf; |
@@ -570,7 +563,7 @@ static void print_sem(int semid) | |||
570 | } | 563 | } |
571 | 564 | ||
572 | //usage:#define ipcs_trivial_usage | 565 | //usage:#define ipcs_trivial_usage |
573 | //usage: "[[-smq] -i shmid] | [[-asmq] [-tcplu]]" | 566 | //usage: "[[-smq] -i SHMID] | [[-asmq] [-tcplu]]" |
574 | //usage:#define ipcs_full_usage "\n\n" | 567 | //usage:#define ipcs_full_usage "\n\n" |
575 | //usage: " -i Show specific resource" | 568 | //usage: " -i Show specific resource" |
576 | //usage: "\nResource specification:" | 569 | //usage: "\nResource specification:" |
@@ -588,20 +581,15 @@ static void print_sem(int semid) | |||
588 | int ipcs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 581 | int ipcs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
589 | int ipcs_main(int argc UNUSED_PARAM, char **argv) | 582 | int ipcs_main(int argc UNUSED_PARAM, char **argv) |
590 | { | 583 | { |
591 | int id = 0; | 584 | int format = 0; |
592 | unsigned flags = 0; | 585 | unsigned flags = 0; |
593 | unsigned opt; | 586 | unsigned opt; |
594 | char *opt_i; | 587 | char *opt_i; |
595 | #define flag_print (1<<0) | 588 | #define flag_msg (1<<0) |
596 | #define flag_msg (1<<1) | 589 | #define flag_sem (1<<1) |
597 | #define flag_sem (1<<2) | 590 | #define flag_shm (1<<2) |
598 | #define flag_shm (1<<3) | ||
599 | 591 | ||
600 | opt = getopt32(argv, "i:aqsmtcplu", &opt_i); | 592 | opt = getopt32(argv, "i:aqsmtcplu", &opt_i); |
601 | if (opt & 0x1) { // -i | ||
602 | id = xatoi(opt_i); | ||
603 | flags |= flag_print; | ||
604 | } | ||
605 | if (opt & 0x2) flags |= flag_msg | flag_sem | flag_shm; // -a | 593 | if (opt & 0x2) flags |= flag_msg | flag_sem | flag_shm; // -a |
606 | if (opt & 0x4) flags |= flag_msg; // -q | 594 | if (opt & 0x4) flags |= flag_msg; // -q |
607 | if (opt & 0x8) flags |= flag_sem; // -s | 595 | if (opt & 0x8) flags |= flag_sem; // -s |
@@ -612,7 +600,10 @@ int ipcs_main(int argc UNUSED_PARAM, char **argv) | |||
612 | if (opt & 0x100) format = LIMITS; // -l | 600 | if (opt & 0x100) format = LIMITS; // -l |
613 | if (opt & 0x200) format = STATUS; // -u | 601 | if (opt & 0x200) format = STATUS; // -u |
614 | 602 | ||
615 | if (flags & flag_print) { | 603 | if (opt & 1) { // -i |
604 | int id; | ||
605 | |||
606 | id = xatoi(opt_i); | ||
616 | if (flags & flag_shm) { | 607 | if (flags & flag_shm) { |
617 | print_shm(id); | 608 | print_shm(id); |
618 | fflush_stdout_and_exit(EXIT_SUCCESS); | 609 | fflush_stdout_and_exit(EXIT_SUCCESS); |
@@ -633,15 +624,15 @@ int ipcs_main(int argc UNUSED_PARAM, char **argv) | |||
633 | bb_putchar('\n'); | 624 | bb_putchar('\n'); |
634 | 625 | ||
635 | if (flags & flag_msg) { | 626 | if (flags & flag_msg) { |
636 | do_msg(); | 627 | do_msg(format); |
637 | bb_putchar('\n'); | 628 | bb_putchar('\n'); |
638 | } | 629 | } |
639 | if (flags & flag_shm) { | 630 | if (flags & flag_shm) { |
640 | do_shm(); | 631 | do_shm(format); |
641 | bb_putchar('\n'); | 632 | bb_putchar('\n'); |
642 | } | 633 | } |
643 | if (flags & flag_sem) { | 634 | if (flags & flag_sem) { |
644 | do_sem(); | 635 | do_sem(format); |
645 | bb_putchar('\n'); | 636 | bb_putchar('\n'); |
646 | } | 637 | } |
647 | fflush_stdout_and_exit(EXIT_SUCCESS); | 638 | fflush_stdout_and_exit(EXIT_SUCCESS); |