Messages in this thread Patch in this message | | | Subject | [PATCH 12/28] UML - x86-64 headers | Date | Mon, 10 Jan 2005 02:35:41 -0500 | From | Jeff Dike <> |
| |
Add a bunch of headers to include/asm-um to support x86_64. Also move some arch-specific things from generic files to x86-specific ones.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Index: 2.6.10/include/asm-um/archparam-i386.h =================================================================== --- 2.6.10.orig/include/asm-um/archparam-i386.h 2005-01-02 20:49:59.000000000 -0500 +++ 2.6.10/include/asm-um/archparam-i386.h 2005-01-02 20:51:36.000000000 -0500 @@ -66,6 +66,13 @@ #define VSYSCALL_END vsyscall_end /* + * This is the range that is readable by user mode, and things + * acting like user mode such as get_user_pages. + */ +#define FIXADDR_USER_START VSYSCALL_BASE +#define FIXADDR_USER_END VSYSCALL_END + +/* * Architecture-neutral AT_ values in 0-17, leave some room * for more of them, start the x86-specific ones at 32. */ Index: 2.6.10/include/asm-um/archparam-x86_64.h =================================================================== --- 2.6.10.orig/include/asm-um/archparam-x86_64.h 2003-09-15 09:40:47.000000000 -0400 +++ 2.6.10/include/asm-um/archparam-x86_64.h 2005-01-02 20:51:36.000000000 -0500 @@ -0,0 +1,62 @@ +/* + * Copyright 2003 PathScale, Inc. + * + * Licensed under the GPL + */ + +#ifndef __UM_ARCHPARAM_X86_64_H +#define __UM_ARCHPARAM_X86_64_H + +#include <asm/user.h> + +#define ELF_PLATFORM "x86_64" + +#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) + +typedef unsigned long elf_greg_t; +typedef struct { } elf_fpregset_t; + +#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t)) +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; + +#define ELF_DATA ELFDATA2LSB +#define ELF_ARCH EM_X86_64 + +#define ELF_PLAT_INIT(regs, load_addr) do { \ + PT_REGS_RBX(regs) = 0; \ + PT_REGS_RCX(regs) = 0; \ + PT_REGS_RDX(regs) = 0; \ + PT_REGS_RSI(regs) = 0; \ + PT_REGS_RDI(regs) = 0; \ + PT_REGS_RBP(regs) = 0; \ + PT_REGS_RAX(regs) = 0; \ + PT_REGS_R8(regs) = 0; \ + PT_REGS_R9(regs) = 0; \ + PT_REGS_R10(regs) = 0; \ + PT_REGS_R11(regs) = 0; \ + PT_REGS_R12(regs) = 0; \ + PT_REGS_R13(regs) = 0; \ + PT_REGS_R14(regs) = 0; \ + PT_REGS_R15(regs) = 0; \ +} while (0) + +#ifdef TIF_IA32 /* XXX */ + clear_thread_flag(TIF_IA32); +#endif + +/* No user-accessible fixmap addresses, i.e. vsyscall */ +#define FIXADDR_USER_START 0 +#define FIXADDR_USER_END 0 + +#endif + +/* + * Overrides for Emacs so that we follow Linus's tabbing style. + * Emacs will notice this stuff at the end of the file and automatically + * adjust the settings for this buffer only. This must remain at the end + * of the file. + * --------------------------------------------------------------------------- + * Local variables: + * c-file-style: "linux" + * End: + */ Index: 2.6.10/include/asm-um/calling.h =================================================================== --- 2.6.10.orig/include/asm-um/calling.h 2003-09-15 09:40:47.000000000 -0400 +++ 2.6.10/include/asm-um/calling.h 2005-01-02 20:46:01.000000000 -0500 @@ -0,0 +1,9 @@ +# Copyright 2003 - 2004 Pathscale, Inc +# Released under the GPL + +#ifndef __UM_CALLING_H /* XXX x86_64 */ +#define __UM_CALLING_H + +#include "asm/arch/calling.h" + +#endif Index: 2.6.10/include/asm-um/dwarf2.h =================================================================== --- 2.6.10.orig/include/asm-um/dwarf2.h 2003-09-15 09:40:47.000000000 -0400 +++ 2.6.10/include/asm-um/dwarf2.h 2005-01-02 20:46:01.000000000 -0500 @@ -0,0 +1,11 @@ +/* Copyright 2003 - 2004 Pathscale, Inc + * Released under the GPL + */ + +/* Needed on x86_64 by thunk.S */ +#ifndef __UM_DWARF2_H +#define __UM_DWARF2_H + +#include "asm/arch/dwarf2.h" + +#endif Index: 2.6.10/include/asm-um/elf.h =================================================================== --- 2.6.10.orig/include/asm-um/elf.h 2005-01-02 20:45:21.000000000 -0500 +++ 2.6.10/include/asm-um/elf.h 2005-01-02 20:46:01.000000000 -0500 @@ -1,6 +1,7 @@ #ifndef __UM_ELF_H #define __UM_ELF_H +#include "linux/config.h" #include "asm/archparam.h" extern long elf_aux_hwcap; @@ -12,7 +13,11 @@ #define elf_check_arch(x) (1) +#ifdef CONFIG_64_BIT +#define ELF_CLASS ELFCLASS64 +#else #define ELF_CLASS ELFCLASS32 +#endif #define USE_ELF_CORE_DUMP Index: 2.6.10/include/asm-um/fixmap.h =================================================================== --- 2.6.10.orig/include/asm-um/fixmap.h 2005-01-02 20:49:59.000000000 -0500 +++ 2.6.10/include/asm-um/fixmap.h 2005-01-02 20:51:36.000000000 -0500 @@ -64,13 +64,6 @@ #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) -/* - * This is the range that is readable by user mode, and things - * acting like user mode such as get_user_pages. - */ -#define FIXADDR_USER_START VSYSCALL_BASE -#define FIXADDR_USER_END VSYSCALL_END - extern void __this_fixmap_does_not_exist(void); /* - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |