diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-05 06:47:02 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-05 06:47:02 +0000 |
commit | 99a7e12f34b3661a0d1354eef83a0eef4df5e34c (patch) | |
tree | 3560aca9ca86792f9ab7bd87861ea143a1b3c7a3 /include/asm-alpha | |
parent | e73a04659c0b8cdee4dd40e58630e2cf63afb316 (diff) |
Merge with Linux 2.3.38.
Diffstat (limited to 'include/asm-alpha')
-rw-r--r-- | include/asm-alpha/core_irongate.h | 12 | ||||
-rw-r--r-- | include/asm-alpha/delay.h | 17 | ||||
-rw-r--r-- | include/asm-alpha/fcntl.h | 1 | ||||
-rw-r--r-- | include/asm-alpha/io.h | 10 | ||||
-rw-r--r-- | include/asm-alpha/processor.h | 1 | ||||
-rw-r--r-- | include/asm-alpha/system.h | 1 | ||||
-rw-r--r-- | include/asm-alpha/unistd.h | 1 |
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__) |