On Tue, Aug 11, 2015 at 11:14:07AM -0400, Frediano Ziglio wrote: > This macro allow to define magic constants without using weird > memory tweacks. > This remove some possible warning from some compiler and > make code more optimized as compiler is able to compute the > constant. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > > Did a mistake with the macros (parenthesis mismatch). > Tested the method also with Visual Studio 2008 compiler and works as expected. > > > spice/controller_prot.h | 2 +- > spice/foreign_menu_prot.h | 2 +- > spice/macros.h | 8 ++++++++ > spice/protocol.h | 2 +- > spice/qxl_dev.h | 4 ++-- > spice/stats.h | 2 +- > spice/vdi_dev.h | 2 +- > 7 files changed, 15 insertions(+), 7 deletions(-) > > diff --git a/spice/controller_prot.h b/spice/controller_prot.h > index bca7804..a21bf57 100644 > --- a/spice/controller_prot.h > +++ b/spice/controller_prot.h > @@ -21,7 +21,7 @@ > #include <spice/types.h> > #include <spice/start-packed.h> > > -#define CONTROLLER_MAGIC (*(uint32_t*)"CTRL") > +#define CONTROLLER_MAGIC SPICE_MAGIC_CONST("CTRL") > #define CONTROLLER_VERSION 1 > > > diff --git a/spice/foreign_menu_prot.h b/spice/foreign_menu_prot.h > index f478e2a..9dd882d 100644 > --- a/spice/foreign_menu_prot.h > +++ b/spice/foreign_menu_prot.h > @@ -21,7 +21,7 @@ > #include <spice/types.h> > #include <spice/start-packed.h> > > -#define FOREIGN_MENU_MAGIC (*(uint32_t*)"FRGM") > +#define FOREIGN_MENU_MAGIC SPICE_MAGIC_CONST("FRGM") > #define FOREIGN_MENU_VERSION 1 > > typedef struct SPICE_ATTR_PACKED FrgMenuInitHeader { > diff --git a/spice/macros.h b/spice/macros.h > index 3538989..679d68d 100644 > --- a/spice/macros.h > +++ b/spice/macros.h > @@ -414,4 +414,12 @@ > #endif > > > +#if SPICE_ENDIAN == SPICE_ENDIAN_LITTLE > +#define SPICE_MAGIC_CONST(s) \ > + ((uint32_t)((s[0]&0xffu)|((s[1]&0xffu)<<8)|((s[2]&0xff)<<16)|((s[3]&0xffu)<<24))) > +#else > +#define SPICE_MAGIC_CONST(s) \ > + ((uint32_t)((s[3]&0xffu)|((s[2]&0xffu)<<8)|((s[1]&0xff)<<16)|((s[0]&0xffu)<<24))) > +#endif Is it expected that 3rd member (the one shifted by 16 bits) does not have 0xffu ? Apart from this, ACK, so I can fix and push. Christophe
Attachment:
pgpkUZyZuLg4d.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel