aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c')
-rw-r--r--xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c70
1 files changed, 22 insertions, 48 deletions
diff --git a/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c b/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
index 5cd716823..be69b9dd1 100644
--- a/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -30,7 +30,7 @@ xf86SetReallySlowBcopy(void)
really_slow_bcopy = 1;
}
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__i386__) || defined(__amd64__)
static void xf86_really_slow_bcopy(unsigned char *src, unsigned char *dst, int len)
{
while(len--)
@@ -45,7 +45,7 @@ static void xf86_really_slow_bcopy(unsigned char *src, unsigned char *dst, int l
_X_EXPORT void
xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
{
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__i386__) || defined(__amd64__)
if (really_slow_bcopy) {
xf86_really_slow_bcopy(src, dst, len);
return;
@@ -56,29 +56,13 @@ xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
}
#ifdef __alpha__
-/*
- * The Jensen lacks dense memory, thus we have to address the bus via
- * the sparse addressing scheme. Time critical code uses routines from
- * BUSmemcpy.c
- *
- * Martin Ostermann (ost@comnets.rwth-aachen.de) - Apr.-Sep. 1996
- */
#ifdef linux
-unsigned long _bus_base(void);
-
-#ifdef TEST_JENSEN_CODE /* define to test the Sparse addressing on a non-Jensen */
-#define SPARSE (5)
-#else
#define SPARSE (7)
-#endif
-
-#define isJensen() (!_bus_base())
#else
-#define isJensen() 0
#define SPARSE 0
#endif
@@ -86,42 +70,32 @@ unsigned long _bus_base(void);
_X_EXPORT void
xf86SlowBCopyFromBus(unsigned char *src, unsigned char *dst, int count)
{
- if (isJensen())
- {
- unsigned long addr;
- long result;
-
- addr = (unsigned long) src;
- while( count ){
- result = *(volatile int *) addr;
- result >>= ((addr>>SPARSE) & 3) * 8;
- *dst++ = (unsigned char) (0xffUL & result);
- addr += 1<<SPARSE;
- count--;
- outb(0x80, 0x00);
- }
+ unsigned long addr;
+ long result;
+
+ addr = (unsigned long) src;
+ while( count ){
+ result = *(volatile int *) addr;
+ result >>= ((addr>>SPARSE) & 3) * 8;
+ *dst++ = (unsigned char) (0xffUL & result);
+ addr += 1<<SPARSE;
+ count--;
+ outb(0x80, 0x00);
}
- else
- xf86SlowBcopy(src,dst,count);
}
_X_EXPORT void
xf86SlowBCopyToBus(unsigned char *src, unsigned char *dst, int count)
{
- if (isJensen())
- {
- unsigned long addr;
-
- addr = (unsigned long) dst;
- while(count) {
- *(volatile unsigned int *) addr = (unsigned short)(*src) * 0x01010101;
- src++;
- addr += 1<<SPARSE;
- count--;
- outb(0x80, 0x00);
- }
+ unsigned long addr;
+
+ addr = (unsigned long) dst;
+ while(count) {
+ *(volatile unsigned int *) addr = (unsigned short)(*src) * 0x01010101;
+ src++;
+ addr += 1<<SPARSE;
+ count--;
+ outb(0x80, 0x00);
}
- else
- xf86SlowBcopy(src,dst,count);
}
#endif