aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-03-08 13:10:23 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-03-08 13:10:23 +0100
commitf7fa8001b7db605b8ab18c688051583f6d5b687f (patch)
tree71c1bf97299b222096c92d3ae399b065aeabf1c3
parent694bc0634587e2535567c1732a372ec79ba0e0c7 (diff)
downloadbusybox-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.c39
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
104static char format;
105
106static void print_perms(int id, struct ipc_perm *ipcp) 104static 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 126static NOINLINE void do_shm(int format)
129static 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 252static NOINLINE void do_sem(int format)
256static 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 357static NOINLINE void do_msg(int format)
362static 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
470static void print_shm(int shmid) 464static 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
497static void print_msg(int msqid) 490static 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)
588int ipcs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 581int ipcs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
589int ipcs_main(int argc UNUSED_PARAM, char **argv) 582int 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);