summaryrefslogtreecommitdiffstats
path: root/include/asm-alpha
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-alpha')
-rw-r--r--include/asm-alpha/elf.h7
-rw-r--r--include/asm-alpha/floppy.h2
-rw-r--r--include/asm-alpha/pgtable.h1
-rw-r--r--include/asm-alpha/uaccess.h14
4 files changed, 23 insertions, 1 deletions
diff --git a/include/asm-alpha/elf.h b/include/asm-alpha/elf.h
index 0cf5ecbec..bca9bbfea 100644
--- a/include/asm-alpha/elf.h
+++ b/include/asm-alpha/elf.h
@@ -34,6 +34,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
#define USE_ELF_CORE_DUMP
#define ELF_EXEC_PAGESIZE 8192
+/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
+ use of this is to invoke "./ld.so someprog" to test out a new version of
+ the loader. We need to make sure that it is out of the way of the program
+ that it will "exec", and that there is sufficient room for the brk. */
+
+#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
+
/* $0 is set by ld.so to a pointer to a function which might be
registered using atexit. This provides a mean for the dynamic
linker to call DT_FINI functions for shared libraries that have
diff --git a/include/asm-alpha/floppy.h b/include/asm-alpha/floppy.h
index b9471de7b..9be100c4f 100644
--- a/include/asm-alpha/floppy.h
+++ b/include/asm-alpha/floppy.h
@@ -48,6 +48,8 @@ static int FDC2 = -1;
#define N_FDC 2
#define N_DRIVE 8
+#define FLOPPY_MOTOR_MASK 0xf0
+
/*
* Most Alphas have no problems with floppy DMA crossing 64k borders. Sigh...
*/
diff --git a/include/asm-alpha/pgtable.h b/include/asm-alpha/pgtable.h
index 7d80c32f8..fdb1e4d0b 100644
--- a/include/asm-alpha/pgtable.h
+++ b/include/asm-alpha/pgtable.h
@@ -18,6 +18,7 @@
#define flush_cache_range(mm, start, end) do { } while (0)
#define flush_cache_page(vma, vmaddr) do { } while (0)
#define flush_page_to_ram(page) do { } while (0)
+#define flush_icache_range(start, end) do { } while (0)
/*
* Force a context reload. This is needed when we
diff --git a/include/asm-alpha/uaccess.h b/include/asm-alpha/uaccess.h
index 870fd290c..a76b1fc38 100644
--- a/include/asm-alpha/uaccess.h
+++ b/include/asm-alpha/uaccess.h
@@ -10,6 +10,10 @@
* performed or not. If get_fs() == USER_DS, checking is performed, with
* get_fs() == KERNEL_DS, checking is bypassed.
*
+ * Or at least it did once upon a time. Nowadays it is a mask that
+ * defines which bits of the address space are off limits. This is a
+ * wee bit faster than the above.
+ *
* For historical reasons, these macros are grossly misnamed.
*/
@@ -20,9 +24,17 @@
#define VERIFY_WRITE 1
#define get_fs() (current->tss.fs)
-#define set_fs(x) (current->tss.fs = (x))
#define get_ds() (KERNEL_DS)
+/* Our scheme relies on all bits being preserved. Trap those evil
+ Intellists in their plot to use unsigned short. */
+
+extern unsigned long __bad_fs_size(void);
+
+#define set_fs(x) (current->tss.fs = \
+ sizeof(x) == sizeof(unsigned long) ? (x) \
+ : __bad_fs_size())
+
/*
* Is a address valid? This does a straighforward calculation rather
* than tests.