Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 52707
Collapse All | Expand All

(-)clean/xc/programs/Xserver/hw/xfree86/common/compiler.h (-4 / +55 lines)
Lines 87-93 Link Here
87
87
88
# if defined(NO_INLINE) || defined(DO_PROTOTYPES)
88
# if defined(NO_INLINE) || defined(DO_PROTOTYPES)
89
89
90
#  if !defined(__sparc__) && !defined(__arm32__) \
90
#  if !defined(__arm__)
91
#   if !defined(__sparc__) && !defined(__arm32__) \
91
      && !(defined(__alpha__) && defined(linux))
92
      && !(defined(__alpha__) && defined(linux))
92
93
93
extern void outb(unsigned short, unsigned char);
94
extern void outb(unsigned short, unsigned char);
Lines 97-103 Link Here
97
extern unsigned int inw(unsigned short);
98
extern unsigned int inw(unsigned short);
98
extern unsigned int inl(unsigned short);
99
extern unsigned int inl(unsigned short);
99
100
100
#  else /* __sparc__,  __arm32__, __alpha__*/
101
#   else /* __sparc__,  __arm32__, __alpha__*/
101
102
102
extern void outb(unsigned long, unsigned char);
103
extern void outb(unsigned long, unsigned char);
103
extern void outw(unsigned long, unsigned short);
104
extern void outw(unsigned long, unsigned short);
Lines 106-112 Link Here
106
extern unsigned int inw(unsigned long);
107
extern unsigned int inw(unsigned long);
107
extern unsigned int inl(unsigned long);
108
extern unsigned int inl(unsigned long);
108
109
109
#  endif /* __sparc__,  __arm32__, __alpha__ */
110
#   endif /* __sparc__,  __arm32__, __alpha__ */
111
#  endif /* __arm__ */
110
112
111
extern unsigned long ldq_u(unsigned long *);
113
extern unsigned long ldq_u(unsigned long *);
112
extern unsigned long ldl_u(unsigned int *);
114
extern unsigned long ldl_u(unsigned int *);
Lines 848-854 Link Here
848
#    define mem_barrier()         /* XXX: nop for now */
850
#    define mem_barrier()         /* XXX: nop for now */
849
#    define write_mem_barrier()   /* XXX: nop for now */
851
#    define write_mem_barrier()   /* XXX: nop for now */
850
852
851
#   elif defined(__mips__) || defined(__arm32__)
853
#   elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__))
852
#ifdef __arm32__
854
#ifdef __arm32__
853
#define PORT_SIZE long
855
#define PORT_SIZE long
854
#else
856
#else
Lines 1244-1249 Link Here
1244
#    define mem_barrier()	eieio()
1246
#    define mem_barrier()	eieio()
1245
#    define write_mem_barrier()	eieio()
1247
#    define write_mem_barrier()	eieio()
1246
1248
1249
#elif defined(__arm__) && defined(__linux__)
1250
1251
#define ldq_u(p)	(*((unsigned long  *)(p)))
1252
#define ldl_u(p)	(*((unsigned int   *)(p)))
1253
#define ldw_u(p)	(*((unsigned short *)(p)))
1254
#define stq_u(v,p)	(*(unsigned long  *)(p)) = (v)
1255
#define stl_u(v,p)	(*(unsigned int   *)(p)) = (v)
1256
#define stw_u(v,p)	(*(unsigned short *)(p)) = (v)
1257
#define mem_barrier()   /* NOP */
1258
#define write_mem_barrier()   /* NOP */
1259
1260
/* for Linux on ARM, we use the LIBC inx/outx routines */
1261
/* note that the appropriate setup via "ioperm" needs to be done */
1262
/*  *before* any inx/outx is done. */
1263
1264
#include <sys/io.h>
1265
1266
static __inline__ void
1267
xf_outb(unsigned short port, unsigned char val)
1268
{
1269
    outb(val, port);
1270
}
1271
1272
static __inline__ void
1273
xf_outw(unsigned short port, unsigned short val)
1274
{
1275
    outw(val, port);
1276
}
1277
1278
static __inline__ void
1279
xf_outl(unsigned short port, unsigned int val)
1280
{
1281
    outl(val, port);
1282
}
1283
1284
#define outb xf_outb
1285
#define outw xf_outw
1286
#define outl xf_outl
1287
1288
#define arm_flush_cache(addr)						\
1289
do {									\
1290
  register unsigned long _beg __asm ("a1") = (unsigned long) (addr);	\
1291
  register unsigned long _end __asm ("a2") = (unsigned long) (addr) + 4;\
1292
  register unsigned long _flg __asm ("a3") = 0;				\
1293
  __asm __volatile ("swi 0x9f0002		@ sys_cacheflush"	\
1294
    : "=r" (_beg)							\
1295
    : "0" (_beg), "r" (_end), "r" (_flg));				\
1296
} while (0)
1297
1247
#   else /* ix86 */
1298
#   else /* ix86 */
1248
1299
1249
#    define ldq_u(p)	(*((unsigned long  *)(p)))
1300
#    define ldq_u(p)	(*((unsigned long  *)(p)))

Return to bug 52707