summaryrefslogtreecommitdiffstats
path: root/include/asm-alpha
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-05 06:47:02 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-05 06:47:02 +0000
commit99a7e12f34b3661a0d1354eef83a0eef4df5e34c (patch)
tree3560aca9ca86792f9ab7bd87861ea143a1b3c7a3 /include/asm-alpha
parente73a04659c0b8cdee4dd40e58630e2cf63afb316 (diff)
Merge with Linux 2.3.38.
Diffstat (limited to 'include/asm-alpha')
-rw-r--r--include/asm-alpha/core_irongate.h12
-rw-r--r--include/asm-alpha/delay.h17
-rw-r--r--include/asm-alpha/fcntl.h1
-rw-r--r--include/asm-alpha/io.h10
-rw-r--r--include/asm-alpha/processor.h1
-rw-r--r--include/asm-alpha/system.h1
-rw-r--r--include/asm-alpha/unistd.h1
7 files changed, 25 insertions, 18 deletions
diff --git a/include/asm-alpha/core_irongate.h b/include/asm-alpha/core_irongate.h
index be1964f8d..ae9aaaa85 100644
--- a/include/asm-alpha/core_irongate.h
+++ b/include/asm-alpha/core_irongate.h
@@ -12,7 +12,8 @@
* This file is based on:
*
* IronGate management library, (c) 1999 Alpha Processor, Inc.
- * Begun 19 January 1999 by Stig Telfer, Alpha Processor, Inc.
+ * Copyright (C) 1999 Alpha Processor, Inc.,
+ * (David Daniel, Stig Telfer, Soohoon Lee)
*/
/*
@@ -24,9 +25,9 @@
*
*/
-/* Eh? Not offset from memory? */
-#define IRONGATE_DMA_WIN_BASE (0U)
-#define IRONGATE_DMA_WIN_SIZE (0U)
+#define IRONGATE_DMA_WIN_BASE (0UL)
+#define IRONGATE_DMA_WIN_SIZE (0UL)
+
/*
* Irongate CSR map. Some of the CSRs are 8 or 16 bits, but all access
@@ -334,9 +335,7 @@ typedef union {
* Memory spaces:
*/
-/* ??? the following probably needs fixing */
/* Irongate is consistent with a subset of the Tsunami memory map */
-/* XXX: Do we need to conditionalize on this? */
#ifdef USE_48_BIT_KSEG
#define IRONGATE_BIAS 0x80000000000UL
#else
@@ -349,7 +348,6 @@ typedef union {
#define IRONGATE_IO (IDENT_ADDR | IRONGATE_BIAS | 0x1FC000000UL)
#define IRONGATE_CONF (IDENT_ADDR | IRONGATE_BIAS | 0x1FE000000UL)
-
#define IRONGATE0 ((Irongate0 *) IRONGATE_CONF)
/*
diff --git a/include/asm-alpha/delay.h b/include/asm-alpha/delay.h
index f60e9b5a7..8db687bd4 100644
--- a/include/asm-alpha/delay.h
+++ b/include/asm-alpha/delay.h
@@ -9,16 +9,19 @@
* Delay routines, using a pre-computed "loops_per_second" value.
*/
+/* We can make the delay loop inline, but we have to be very careful wrt
+ scheduling for ev6 machines, so that we keep a consistent number of
+ iterations for all invocations. */
+
extern __inline__ void
__delay(unsigned long loops)
{
- register unsigned long r0 __asm__("$0") = loops;
-#ifdef MODULE
- __asm__ __volatile__("lda $28,___delay; jsr $28,($28),0"
- : "=r"(r0) : "r"(r0) : "$28");
-#else
- __asm__ __volatile__("bsr $28,___delay" : "=r"(r0) : "r"(r0) : "$28");
-#endif
+ __asm__ __volatile__(
+ ".align 4\n"
+ "1: subq %0,1,%0\n"
+ " bge %0,1b\n"
+ " nop"
+ : "=r" (loops) : "0"(loops));
}
/*
diff --git a/include/asm-alpha/fcntl.h b/include/asm-alpha/fcntl.h
index 9ba84dbf2..9d7a09fe1 100644
--- a/include/asm-alpha/fcntl.h
+++ b/include/asm-alpha/fcntl.h
@@ -20,6 +20,7 @@
#define O_DIRECT 040000 /* direct disk access - should check with OSF/1 */
#define O_DIRECTORY 0100000 /* must be a directory */
#define O_NOFOLLOW 0200000 /* don't follow links */
+#define O_LARGEFILE 0400000 /* will be set by the kernel on every open */
#define F_DUPFD 0 /* dup */
#define F_GETFD 1 /* get f_flags */
diff --git a/include/asm-alpha/io.h b/include/asm-alpha/io.h
index e8ed0baa1..33c7b0006 100644
--- a/include/asm-alpha/io.h
+++ b/include/asm-alpha/io.h
@@ -53,10 +53,7 @@ static inline void set_hae(unsigned long new_hae)
*/
static inline unsigned long virt_to_phys(volatile void * address)
{
- /* Conditionalize this on the CPU? This here is 40 bits,
- whereas EV4 only supports 34. But KSEG is farther out
- so it shouldn't _really_ matter. */
- return 0xffffffffffUL & (unsigned long) address;
+ return (unsigned long)address - IDENT_ADDR;
}
static inline void * phys_to_virt(unsigned long address)
@@ -266,6 +263,11 @@ static inline void iounmap(void *addr)
{
}
+static inline void * ioremap_nocache(unsigned long offset, unsigned long size)
+{
+ return ioremap(offset, size);
+}
+
/* Indirect back to the macros provided. */
extern unsigned long ___raw_readb(unsigned long addr);
diff --git a/include/asm-alpha/processor.h b/include/asm-alpha/processor.h
index 092f96fab..6992e1445 100644
--- a/include/asm-alpha/processor.h
+++ b/include/asm-alpha/processor.h
@@ -145,6 +145,7 @@ unsigned long get_wchan(struct task_struct *p);
#define alloc_task_struct() \
((struct task_struct *) __get_free_pages(GFP_KERNEL,1))
#define free_task_struct(p) free_pages((unsigned long)(p),1)
+#define get_task_struct(tsk) atomic_inc(&mem_map[MAP_NR(tsk)].count)
#define init_task (init_task_union.task)
#define init_stack (init_task_union.stack)
diff --git a/include/asm-alpha/system.h b/include/asm-alpha/system.h
index d298c51db..15472dfbd 100644
--- a/include/asm-alpha/system.h
+++ b/include/asm-alpha/system.h
@@ -245,6 +245,7 @@ static inline RTYPE NAME(TYPE0 arg0, TYPE1 arg1) \
return __r0; \
}
+__CALL_PAL_W1(cflush, unsigned long);
__CALL_PAL_R0(rdmces, unsigned long);
__CALL_PAL_R0(rdps, unsigned long);
__CALL_PAL_R0(rdusp, unsigned long);
diff --git a/include/asm-alpha/unistd.h b/include/asm-alpha/unistd.h
index c2fe527c1..e80f0ae3b 100644
--- a/include/asm-alpha/unistd.h
+++ b/include/asm-alpha/unistd.h
@@ -310,6 +310,7 @@
#define __NR_sendfile 370
#define __NR_setresgid 371
#define __NR_getresgid 372
+#define __NR_dipc 373
#if defined(__LIBRARY__) && defined(__GNUC__)