On Sun, Jan 14, 2018 at 5:30 AM, Povilas Kanapickas <povi...@radix.lt> wrote: > --- a/util-linux/chrt.c > +++ b/util-linux/chrt.c > @@ -36,17 +36,20 @@ > #include <sched.h> > #include "libbb.h" > > -static const struct { > - int policy; > - char name[sizeof("SCHED_OTHER")]; > -} policies[] = { > - {SCHED_OTHER, "SCHED_OTHER"}, > - {SCHED_FIFO, "SCHED_FIFO"}, > - {SCHED_RR, "SCHED_RR"}, > - {SCHED_BATCH, "SCHED_BATCH"}, > - {0 /* unused */, ""}, > - {SCHED_IDLE, "SCHED_IDLE"} > -}; > +static const char* get_policy_name(int pol) > +{ > + if (pol == SCHED_OTHER) > + return "SCHED_OTHER"; > + if (pol == SCHED_FIFO) > + return "SCHED_FIFO"; > + if (pol == SCHED_RR) > + return "SCHED_RR"; > + if (pol == SCHED_BATCH) > + return "SCHED_BATCH"; > + if (pol == SCHED_IDLE) > + return "SCHED_IDLE"; > + return ""; > +} > > static void show_min_max(int pol) > {
I don't like the chain of "if"s here. Have you checked the size changes on the compiled code? Since this SCHED policy constants are just enum values, what about using "switch-case" statement? The problem of if-chains is that some compilers are not smart at figuring out that the comparisons are just enums and can be optimized. The switch-case statement will make it more clear. Sorry for nit-picking the code. _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox