654325de02
Change-Id: I9c377436e9bf158e7236b3b7dcebf3e79fa961de
348 lines
14 KiB
C
348 lines
14 KiB
C
/****************************************************************************
|
|
****************************************************************************
|
|
***
|
|
*** This header was automatically generated from a Linux kernel header
|
|
*** of the same name, to make information necessary for userspace to
|
|
*** call into the kernel available to libc. It contains only constants,
|
|
*** structures, and macros generated from the original header, and thus,
|
|
*** contains no copyrightable information.
|
|
***
|
|
*** To edit the content of this header, modify the corresponding
|
|
*** source file (e.g. under external/kernel-headers/original/) then
|
|
*** run bionic/libc/kernel/tools/update_all.py
|
|
***
|
|
*** Any manual change here will be lost the next time this script will
|
|
*** be run. You've been warned!
|
|
***
|
|
****************************************************************************
|
|
****************************************************************************/
|
|
#ifndef __ASM_I386_PROCESSOR_H
|
|
#define __ASM_I386_PROCESSOR_H
|
|
#include <asm/vm86.h>
|
|
#include <asm/math_emu.h>
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#include <asm/segment.h>
|
|
#include <asm/page.h>
|
|
#include <asm/types.h>
|
|
#include <asm/sigcontext.h>
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#include <asm/cpufeature.h>
|
|
#include <asm/msr.h>
|
|
#include <asm/system.h>
|
|
#include <linux/cache.h>
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#include <linux/threads.h>
|
|
#include <asm/percpu.h>
|
|
#include <linux/cpumask.h>
|
|
#include <linux/init.h>
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#include <asm/processor-flags.h>
|
|
struct desc_struct {
|
|
unsigned long a,b;
|
|
};
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define desc_empty(desc) (!((desc)->a | (desc)->b))
|
|
#define desc_equal(desc1, desc2) (((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b))
|
|
#define current_text_addr() ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })
|
|
struct cpuinfo_x86 {
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
__u8 x86;
|
|
__u8 x86_vendor;
|
|
__u8 x86_model;
|
|
__u8 x86_mask;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
char wp_works_ok;
|
|
char hlt_works_ok;
|
|
char hard_math;
|
|
char rfu;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
int cpuid_level;
|
|
unsigned long x86_capability[NCAPINTS];
|
|
char x86_vendor_id[16];
|
|
char x86_model_id[64];
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
int x86_cache_size;
|
|
int x86_cache_alignment;
|
|
char fdiv_bug;
|
|
char f00f_bug;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
char coma_bug;
|
|
char pad0;
|
|
int x86_power;
|
|
unsigned long loops_per_jiffy;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned char x86_max_cores;
|
|
unsigned char apicid;
|
|
unsigned short x86_clflush_size;
|
|
} __attribute__((__aligned__(SMP_CACHE_BYTES)));
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define X86_VENDOR_INTEL 0
|
|
#define X86_VENDOR_CYRIX 1
|
|
#define X86_VENDOR_AMD 2
|
|
#define X86_VENDOR_UMC 3
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define X86_VENDOR_NEXGEN 4
|
|
#define X86_VENDOR_CENTAUR 5
|
|
#define X86_VENDOR_TRANSMETA 7
|
|
#define X86_VENDOR_NSC 8
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define X86_VENDOR_NUM 9
|
|
#define X86_VENDOR_UNKNOWN 0xff
|
|
#define cpu_data(cpu) boot_cpu_data
|
|
#define current_cpu_data boot_cpu_data
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define load_cr3(pgdir) write_cr3(__pa(pgdir))
|
|
#define TASK_SIZE (PAGE_OFFSET)
|
|
#define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
|
|
#define HAVE_ARCH_PICK_MMAP_LAYOUT
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define IO_BITMAP_BITS 65536
|
|
#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
|
|
#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
|
|
#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define INVALID_IO_BITMAP_OFFSET 0x8000
|
|
#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
|
|
struct i387_fsave_struct {
|
|
long cwd;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
long swd;
|
|
long twd;
|
|
long fip;
|
|
long fcs;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
long foo;
|
|
long fos;
|
|
long st_space[20];
|
|
long status;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
};
|
|
struct i387_fxsave_struct {
|
|
unsigned short cwd;
|
|
unsigned short swd;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned short twd;
|
|
unsigned short fop;
|
|
long fip;
|
|
long fcs;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
long foo;
|
|
long fos;
|
|
long mxcsr;
|
|
long mxcsr_mask;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
long st_space[32];
|
|
long xmm_space[32];
|
|
long padding[56];
|
|
} __attribute__ ((aligned (16)));
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
struct i387_soft_struct {
|
|
long cwd;
|
|
long swd;
|
|
long twd;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
long fip;
|
|
long fcs;
|
|
long foo;
|
|
long fos;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
long st_space[20];
|
|
unsigned char ftop, changed, lookahead, no_update, rm, alimit;
|
|
struct info *info;
|
|
unsigned long entry_eip;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
};
|
|
union i387_union {
|
|
struct i387_fsave_struct fsave;
|
|
struct i387_fxsave_struct fxsave;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
struct i387_soft_struct soft;
|
|
};
|
|
typedef struct {
|
|
unsigned long seg;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
} mm_segment_t;
|
|
struct thread_struct;
|
|
struct i386_hw_tss {
|
|
unsigned short back_link,__blh;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long esp0;
|
|
unsigned short ss0,__ss0h;
|
|
unsigned long esp1;
|
|
unsigned short ss1,__ss1h;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long esp2;
|
|
unsigned short ss2,__ss2h;
|
|
unsigned long __cr3;
|
|
unsigned long eip;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long eflags;
|
|
unsigned long eax,ecx,edx,ebx;
|
|
unsigned long esp;
|
|
unsigned long ebp;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long esi;
|
|
unsigned long edi;
|
|
unsigned short es, __esh;
|
|
unsigned short cs, __csh;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned short ss, __ssh;
|
|
unsigned short ds, __dsh;
|
|
unsigned short fs, __fsh;
|
|
unsigned short gs, __gsh;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned short ldt, __ldth;
|
|
unsigned short trace, io_bitmap_base;
|
|
} __attribute__((packed));
|
|
struct tss_struct {
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
struct i386_hw_tss x86_tss;
|
|
unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
|
|
unsigned long io_bitmap_max;
|
|
struct thread_struct *io_bitmap_owner;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long __cacheline_filler[35];
|
|
unsigned long stack[64];
|
|
} __attribute__((packed));
|
|
#define ARCH_MIN_TASKALIGN 16
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
struct thread_struct {
|
|
struct desc_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
|
|
unsigned long esp0;
|
|
unsigned long sysenter_cs;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long eip;
|
|
unsigned long esp;
|
|
unsigned long fs;
|
|
unsigned long gs;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long debugreg[8];
|
|
unsigned long cr2, trap_no, error_code;
|
|
union i387_union i387;
|
|
struct vm86_struct __user * vm86_info;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long screen_bitmap;
|
|
unsigned long v86flags, v86mask, saved_esp0;
|
|
unsigned int saved_fs, saved_gs;
|
|
unsigned long *io_bitmap_ptr;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned long iopl;
|
|
unsigned long io_bitmap_max;
|
|
};
|
|
#define INIT_THREAD { .esp0 = sizeof(init_stack) + (long)&init_stack, .vm86_info = NULL, .sysenter_cs = __KERNEL_CS, .io_bitmap_ptr = NULL, .fs = __KERNEL_PERCPU, }
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#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 }, }
|
|
#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)
|
|
struct task_struct;
|
|
struct mm_struct;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long))
|
|
#define KSTK_TOP(info) ({ unsigned long *__ptr = (unsigned long *)(info); (unsigned long)(&__ptr[THREAD_SIZE_LONGS]); })
|
|
#define task_pt_regs(task) ({ struct pt_regs *__regs__; __regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8); __regs__ - 1; })
|
|
#define KSTK_EIP(task) (task_pt_regs(task)->eip)
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define KSTK_ESP(task) (task_pt_regs(task)->esp)
|
|
struct microcode_header {
|
|
unsigned int hdrver;
|
|
unsigned int rev;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned int date;
|
|
unsigned int sig;
|
|
unsigned int cksum;
|
|
unsigned int ldrver;
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned int pf;
|
|
unsigned int datasize;
|
|
unsigned int totalsize;
|
|
unsigned int reserved[3];
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
};
|
|
struct microcode {
|
|
struct microcode_header hdr;
|
|
unsigned int bits[0];
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
};
|
|
typedef struct microcode microcode_t;
|
|
typedef struct microcode_header microcode_header_t;
|
|
struct extended_signature {
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
unsigned int sig;
|
|
unsigned int pf;
|
|
unsigned int cksum;
|
|
};
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
struct extended_sigtable {
|
|
unsigned int count;
|
|
unsigned int cksum;
|
|
unsigned int reserved[3];
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
struct extended_signature sigs[0];
|
|
};
|
|
#define cpu_relax() rep_nop()
|
|
#define paravirt_enabled() 0
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define __cpuid native_cpuid
|
|
#define get_debugreg(var, register) (var) = native_get_debugreg(register)
|
|
#define set_debugreg(value, register) native_set_debugreg(register, value)
|
|
#define set_iopl_mask native_set_iopl_mask
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define GENERIC_NOP1 ".byte 0x90\n"
|
|
#define GENERIC_NOP2 ".byte 0x89,0xf6\n"
|
|
#define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n"
|
|
#define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n"
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4
|
|
#define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n"
|
|
#define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n"
|
|
#define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define K8_NOP1 GENERIC_NOP1
|
|
#define K8_NOP2 ".byte 0x66,0x90\n"
|
|
#define K8_NOP3 ".byte 0x66,0x66,0x90\n"
|
|
#define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n"
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define K8_NOP5 K8_NOP3 K8_NOP2
|
|
#define K8_NOP6 K8_NOP3 K8_NOP3
|
|
#define K8_NOP7 K8_NOP4 K8_NOP3
|
|
#define K8_NOP8 K8_NOP4 K8_NOP4
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define K7_NOP1 GENERIC_NOP1
|
|
#define K7_NOP2 ".byte 0x8b,0xc0\n"
|
|
#define K7_NOP3 ".byte 0x8d,0x04,0x20\n"
|
|
#define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n"
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define K7_NOP5 K7_NOP4 ASM_NOP1
|
|
#define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n"
|
|
#define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n"
|
|
#define K7_NOP8 K7_NOP7 ASM_NOP1
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define P6_NOP1 GENERIC_NOP1
|
|
#define P6_NOP2 ".byte 0x66,0x90\n"
|
|
#define P6_NOP3 ".byte 0x0f,0x1f,0x00\n"
|
|
#define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n"
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n"
|
|
#define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n"
|
|
#define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n"
|
|
#define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n"
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define ASM_NOP1 GENERIC_NOP1
|
|
#define ASM_NOP2 GENERIC_NOP2
|
|
#define ASM_NOP3 GENERIC_NOP3
|
|
#define ASM_NOP4 GENERIC_NOP4
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define ASM_NOP5 GENERIC_NOP5
|
|
#define ASM_NOP6 GENERIC_NOP6
|
|
#define ASM_NOP7 GENERIC_NOP7
|
|
#define ASM_NOP8 GENERIC_NOP8
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define ASM_NOP_MAX 8
|
|
#define ARCH_HAS_PREFETCH
|
|
#define ARCH_HAS_PREFETCH
|
|
#define ARCH_HAS_PREFETCHW
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|
|
#define ARCH_HAS_SPINLOCK_PREFETCH
|
|
#define spin_lock_prefetch(x) prefetchw(x)
|
|
#define cache_line_size() (boot_cpu_data.x86_cache_alignment)
|
|
#endif
|
|
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
|