2005-04-16 15:20:36 -07:00
/*
* Copyright 2003 PathScale , Inc .
uml: throw out CONFIG_MODE_TT
This patchset throws out tt mode, which has been non-functional for a while.
This is done in phases, interspersed with code cleanups on the affected files.
The removal is done as follows:
remove all code, config options, and files which depend on
CONFIG_MODE_TT
get rid of the CHOOSE_MODE macro, which decided whether to
call tt-mode or skas-mode code, and replace invocations with their
skas portions
replace all now-trivial procedures with their skas equivalents
There are now a bunch of now-redundant pieces of data structures, including
mode-specific pieces of the thread structure, pt_regs, and mm_context. These
are all replaced with their skas-specific contents.
As part of the ongoing style compliance project, I made a style pass over all
files that were changed. There are three such patches, one for each phase,
covering the files affected by that phase but no later ones.
I noticed that we weren't freeing the LDT state associated with a process when
it exited, so that's fixed in one of the later patches.
The last patch is a tidying patch which I've had for a while, but which caused
inexplicable crashes under tt mode. Since that is no longer a problem, this
can now go in.
This patch:
Start getting rid of tt mode support.
This patch throws out CONFIG_MODE_TT and all config options, code, and files
which depend on it.
CONFIG_MODE_SKAS is gone and everything that depends on it is included
unconditionally.
The few changed lines are in re-written Kconfig help, lines which needed
something skas-related removed from them, and a few more which weren't
strictly deletions.
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 01:26:50 -07:00
* Copyright ( C ) 2003 - 2007 Jeff Dike ( jdike @ { addtoit , linux . intel } . com )
2005-04-16 15:20:36 -07:00
*
* Licensed under the GPL
*/
# ifndef __SYSDEP_X86_64_PTRACE_H
# define __SYSDEP_X86_64_PTRACE_H
2012-05-20 00:05:58 -04:00
# define MAX_FP_NR HOST_FP_SIZE
2005-04-16 15:20:36 -07:00
# define REGS_R8(r) ((r)[HOST_R8])
# define REGS_R9(r) ((r)[HOST_R9])
# define REGS_R10(r) ((r)[HOST_R10])
# define REGS_R11(r) ((r)[HOST_R11])
# define REGS_R12(r) ((r)[HOST_R12])
# define REGS_R13(r) ((r)[HOST_R13])
# define REGS_R14(r) ((r)[HOST_R14])
# define REGS_R15(r) ((r)[HOST_R15])
# define HOST_FS_BASE 21
# define HOST_GS_BASE 22
# define HOST_DS 23
# define HOST_ES 24
# define HOST_FS 25
# define HOST_GS 26
2006-09-27 01:50:35 -07:00
/* Also defined in asm/ptrace-x86_64.h, but not in libc headers. So, these
* are already defined for kernel code , but not for userspace code .
*/
# ifndef FS_BASE
/* These aren't defined in ptrace.h, but exist in struct user_regs_struct,
* which is what x86_64 ptrace actually uses .
*/
# define FS_BASE (HOST_FS_BASE * sizeof(long))
# define GS_BASE (HOST_GS_BASE * sizeof(long))
# define DS (HOST_DS * sizeof(long))
# define ES (HOST_ES * sizeof(long))
# define FS (HOST_FS * sizeof(long))
# define GS (HOST_GS * sizeof(long))
# endif
2007-10-16 01:27:07 -07:00
# define UPT_R8(r) REGS_R8((r)->gp)
# define UPT_R9(r) REGS_R9((r)->gp)
# define UPT_R10(r) REGS_R10((r)->gp)
# define UPT_R11(r) REGS_R11((r)->gp)
# define UPT_R12(r) REGS_R12((r)->gp)
# define UPT_R13(r) REGS_R13((r)->gp)
# define UPT_R14(r) REGS_R14((r)->gp)
# define UPT_R15(r) REGS_R15((r)->gp)
2005-04-16 15:20:36 -07:00
2012-05-20 00:05:58 -04:00
# define UPT_SYSCALL_ARG1(r) UPT_DI(r)
# define UPT_SYSCALL_ARG2(r) UPT_SI(r)
# define UPT_SYSCALL_ARG3(r) UPT_DX(r)
2005-04-16 15:20:36 -07:00
# define UPT_SYSCALL_ARG4(r) UPT_R10(r)
# define UPT_SYSCALL_ARG5(r) UPT_R8(r)
# define UPT_SYSCALL_ARG6(r) UPT_R9(r)
2016-03-20 00:58:41 +08:00
extern void arch_init_registers ( int pid ) ;
2007-10-16 01:27:15 -07:00
2005-04-16 15:20:36 -07:00
# endif