quoted
quoted
+
+#define CAN_BLOCK(_f) (!((_f) & VMCI_QPFLAG_NONBLOCK))
+#define QP_PINNED(_f) ((_f) & VMCI_QPFLAG_PINNED)
Looks like poor obscufation.
Use a statis inline function if you need a helper for this.
These definitions are intended more as a helper to make reading the code easier. IMHO ts a lot easier to read
if (CAN_BLOCK(flags))
compared to
if (!(flags & VMCI_QPFLAG_NONBLOCK))
Wouldn't you agree? I'm not sure something this simple warrants a static inline
function but I don't see any harm in converting it over to that.
I would put it the other way around. I cannot see that such simple stuff warrants a #define.
A static inline is (almost) always preferable to hide code in a macro.
For once you get better type-checks.
And semantics are also much simpler. With a macro you can do so many silly things.
Sam