blob: c7590166e741c6bc1921d2bae11cdf73003cb757 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
Ben Cheng94a85f62012-03-06 15:45:52 -080010 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080017 ****************************************************************************
18 ****************************************************************************/
19#ifndef __ASM_I386_PROCESSOR_H
20#define __ASM_I386_PROCESSOR_H
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080021#include <asm/vm86.h>
22#include <asm/math_emu.h>
Ben Cheng94a85f62012-03-06 15:45:52 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080024#include <asm/segment.h>
25#include <asm/page.h>
26#include <asm/types.h>
27#include <asm/sigcontext.h>
Ben Cheng94a85f62012-03-06 15:45:52 -080028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029#include <asm/cpufeature.h>
30#include <asm/msr.h>
31#include <asm/system.h>
32#include <linux/cache.h>
Ben Cheng94a85f62012-03-06 15:45:52 -080033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080034#include <linux/threads.h>
35#include <asm/percpu.h>
36#include <linux/cpumask.h>
37#include <linux/init.h>
Ben Cheng94a85f62012-03-06 15:45:52 -080038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080039#include <asm/processor-flags.h>
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080040struct desc_struct {
41 unsigned long a,b;
42};
Ben Cheng94a85f62012-03-06 15:45:52 -080043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080044#define desc_empty(desc) (!((desc)->a | (desc)->b))
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080045#define desc_equal(desc1, desc2) (((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b))
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080046#define current_text_addr() ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080047struct cpuinfo_x86 {
Ben Cheng94a85f62012-03-06 15:45:52 -080048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080049 __u8 x86;
50 __u8 x86_vendor;
51 __u8 x86_model;
52 __u8 x86_mask;
Ben Cheng94a85f62012-03-06 15:45:52 -080053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080054 char wp_works_ok;
55 char hlt_works_ok;
56 char hard_math;
57 char rfu;
Ben Cheng94a85f62012-03-06 15:45:52 -080058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080059 int cpuid_level;
60 unsigned long x86_capability[NCAPINTS];
61 char x86_vendor_id[16];
62 char x86_model_id[64];
Ben Cheng94a85f62012-03-06 15:45:52 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080064 int x86_cache_size;
65 int x86_cache_alignment;
66 char fdiv_bug;
67 char f00f_bug;
Ben Cheng94a85f62012-03-06 15:45:52 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080069 char coma_bug;
70 char pad0;
71 int x86_power;
72 unsigned long loops_per_jiffy;
Ben Cheng94a85f62012-03-06 15:45:52 -080073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080074 unsigned char x86_max_cores;
75 unsigned char apicid;
76 unsigned short x86_clflush_size;
77} __attribute__((__aligned__(SMP_CACHE_BYTES)));
Ben Cheng94a85f62012-03-06 15:45:52 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080079#define X86_VENDOR_INTEL 0
80#define X86_VENDOR_CYRIX 1
81#define X86_VENDOR_AMD 2
82#define X86_VENDOR_UMC 3
Ben Cheng94a85f62012-03-06 15:45:52 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080084#define X86_VENDOR_NEXGEN 4
85#define X86_VENDOR_CENTAUR 5
86#define X86_VENDOR_TRANSMETA 7
87#define X86_VENDOR_NSC 8
Ben Cheng94a85f62012-03-06 15:45:52 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080089#define X86_VENDOR_NUM 9
90#define X86_VENDOR_UNKNOWN 0xff
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080091#define cpu_data(cpu) boot_cpu_data
92#define current_cpu_data boot_cpu_data
Ben Cheng94a85f62012-03-06 15:45:52 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080094#define load_cr3(pgdir) write_cr3(__pa(pgdir))
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080095#define TASK_SIZE (PAGE_OFFSET)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080096#define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080097#define HAVE_ARCH_PICK_MMAP_LAYOUT
Ben Cheng94a85f62012-03-06 15:45:52 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080099#define IO_BITMAP_BITS 65536
100#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
101#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
102#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
Ben Cheng94a85f62012-03-06 15:45:52 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800104#define INVALID_IO_BITMAP_OFFSET 0x8000
105#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800106struct i387_fsave_struct {
107 long cwd;
Ben Cheng94a85f62012-03-06 15:45:52 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800109 long swd;
110 long twd;
111 long fip;
112 long fcs;
Ben Cheng94a85f62012-03-06 15:45:52 -0800113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800114 long foo;
115 long fos;
116 long st_space[20];
117 long status;
Ben Cheng94a85f62012-03-06 15:45:52 -0800118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800119};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800120struct i387_fxsave_struct {
121 unsigned short cwd;
122 unsigned short swd;
Ben Cheng94a85f62012-03-06 15:45:52 -0800123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800124 unsigned short twd;
125 unsigned short fop;
126 long fip;
127 long fcs;
Ben Cheng94a85f62012-03-06 15:45:52 -0800128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800129 long foo;
130 long fos;
131 long mxcsr;
132 long mxcsr_mask;
Ben Cheng94a85f62012-03-06 15:45:52 -0800133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800134 long st_space[32];
135 long xmm_space[32];
136 long padding[56];
137} __attribute__ ((aligned (16)));
Ben Cheng94a85f62012-03-06 15:45:52 -0800138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800139struct i387_soft_struct {
140 long cwd;
141 long swd;
142 long twd;
Ben Cheng94a85f62012-03-06 15:45:52 -0800143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800144 long fip;
145 long fcs;
146 long foo;
147 long fos;
Ben Cheng94a85f62012-03-06 15:45:52 -0800148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800149 long st_space[20];
150 unsigned char ftop, changed, lookahead, no_update, rm, alimit;
151 struct info *info;
152 unsigned long entry_eip;
Ben Cheng94a85f62012-03-06 15:45:52 -0800153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800154};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800155union i387_union {
156 struct i387_fsave_struct fsave;
157 struct i387_fxsave_struct fxsave;
Ben Cheng94a85f62012-03-06 15:45:52 -0800158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800159 struct i387_soft_struct soft;
160};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800161typedef struct {
162 unsigned long seg;
Ben Cheng94a85f62012-03-06 15:45:52 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800164} mm_segment_t;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800165struct thread_struct;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800166struct i386_hw_tss {
167 unsigned short back_link,__blh;
Ben Cheng94a85f62012-03-06 15:45:52 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800169 unsigned long esp0;
170 unsigned short ss0,__ss0h;
171 unsigned long esp1;
172 unsigned short ss1,__ss1h;
Ben Cheng94a85f62012-03-06 15:45:52 -0800173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800174 unsigned long esp2;
175 unsigned short ss2,__ss2h;
176 unsigned long __cr3;
177 unsigned long eip;
Ben Cheng94a85f62012-03-06 15:45:52 -0800178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800179 unsigned long eflags;
180 unsigned long eax,ecx,edx,ebx;
181 unsigned long esp;
182 unsigned long ebp;
Ben Cheng94a85f62012-03-06 15:45:52 -0800183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800184 unsigned long esi;
185 unsigned long edi;
186 unsigned short es, __esh;
187 unsigned short cs, __csh;
Ben Cheng94a85f62012-03-06 15:45:52 -0800188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800189 unsigned short ss, __ssh;
190 unsigned short ds, __dsh;
191 unsigned short fs, __fsh;
192 unsigned short gs, __gsh;
Ben Cheng94a85f62012-03-06 15:45:52 -0800193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800194 unsigned short ldt, __ldth;
195 unsigned short trace, io_bitmap_base;
196} __attribute__((packed));
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800197struct tss_struct {
Ben Cheng94a85f62012-03-06 15:45:52 -0800198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800199 struct i386_hw_tss x86_tss;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800200 unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800201 unsigned long io_bitmap_max;
202 struct thread_struct *io_bitmap_owner;
Ben Cheng94a85f62012-03-06 15:45:52 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800204 unsigned long __cacheline_filler[35];
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800205 unsigned long stack[64];
206} __attribute__((packed));
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800207#define ARCH_MIN_TASKALIGN 16
Ben Cheng94a85f62012-03-06 15:45:52 -0800208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800209struct thread_struct {
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800210 struct desc_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
211 unsigned long esp0;
212 unsigned long sysenter_cs;
Ben Cheng94a85f62012-03-06 15:45:52 -0800213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800214 unsigned long eip;
215 unsigned long esp;
216 unsigned long fs;
217 unsigned long gs;
Ben Cheng94a85f62012-03-06 15:45:52 -0800218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800219 unsigned long debugreg[8];
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800220 unsigned long cr2, trap_no, error_code;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800221 union i387_union i387;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800222 struct vm86_struct __user * vm86_info;
Ben Cheng94a85f62012-03-06 15:45:52 -0800223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800224 unsigned long screen_bitmap;
225 unsigned long v86flags, v86mask, saved_esp0;
226 unsigned int saved_fs, saved_gs;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800227 unsigned long *io_bitmap_ptr;
Ben Cheng94a85f62012-03-06 15:45:52 -0800228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800229 unsigned long iopl;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800230 unsigned long io_bitmap_max;
231};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800232#define INIT_THREAD { .esp0 = sizeof(init_stack) + (long)&init_stack, .vm86_info = NULL, .sysenter_cs = __KERNEL_CS, .io_bitmap_ptr = NULL, .fs = __KERNEL_PERCPU, }
Ben Cheng94a85f62012-03-06 15:45:52 -0800233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800234#define INIT_TSS { .x86_tss = { .esp0 = sizeof(init_stack) + (long)&init_stack, .ss0 = __KERNEL_DS, .ss1 = __KERNEL_CS, .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, }, .io_bitmap = { [ 0 ... IO_BITMAP_LONGS] = ~0 }, }
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800235#define start_thread(regs, new_eip, new_esp) do { __asm__("movl %0,%%gs": :"r" (0)); regs->xfs = 0; set_fs(USER_DS); regs->xds = __USER_DS; regs->xes = __USER_DS; regs->xss = __USER_DS; regs->xcs = __USER_CS; regs->eip = new_eip; regs->esp = new_esp; } while (0)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800236struct task_struct;
237struct mm_struct;
Ben Cheng94a85f62012-03-06 15:45:52 -0800238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800239#define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long))
240#define KSTK_TOP(info) ({ unsigned long *__ptr = (unsigned long *)(info); (unsigned long)(&__ptr[THREAD_SIZE_LONGS]); })
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800241#define task_pt_regs(task) ({ struct pt_regs *__regs__; __regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8); __regs__ - 1; })
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800242#define KSTK_EIP(task) (task_pt_regs(task)->eip)
Ben Cheng94a85f62012-03-06 15:45:52 -0800243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800244#define KSTK_ESP(task) (task_pt_regs(task)->esp)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800245struct microcode_header {
246 unsigned int hdrver;
247 unsigned int rev;
Ben Cheng94a85f62012-03-06 15:45:52 -0800248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800249 unsigned int date;
250 unsigned int sig;
251 unsigned int cksum;
252 unsigned int ldrver;
Ben Cheng94a85f62012-03-06 15:45:52 -0800253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800254 unsigned int pf;
255 unsigned int datasize;
256 unsigned int totalsize;
257 unsigned int reserved[3];
Ben Cheng94a85f62012-03-06 15:45:52 -0800258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800259};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800260struct microcode {
261 struct microcode_header hdr;
262 unsigned int bits[0];
Ben Cheng94a85f62012-03-06 15:45:52 -0800263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800264};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800265typedef struct microcode microcode_t;
266typedef struct microcode_header microcode_header_t;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800267struct extended_signature {
Ben Cheng94a85f62012-03-06 15:45:52 -0800268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800269 unsigned int sig;
270 unsigned int pf;
271 unsigned int cksum;
272};
Ben Cheng94a85f62012-03-06 15:45:52 -0800273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800274struct extended_sigtable {
275 unsigned int count;
276 unsigned int cksum;
277 unsigned int reserved[3];
Ben Cheng94a85f62012-03-06 15:45:52 -0800278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800279 struct extended_signature sigs[0];
280};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800281#define cpu_relax() rep_nop()
282#define paravirt_enabled() 0
Ben Cheng94a85f62012-03-06 15:45:52 -0800283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800284#define __cpuid native_cpuid
285#define get_debugreg(var, register) (var) = native_get_debugreg(register)
286#define set_debugreg(value, register) native_set_debugreg(register, value)
287#define set_iopl_mask native_set_iopl_mask
Ben Cheng94a85f62012-03-06 15:45:52 -0800288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800289#define GENERIC_NOP1 ".byte 0x90\n"
290#define GENERIC_NOP2 ".byte 0x89,0xf6\n"
291#define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n"
292#define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n"
Ben Cheng94a85f62012-03-06 15:45:52 -0800293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800294#define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4
295#define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n"
296#define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n"
297#define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7
Ben Cheng94a85f62012-03-06 15:45:52 -0800298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800299#define K8_NOP1 GENERIC_NOP1
300#define K8_NOP2 ".byte 0x66,0x90\n"
301#define K8_NOP3 ".byte 0x66,0x66,0x90\n"
302#define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n"
Ben Cheng94a85f62012-03-06 15:45:52 -0800303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800304#define K8_NOP5 K8_NOP3 K8_NOP2
305#define K8_NOP6 K8_NOP3 K8_NOP3
306#define K8_NOP7 K8_NOP4 K8_NOP3
307#define K8_NOP8 K8_NOP4 K8_NOP4
Ben Cheng94a85f62012-03-06 15:45:52 -0800308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800309#define K7_NOP1 GENERIC_NOP1
310#define K7_NOP2 ".byte 0x8b,0xc0\n"
311#define K7_NOP3 ".byte 0x8d,0x04,0x20\n"
312#define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n"
Ben Cheng94a85f62012-03-06 15:45:52 -0800313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800314#define K7_NOP5 K7_NOP4 ASM_NOP1
315#define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n"
316#define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n"
317#define K7_NOP8 K7_NOP7 ASM_NOP1
Ben Cheng94a85f62012-03-06 15:45:52 -0800318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800319#define P6_NOP1 GENERIC_NOP1
320#define P6_NOP2 ".byte 0x66,0x90\n"
321#define P6_NOP3 ".byte 0x0f,0x1f,0x00\n"
322#define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n"
Ben Cheng94a85f62012-03-06 15:45:52 -0800323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800324#define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n"
325#define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n"
326#define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n"
327#define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n"
Ben Cheng94a85f62012-03-06 15:45:52 -0800328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800329#define ASM_NOP1 GENERIC_NOP1
330#define ASM_NOP2 GENERIC_NOP2
331#define ASM_NOP3 GENERIC_NOP3
332#define ASM_NOP4 GENERIC_NOP4
Ben Cheng94a85f62012-03-06 15:45:52 -0800333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800334#define ASM_NOP5 GENERIC_NOP5
335#define ASM_NOP6 GENERIC_NOP6
336#define ASM_NOP7 GENERIC_NOP7
337#define ASM_NOP8 GENERIC_NOP8
Ben Cheng94a85f62012-03-06 15:45:52 -0800338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800339#define ASM_NOP_MAX 8
340#define ARCH_HAS_PREFETCH
341#define ARCH_HAS_PREFETCH
342#define ARCH_HAS_PREFETCHW
Ben Cheng94a85f62012-03-06 15:45:52 -0800343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800344#define ARCH_HAS_SPINLOCK_PREFETCH
345#define spin_lock_prefetch(x) prefetchw(x)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800346#define cache_line_size() (boot_cpu_data.x86_cache_alignment)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800347#endif
Ben Cheng94a85f62012-03-06 15:45:52 -0800348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */