On Mon, Apr 30, 2018 at 05:25:52PM -0400, Boris Ostrovsky wrote: > Also, perhaps the two can be collapsed together, along the lines of > > #define RING_COPY_(action, _r, _idx, _msg) do {                          \ >         /* Use volatile to force the copy into _msg. */                 \ >         *(_msg) = *(volatile typeof(_msg))RING_GET_##action(_r, _idx);   \ > } while (0) > > #define RING_COPY_REQUEST(_r, _idx, _req)  RING_COPY_(REQUEST, _r, _idx, > _req) > #define RING_COPY_RESPONSE(_r, _idx, _rsp)  RING_COPY_(RESPONSE, _r, > _idx, _rsp) > > > (I have not tried to compile this so it may well be wrong) It works, thanks :) I'll wait with v2 until I get feedback on other patches. -- Best Regards, Marek Marczykowski-Górecki Invisible Things Lab A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing?