From c08d2b8ccb0158dbf1f529f80cc3236e66236cce Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Thu, 1 May 2014 15:39:29 +0300 Subject: [PATCH] ARC: Add support for ARC architecture Xorg server could be built for and run on Synopsys DesignWare ARC cores. These changes are required for successful building and execution of the server. Both little-endian and big-endian flavors of ARC cores are supported. Signed-off-by: Alexey Brodkin Acked-by: Adam Jackson Reviewed-by: Egbert Eich Signed-off-by: Keith Packard --- hw/xfree86/common/compiler.h | 4 ++-- hw/xfree86/os-support/linux/lnx_video.c | 3 ++- include/servermd.h | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h index fb95f58bf..0319de06b 100644 --- a/hw/xfree86/common/compiler.h +++ b/hw/xfree86/common/compiler.h @@ -1352,7 +1352,7 @@ stl_u(unsigned long val, unsigned int *p) #else /* ix86 */ #if !defined(__SUNPRO_C) -#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__m32r__) && !defined(__aarch64__) +#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__m32r__) && !defined(__aarch64__) && !defined(__arc__) #ifdef GCCUSESGAS /* @@ -1454,7 +1454,7 @@ inl(unsigned short port) #endif /* GCCUSESGAS */ -#else /* !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__m32r__) */ +#else /* !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__m32r__) && !defined(__arc__) */ static __inline__ void outb(unsigned short port, unsigned char val) diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c index 47f5abc2c..40765fccf 100644 --- a/hw/xfree86/os-support/linux/lnx_video.c +++ b/hw/xfree86/os-support/linux/lnx_video.c @@ -59,7 +59,8 @@ static Bool ExtendedEnabled = FALSE; !defined(__mips__) && \ !defined(__nds32__) && \ !defined(__arm__) && \ - !defined(__aarch64__) + !defined(__aarch64__) && \ + !defined(__arc__) /* * Due to conflicts with "compiler.h", don't rely on to declare diff --git a/include/servermd.h b/include/servermd.h index 11f6c1022..2d1ccb19f 100644 --- a/include/servermd.h +++ b/include/servermd.h @@ -300,6 +300,19 @@ SOFTWARE. #endif /* __aarch64__ */ +#if defined(__arc__) + +#if defined(__BIG_ENDIAN__) +#define IMAGE_BYTE_ORDER MSBFirst +#define BITMAP_BIT_ORDER MSBFirst +#else +#define IMAGE_BYTE_ORDER LSBFirst +#define BITMAP_BIT_ORDER LSBFirst +#endif +#define GLYPHPADBYTES 4 + +#endif /* ARC */ + /* size of buffer to use with GetImage, measured in bytes. There's obviously * a trade-off between the amount of heap used and the number of times the * ddx routine has to be called.