On Fri, Jul 01, 2016 at 11:04:13AM +0200, Ingo Molnar wrote: ...
> So the most robust way to define such bitfields is via a pattern like this: > > enum devkmsg_log_bits { > __DEVKMSG_LOG_BIT_ON, > __DEVKMSG_LOG_BIT_OFF, > __DEVKMSG_LOG_BIT_LOCK, > }; > > enum devkmsg_log_masks { > DEVKMSG_LOG_MASK_ON = BIT(__DEVKMSG_LOG_BIT_ON), > DEVKMSG_LOG_MASK_OFF = BIT(__DEVKMSG_LOG_BIT_OFF), > DEVKMSG_LOG_MASK_LOCK = BIT(__DEVKMSG_LOG_BIT_LOCK), Agreed with so far, I'd only drop the "_MASK" thing and make it even easier on the eyes: enum devkmsg_log_state { DEVKMSG_LOG_ON = BIT(__DEVKMSG_LOG_BIT_ON), DEVKMSG_LOG_OFF = BIT(__DEVKMSG_LOG_BIT_OFF), DEVKMSG_LOCK = BIT(__DEVKMSG_LOG_BIT_LOCK), }; Now this makes the checking code even more readable! if (devkmsg_log & DEVKMSG_LOCK) { and if (devkmsg_log & DEVKMSG_LOG_OFF) and if ((system_state != SYSTEM_BOOTING) && (!(devkmsg_log & DEVKMSG_LOG_ON)) { And this way you can read it straight-away as english text. :-))) Thanks. -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply.