On Tue, Dec 18, 2018 at 09:07:47AM +0100, Cédric Le Goater wrote: > On 12/18/18 3:23 AM, David Gibson wrote: > > On Mon, Dec 17, 2018 at 11:34:40PM +0100, Cédric Le Goater wrote: > >> And remove the intermediate MASK_TO_LSH macro which does not add any value. > >> > >> This fixes a compile breakage on windows. > >> > >> Signed-off-by: Cédric Le Goater > > > > It's an improvement over what's there, but it still leaves macros > > whose primary use would be for guest registers, but are typed > > according to host values, which doesn't make much sense. > > > > I think instead we should redefine your BE64 / BE32 variants in terms > > of the existing extract*() and deposit*() primitives, and get rid of > > the GETFIELD / SETFIELD macros. > > I will get rid of the GETFIELD/SETFIELD macros and rewrite the BE64/BE32 > variants but I won't use the extract*() and deposit*(). I prefer to keep > the same pattern, which is similar to shpc_get/set_status(). I will make > the code clearer with static inlines. That's fine. > I don't really like the names also. what about > xive_(get/set)_field(32/64) ? Sure, works for me. Since these will now be strictly fixed width, you can probably make them inlines instead of macros too, so we get type checking. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson