111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   To edit the content of this header, modify the corresponding
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   source file (e.g. under external/kernel-headers/original/) then
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   run bionic/libc/kernel/tools/update_all.py
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   Any manual change here will be lost the next time this script will
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   be run. You've been warned!
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __ASM_I386_PROCESSOR_H
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __ASM_I386_PROCESSOR_H
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/vm86.h>
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/math_emu.h>
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/segment.h>
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/page.h>
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/types.h>
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/sigcontext.h>
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/cpufeature.h>
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/msr.h>
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/system.h>
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/cache.h>
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/threads.h>
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/percpu.h>
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/cpumask.h>
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/init.h>
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/processor-flags.h>
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct desc_struct {
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long a,b;
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define desc_empty(desc)   (!((desc)->a | (desc)->b))
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define desc_equal(desc1, desc2)   (((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b))
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define current_text_addr() ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cpuinfo_x86 {
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 x86;
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 x86_vendor;
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 x86_model;
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 x86_mask;
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char wp_works_ok;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char hlt_works_ok;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char hard_math;
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char rfu;
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int cpuid_level;
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long x86_capability[NCAPINTS];
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char x86_vendor_id[16];
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char x86_model_id[64];
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int x86_cache_size;
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int x86_cache_alignment;
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char fdiv_bug;
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char f00f_bug;
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char coma_bug;
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char pad0;
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int x86_power;
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long loops_per_jiffy;
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char x86_max_cores;
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char apicid;
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short x86_clflush_size;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__aligned__(SMP_CACHE_BYTES)));
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_INTEL 0
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_CYRIX 1
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_AMD 2
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_UMC 3
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_NEXGEN 4
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_CENTAUR 5
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_TRANSMETA 7
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_NSC 8
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_NUM 9
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define X86_VENDOR_UNKNOWN 0xff
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define cpu_data(cpu) boot_cpu_data
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define current_cpu_data boot_cpu_data
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define load_cr3(pgdir) write_cr3(__pa(pgdir))
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TASK_SIZE (PAGE_OFFSET)
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HAVE_ARCH_PICK_MMAP_LAYOUT
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IO_BITMAP_BITS 65536
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define INVALID_IO_BITMAP_OFFSET 0x8000
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct i387_fsave_struct {
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long cwd;
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long swd;
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long twd;
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fip;
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fcs;
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long foo;
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fos;
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long st_space[20];
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long status;
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct i387_fxsave_struct {
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short cwd;
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short swd;
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short twd;
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short fop;
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fip;
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fcs;
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long foo;
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fos;
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long mxcsr;
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long mxcsr_mask;
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long st_space[32];
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long xmm_space[32];
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long padding[56];
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((aligned (16)));
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct i387_soft_struct {
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long cwd;
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long swd;
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long twd;
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fip;
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fcs;
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long foo;
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long fos;
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long st_space[20];
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ftop, changed, lookahead, no_update, rm, alimit;
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct info *info;
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long entry_eip;
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertunion i387_union {
15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct i387_fsave_struct fsave;
15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct i387_fxsave_struct fxsave;
15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct i387_soft_struct soft;
16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
16111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct {
16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long seg;
16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mm_segment_t;
16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct thread_struct;
16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct i386_hw_tss {
16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short back_link,__blh;
16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long esp0;
17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ss0,__ss0h;
17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long esp1;
17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ss1,__ss1h;
17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long esp2;
17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ss2,__ss2h;
17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long __cr3;
17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long eip;
17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long eflags;
18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long eax,ecx,edx,ebx;
18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long esp;
18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long ebp;
18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long esi;
18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long edi;
18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short es, __esh;
18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short cs, __csh;
18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ss, __ssh;
19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ds, __dsh;
19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short fs, __fsh;
19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short gs, __gsh;
19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ldt, __ldth;
19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short trace, io_bitmap_base;
19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((packed));
19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tss_struct {
19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct i386_hw_tss x86_tss;
20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long io_bitmap_max;
20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct thread_struct *io_bitmap_owner;
20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long __cacheline_filler[35];
20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long stack[64];
20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((packed));
20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_MIN_TASKALIGN 16
20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct thread_struct {
21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct desc_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long esp0;
21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long sysenter_cs;
21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long eip;
21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long esp;
21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long fs;
21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long gs;
21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long debugreg[8];
22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long cr2, trap_no, error_code;
22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union i387_union i387;
22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct vm86_struct __user * vm86_info;
22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long screen_bitmap;
22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long v86flags, v86mask, saved_esp0;
22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int saved_fs, saved_gs;
22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long *io_bitmap_ptr;
22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long iopl;
23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long io_bitmap_max;
23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define INIT_THREAD {   .esp0 = sizeof(init_stack) + (long)&init_stack,   .vm86_info = NULL,   .sysenter_cs = __KERNEL_CS,   .io_bitmap_ptr = NULL,   .fs = __KERNEL_PERCPU,  }
23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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 },  }
23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)
23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct task_struct;
23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct mm_struct;
23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long))
24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KSTK_TOP(info)  ({   unsigned long *__ptr = (unsigned long *)(info);   (unsigned long)(&__ptr[THREAD_SIZE_LONGS]);  })
24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define task_pt_regs(task)  ({   struct pt_regs *__regs__;   __regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8);   __regs__ - 1;  })
24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KSTK_EIP(task) (task_pt_regs(task)->eip)
24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KSTK_ESP(task) (task_pt_regs(task)->esp)
24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct microcode_header {
24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int hdrver;
24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int rev;
24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int date;
25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int sig;
25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int cksum;
25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int ldrver;
25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int pf;
25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int datasize;
25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int totalsize;
25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int reserved[3];
25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct microcode {
26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct microcode_header hdr;
26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int bits[0];
26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
26511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct microcode microcode_t;
26611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct microcode_header microcode_header_t;
26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct extended_signature {
26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int sig;
27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int pf;
27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int cksum;
27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct extended_sigtable {
27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int count;
27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int cksum;
27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int reserved[3];
27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct extended_signature sigs[0];
28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define cpu_relax() rep_nop()
28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define paravirt_enabled() 0
28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __cpuid native_cpuid
28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define get_debugreg(var, register)   (var) = native_get_debugreg(register)
28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define set_debugreg(value, register)   native_set_debugreg(register, value)
28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define set_iopl_mask native_set_iopl_mask
28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP1 ".byte 0x90\n"
29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP2 ".byte 0x89,0xf6\n"
29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n"
29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n"
29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4
29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n"
29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n"
29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7
29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP1 GENERIC_NOP1
30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP2 ".byte 0x66,0x90\n"
30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP3 ".byte 0x66,0x66,0x90\n"
30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n"
30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP5 K8_NOP3 K8_NOP2
30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP6 K8_NOP3 K8_NOP3
30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP7 K8_NOP4 K8_NOP3
30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K8_NOP8 K8_NOP4 K8_NOP4
30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP1 GENERIC_NOP1
31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP2 ".byte 0x8b,0xc0\n"
31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP3 ".byte 0x8d,0x04,0x20\n"
31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n"
31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP5 K7_NOP4 ASM_NOP1
31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n"
31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n"
31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K7_NOP8 K7_NOP7 ASM_NOP1
31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP1 GENERIC_NOP1
32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP2 ".byte 0x66,0x90\n"
32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP3 ".byte 0x0f,0x1f,0x00\n"
32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n"
32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n"
32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n"
32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n"
32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n"
32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP1 GENERIC_NOP1
33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP2 GENERIC_NOP2
33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP3 GENERIC_NOP3
33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP4 GENERIC_NOP4
33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP5 GENERIC_NOP5
33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP6 GENERIC_NOP6
33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP7 GENERIC_NOP7
33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP8 GENERIC_NOP8
33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ASM_NOP_MAX 8
34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_HAS_PREFETCH
34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_HAS_PREFETCH
34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_HAS_PREFETCHW
34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_HAS_SPINLOCK_PREFETCH
34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define spin_lock_prefetch(x) prefetchw(x)
34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define cache_line_size() (boot_cpu_data.x86_cache_alignment)
34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349