[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/3] Add support for OpenBSD
On Thursday 19 October 2006 09:51, Keir Fraser wrote: > On 18/10/06 8:08 am, "Christoph Egger" <Christoph.Egger@xxxxxxx> wrote: > > /usr/include/sys/endian.h:156:1: this is the location of the previous > > definition > > boot/mkelf32.c:94:1: "swap32" redefined > > /usr/include/sys/endian.h:157:1: this is the location of the previous > > definition > > boot/mkelf32.c:95:1: "swap64" redefined > > /usr/include/sys/endian.h:158:1: this is the location of the previous > > definition > > Is there a standard definition for these functions (i.e., can we be *sure* > the original definitions have the same semantics as our own)? If not, which > I think is the case, we're better off #undef'ing the old definitions. This is the snippet of /usr/include/endian.h: ----------------------------------------------------------------------------------- #ifdef __GNUC__ #define __swap16gen(x) __statement({ \ __uint16_t __swap16gen_x = (x); \ \ (__uint16_t)((__swap16gen_x & 0xff) << 8 | \ (__swap16gen_x & 0xff00) >> 8); \ }) #define __swap32gen(x) __statement({ \ __uint32_t __swap32gen_x = (x); \ \ (__uint32_t)((__swap32gen_x & 0xff) << 24 | \ (__swap32gen_x & 0xff00) << 8 | \ (__swap32gen_x & 0xff0000) >> 8 | \ (__swap32gen_x & 0xff000000) >> 24); \ }) #define __swap64gen(x) __statement({ \ __uint64_t __swap64gen_x = (x); \ \ (__uint64_t)((__swap64gen_x & 0xff) << 56 | \ (__swap64gen_x & 0xff00ULL) << 40 | \ (__swap64gen_x & 0xff0000ULL) << 24 | \ (__swap64gen_x & 0xff000000ULL) << 8 | \ (__swap64gen_x & 0xff00000000ULL) >> 8 | \ (__swap64gen_x & 0xff0000000000ULL) >> 24 | \ (__swap64gen_x & 0xff000000000000ULL) >> 40 | \ (__swap64gen_x & 0xff00000000000000ULL) >> 56); \ }) #else /* __GNUC__ */ /* Note that these macros evaluate their arguments several times. */ #define __swap16gen(x) \ (__uint16_t)(((__uint16_t)(x) & 0xffU) << 8 | ((__uint16_t)(x) & 0xff00U) >> 8) #define __swap32gen(x) \ (__uint32_t)(((__uint32_t)(x) & 0xff) << 24 | \ ((__uint32_t)(x) & 0xff00) << 8 | ((__uint32_t)(x) & 0xff0000) >> 8 |\ ((__uint32_t)(x) & 0xff000000) >> 24) #define __swap64gen(x) \ (__uint64_t)((((__uint64_t)(x) & 0xff) << 56) | \ ((__uint64_t)(x) & 0xff00ULL) << 40 | \ ((__uint64_t)(x) & 0xff0000ULL) << 24 | \ ((__uint64_t)(x) & 0xff000000ULL) << 8 | \ ((__uint64_t)(x) & 0xff00000000ULL) >> 8 | \ ((__uint64_t)(x) & 0xff0000000000ULL) >> 24 | \ ((__uint64_t)(x) & 0xff000000000000ULL) >> 40 | \ ((__uint64_t)(x) & 0xff00000000000000ULL) >> 56) #endif /* __GNUC__ */ ----------------------------------------------------------------------------------- _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |