2005-04-17 06:20:36 +08: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 16:26:50 +08:00
|
|
|
* Copyright (C) 2003 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
|
2005-04-17 06:20:36 +08:00
|
|
|
*
|
|
|
|
* Licensed under the GPL
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __SYSDEP_X86_64_PTRACE_H
|
|
|
|
#define __SYSDEP_X86_64_PTRACE_H
|
|
|
|
|
2012-05-20 12:05:58 +08:00
|
|
|
#define MAX_FP_NR HOST_FP_SIZE
|
2005-04-17 06:20:36 +08: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 16:50:35 +08: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 16:27:07 +08: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-17 06:20:36 +08:00
|
|
|
|
2012-05-20 12:05:58 +08: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-17 06:20:36 +08: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 16:27:15 +08:00
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
#endif
|