提交 d46d7d75 编写于 作者: G Glauber de Oliveira Costa 提交者: Ingo Molnar

x86: unify system.h

This patch finishes the unification of system.h file.
i386 needs a constant to be defined, and it is defined inside an ifdef.

Other than that, pretty much nothing but includes are left in the arch
specific headers, and they are deleted.

[ mingo@elte.hu: 64-bit needs the cr8 access inlines. ]
Signed-off-by: NGlauber de Oliveira Costa <gcosta@redhat.com>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 0a3b4d15
...@@ -2,8 +2,12 @@ ...@@ -2,8 +2,12 @@
#define _ASM_X86_SYSTEM_H_ #define _ASM_X86_SYSTEM_H_
#include <asm/asm.h> #include <asm/asm.h>
#include <asm/segment.h>
#include <asm/cpufeature.h>
#include <asm/cmpxchg.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/irqflags.h>
#ifdef CONFIG_X86_32 #ifdef CONFIG_X86_32
#define AT_VECTOR_SIZE_ARCH 2 /* entries in ARCH_DLINFO */ #define AT_VECTOR_SIZE_ARCH 2 /* entries in ARCH_DLINFO */
...@@ -34,7 +38,10 @@ extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev, ...@@ -34,7 +38,10 @@ extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev,
"2" (prev), "d" (next)); \ "2" (prev), "d" (next)); \
} while (0) } while (0)
# include "system_32.h" /*
* disable hlt during certain critical i/o operations
*/
#define HAVE_DISABLE_HLT
#else #else
#define __SAVE(reg, offset) "movq %%" #reg ",(14-" #offset ")*8(%%rsp)\n\t" #define __SAVE(reg, offset) "movq %%" #reg ",(14-" #offset ")*8(%%rsp)\n\t"
#define __RESTORE(reg, offset) "movq (14-" #offset ")*8(%%rsp),%%" #reg "\n\t" #define __RESTORE(reg, offset) "movq (14-" #offset ")*8(%%rsp),%%" #reg "\n\t"
...@@ -69,7 +76,6 @@ extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev, ...@@ -69,7 +76,6 @@ extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev,
[thread_info] "i" (offsetof(struct task_struct, stack)), \ [thread_info] "i" (offsetof(struct task_struct, stack)), \
[pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)) \ [pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)) \
: "memory", "cc" __EXTRA_CLOBBER) : "memory", "cc" __EXTRA_CLOBBER)
# include "system_64.h"
#endif #endif
#ifdef __KERNEL__ #ifdef __KERNEL__
...@@ -236,6 +242,22 @@ static inline void native_wbinvd(void) ...@@ -236,6 +242,22 @@ static inline void native_wbinvd(void)
#define write_cr4(x) (native_write_cr4(x)) #define write_cr4(x) (native_write_cr4(x))
#define wbinvd() (native_wbinvd()) #define wbinvd() (native_wbinvd())
#ifdef CONFIG_X86_64
static inline unsigned long read_cr8(void)
{
unsigned long cr8;
asm volatile("movq %%cr8,%0" : "=r" (cr8));
return cr8;
}
static inline void write_cr8(unsigned long val)
{
asm volatile("movq %0,%%cr8" :: "r" (val) : "memory");
}
#endif
/* Clear the 'TS' bit */ /* Clear the 'TS' bit */
#define clts() (native_clts()) #define clts() (native_clts())
......
#ifndef __ASM_SYSTEM_H
#define __ASM_SYSTEM_H
#include <asm/segment.h>
#include <asm/cpufeature.h>
#include <asm/cmpxchg.h>
#include <linux/irqflags.h>
/*
* disable hlt during certain critical i/o operations
*/
#define HAVE_DISABLE_HLT
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册