diff options
Diffstat (limited to 'X11/Xmd.h')
-rw-r--r-- | X11/Xmd.h | 162 |
1 files changed, 68 insertions, 94 deletions
@@ -1,5 +1,3 @@ -/* $XdotOrg: $ */ -/* $XFree86: xc/include/Xmd.h,v 3.18tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -47,8 +45,7 @@ SOFTWARE. ******************************************************************/ #ifndef XMD_H -#define XMD_H 1 -/* $Xorg: Xmd.h,v 1.4 2001/02/09 02:03:22 xorgcvs Exp $ */ +# define XMD_H 1 /* * Xmd.h: MACHINE DEPENDENT DECLARATIONS. */ @@ -56,32 +53,27 @@ SOFTWARE. /* * Special per-machine configuration flags. */ -#if defined(sun) && defined(__SVR4) -# include <sys/isa_defs.h> /* Solaris: defines _LP64 if necessary */ -#endif - -#ifdef CRAY -#define WORD64 /* 64-bit architecture */ -#endif -#if defined (_LP64) || \ - defined(__alpha) || defined(__alpha__) || \ - defined(__ia64__) || defined(ia64) || \ - defined(__sparc64__) || \ - defined(__s390x__) || \ - (defined(__hppa__) && defined(__LP64__)) || \ - defined(__amd64__) || defined(amd64) || \ - defined(__powerpc64__) || \ - (defined(sgi) && (_MIPS_SZLONG == 64)) -#define LONG64 /* 32/64-bit architecture */ -#endif +# if defined(__sun) && defined(__SVR4) +# include <sys/isa_defs.h> /* Solaris: defines _LP64 if necessary */ +# endif + +# if defined (_LP64) || defined(__LP64__) || \ + defined(__alpha) || defined(__alpha__) || \ + defined(__ia64__) || defined(ia64) || \ + defined(__sparc64__) || \ + defined(__s390x__) || \ + defined(__amd64__) || defined(amd64) || \ + defined(__powerpc64__) +# define LONG64 /* 32/64-bit architecture */ +# endif /* * Stuff to handle large architecture machines; the constants were generated * on a 32-bit machine and must correspond to the protocol. */ -#ifdef WORD64 -#define MUSTCOPY -#endif /* WORD64 */ +# ifdef WORD64 +# define MUSTCOPY +# endif /* WORD64 */ /* @@ -95,117 +87,99 @@ SOFTWARE. * symbols are no more than 32 characters long (which causes problems for some * compilers and preprocessors). * - * The extra indirection in the __STDC__ case is to get macro arguments to - * expand correctly before the concatenation, rather than afterward. + * The extra indirection is to get macro arguments to expand correctly before + * the concatenation, rather than afterward. */ -#if ((defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) && !defined(UNIXCPP)) || defined(ANSICPP) -#define _SIZEOF(x) sz_##x -#define SIZEOF(x) _SIZEOF(x) -#else -#define SIZEOF(x) sz_/**/x -#endif /* if ANSI C compiler else not */ +# define _SIZEOF(x) sz_##x +# define SIZEOF(x) _SIZEOF(x) /* * Bitfield suffixes for the protocol structure elements, if you * need them. Note that bitfields are not guaranteed to be signed * (or even unsigned) according to ANSI C. */ -#ifdef WORD64 +# ifdef WORD64 typedef long INT64; typedef unsigned long CARD64; -#define B32 :32 -#define B16 :16 -#ifdef UNSIGNEDBITFIELDS +# define B32 :32 +# define B16 :16 +# ifdef UNSIGNEDBITFIELDS typedef unsigned int INT32; typedef unsigned int INT16; -#else -#ifdef __STDC__ +# else typedef signed int INT32; typedef signed int INT16; -#else -typedef int INT32; -typedef int INT16; -#endif -#endif -#else -#define B32 -#define B16 -#ifdef LONG64 +# endif +# else +# define B32 +# define B16 +# ifdef LONG64 typedef long INT64; typedef int INT32; -#else +# else typedef long INT32; -#endif +# endif typedef short INT16; -#endif +# endif -#if defined(__STDC__) || defined(sgi) || defined(_AIX) typedef signed char INT8; -#else -typedef char INT8; -#endif -#ifdef LONG64 +# ifdef LONG64 typedef unsigned long CARD64; typedef unsigned int CARD32; -#else +# else typedef unsigned long CARD32; -#endif -#if !defined(WORD64) && !defined(LONG64) +# endif +# if !defined(WORD64) && !defined(LONG64) typedef unsigned long long CARD64; -#endif +# endif typedef unsigned short CARD16; typedef unsigned char CARD8; typedef CARD32 BITS32; typedef CARD16 BITS16; -#ifndef I_NEED_OS2_H typedef CARD8 BYTE; typedef CARD8 BOOL; -#else -#define BYTE CARD8 -#define BOOL CARD8 -#endif /* * definitions for sign-extending bitfields on 64-bit architectures */ -#if defined(WORD64) && defined(UNSIGNEDBITFIELDS) -#define cvtINT8toInt(val) (((val) & 0x00000080) ? ((val) | 0xffffffffffffff00) : (val)) -#define cvtINT16toInt(val) (((val) & 0x00008000) ? ((val) | 0xffffffffffff0000) : (val)) -#define cvtINT32toInt(val) (((val) & 0x80000000) ? ((val) | 0xffffffff00000000) : (val)) -#define cvtINT8toShort(val) cvtINT8toInt(val) -#define cvtINT16toShort(val) cvtINT16toInt(val) -#define cvtINT32toShort(val) cvtINT32toInt(val) -#define cvtINT8toLong(val) cvtINT8toInt(val) -#define cvtINT16toLong(val) cvtINT16toInt(val) -#define cvtINT32toLong(val) cvtINT32toInt(val) -#else -#define cvtINT8toInt(val) (val) -#define cvtINT16toInt(val) (val) -#define cvtINT32toInt(val) (val) -#define cvtINT8toShort(val) (val) -#define cvtINT16toShort(val) (val) -#define cvtINT32toShort(val) (val) -#define cvtINT8toLong(val) (val) -#define cvtINT16toLong(val) (val) -#define cvtINT32toLong(val) (val) -#endif /* WORD64 and UNSIGNEDBITFIELDS */ - - - -#ifdef MUSTCOPY +# if defined(WORD64) && defined(UNSIGNEDBITFIELDS) +# define cvtINT8toInt(val) (((val) & 0x00000080) ? ((val) | 0xffffffffffffff00) : (val)) +# define cvtINT16toInt(val) (((val) & 0x00008000) ? ((val) | 0xffffffffffff0000) : (val)) +# define cvtINT32toInt(val) (((val) & 0x80000000) ? ((val) | 0xffffffff00000000) : (val)) +# define cvtINT8toShort(val) cvtINT8toInt(val) +# define cvtINT16toShort(val) cvtINT16toInt(val) +# define cvtINT32toShort(val) cvtINT32toInt(val) +# define cvtINT8toLong(val) cvtINT8toInt(val) +# define cvtINT16toLong(val) cvtINT16toInt(val) +# define cvtINT32toLong(val) cvtINT32toInt(val) +# else +# define cvtINT8toInt(val) (val) +# define cvtINT16toInt(val) (val) +# define cvtINT32toInt(val) (val) +# define cvtINT8toShort(val) (val) +# define cvtINT16toShort(val) (val) +# define cvtINT32toShort(val) (val) +# define cvtINT8toLong(val) (val) +# define cvtINT16toLong(val) (val) +# define cvtINT32toLong(val) (val) +# endif /* WORD64 and UNSIGNEDBITFIELDS */ + + + +# ifdef MUSTCOPY /* * This macro must not cast or else pointers will get aligned and be wrong */ -#define NEXTPTR(p,t) (((char *) p) + SIZEOF(t)) -#else /* else not MUSTCOPY, this is used for 32-bit machines */ +# define NEXTPTR(p,t) (((char *) p) + SIZEOF(t)) +# else /* else not MUSTCOPY, this is used for 32-bit machines */ /* * this version should leave result of type (t *), but that should only be * used when not in MUSTCOPY */ -#define NEXTPTR(p,t) (((t *)(p)) + 1) -#endif /* MUSTCOPY - used machines whose C structs don't line up with proto */ +# define NEXTPTR(p,t) (((t *)(p)) + 1) +# endif /* MUSTCOPY - used machines whose C structs don't line up with proto */ #endif /* XMD_H */ |