]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-x86/processor.h
x86, xsave: enable xsave/xrstor on cpus with xsave support
[linux-2.6-omap-h63xx.git] / include / asm-x86 / processor.h
index 15cb82a44e89197c294e1ad59b07f1a8978c4e1d..d7c0221c02780c24e723d81c302605c8c28214d0 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef __ASM_X86_PROCESSOR_H
-#define __ASM_X86_PROCESSOR_H
+#ifndef ASM_X86__PROCESSOR_H
+#define ASM_X86__PROCESSOR_H
 
 #include <asm/processor-flags.h>
 
@@ -134,7 +134,7 @@ extern __u32                        cleared_cpu_caps[NCAPINTS];
 #ifdef CONFIG_SMP
 DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info);
 #define cpu_data(cpu)          per_cpu(cpu_info, cpu)
-#define current_cpu_data       cpu_data(smp_processor_id())
+#define current_cpu_data       __get_cpu_var(cpu_info)
 #else
 #define cpu_data(cpu)          boot_cpu_data
 #define current_cpu_data       boot_cpu_data
@@ -346,6 +346,18 @@ struct i387_soft_struct {
        u32                     entry_eip;
 };
 
+struct xsave_hdr_struct {
+       u64 xstate_bv;
+       u64 reserved1[2];
+       u64 reserved2[5];
+} __attribute__((packed));
+
+struct xsave_struct {
+       struct i387_fxsave_struct i387;
+       struct xsave_hdr_struct xsave_hdr;
+       /* new processor state extensions will go here */
+} __attribute__ ((packed, aligned (64)));
+
 union thread_xstate {
        struct i387_fsave_struct        fsave;
        struct i387_fxsave_struct       fxsave;
@@ -920,4 +932,4 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
 extern int get_tsc_mode(unsigned long adr);
 extern int set_tsc_mode(unsigned int val);
 
-#endif
+#endif /* ASM_X86__PROCESSOR_H */