Linux Kernel
3.7.1
|
#include <asm/processor-flags.h>
#include <asm/vm86.h>
#include <asm/math_emu.h>
#include <asm/segment.h>
#include <asm/types.h>
#include <asm/sigcontext.h>
#include <asm/current.h>
#include <asm/cpufeature.h>
#include <asm/page.h>
#include <asm/pgtable_types.h>
#include <asm/percpu.h>
#include <asm/msr.h>
#include <asm/desc_defs.h>
#include <asm/nops.h>
#include <asm/special_insns.h>
#include <linux/personality.h>
#include <linux/cpumask.h>
#include <linux/cache.h>
#include <linux/threads.h>
#include <linux/math64.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/irqflags.h>
Go to the source code of this file.
Data Structures | |
struct | cpuinfo_x86 |
struct | x86_hw_tss |
struct | tss_struct |
struct | orig_ist |
struct | i387_fsave_struct |
struct | i387_fxsave_struct |
struct | i387_soft_struct |
struct | ymmh_struct |
struct | xsave_hdr_struct |
struct | xsave_struct |
union | thread_xstate |
struct | fpu |
struct | thread_struct |
struct | mm_segment_t |
struct | aperfmperf |
Enumerations | |
enum | tlb_infos { ENTRIES, NR_INFO } |
enum | idle_boot_override { IDLE_NO_OVERRIDE =0, IDLE_HALT, IDLE_FORCE_MWAIT, IDLE_NOMWAIT, IDLE_POLL, IDLE_NO_OVERRIDE =0, IDLE_HALT, IDLE_NOMWAIT, IDLE_POLL, IDLE_FORCE_MWAIT } |
#define __cpuid native_cpuid |
Definition at line 541 of file processor.h.
#define APERFMPERF_SHIFT 10 |
Definition at line 951 of file processor.h.
#define ARCH_HAS_PREFETCHW |
Definition at line 773 of file processor.h.
#define ARCH_HAS_SPINLOCK_PREFETCH |
Definition at line 774 of file processor.h.
#define ARCH_MIN_MMSTRUCT_ALIGN 0 |
Definition at line 61 of file processor.h.
#define ARCH_MIN_TASKALIGN 16 |
Definition at line 60 of file processor.h.
#define BASE_PREFETCH "prefetcht0 (%1)" |
Definition at line 780 of file processor.h.
#define cache_line_size | ( | ) | (boot_cpu_data.x86_cache_alignment) |
Definition at line 177 of file processor.h.
#define cpu_data | ( | cpu | ) | boot_cpu_data |
Definition at line 163 of file processor.h.
Definition at line 985 of file processor.h.
#define cpu_info boot_cpu_data |
Definition at line 162 of file processor.h.
#define GET_TSC_CTL | ( | adr | ) | get_tsc_mode((adr)) |
Definition at line 931 of file processor.h.
#define HAVE_ARCH_PICK_MMAP_LAYOUT 1 |
Definition at line 772 of file processor.h.
#define HBP_NUM 4 |
Definition at line 42 of file processor.h.
#define IA32_PAGE_OFFSET |
Definition at line 884 of file processor.h.
#define INIT_THREAD |
Definition at line 895 of file processor.h.
#define INIT_TSS |
Definition at line 899 of file processor.h.
#define INVALID_IO_BITMAP_OFFSET 0x8000 |
Definition at line 269 of file processor.h.
#define IO_BITMAP_BITS 65536 |
Definition at line 265 of file processor.h.
#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8) |
Definition at line 266 of file processor.h.
#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long)) |
Definition at line 267 of file processor.h.
#define IO_BITMAP_OFFSET offsetof(struct tss_struct, io_bitmap) |
Definition at line 268 of file processor.h.
#define KSTK_EIP | ( | task | ) | (task_pt_regs(task)->ip) |
Definition at line 928 of file processor.h.
#define MXCSR_DEFAULT 0x1f80 |
Definition at line 301 of file processor.h.
#define NET_IP_ALIGN 0 |
Definition at line 40 of file processor.h.
#define paravirt_enabled | ( | ) | 0 |
Definition at line 542 of file processor.h.
#define set_iopl_mask native_set_iopl_mask |
Definition at line 550 of file processor.h.
#define SET_TSC_CTL | ( | val | ) | set_tsc_mode((val)) |
Definition at line 932 of file processor.h.
#define STACK_TOP TASK_SIZE |
Definition at line 892 of file processor.h.
#define STACK_TOP_MAX TASK_SIZE_MAX |
Definition at line 893 of file processor.h.
#define task_pt_regs | ( | tsk | ) | ((struct pt_regs *)(tsk)->thread.sp0 - 1) |
Definition at line 909 of file processor.h.
#define TASK_SIZE |
Definition at line 887 of file processor.h.
#define TASK_SIZE_MAX ((1UL << 47) - PAGE_SIZE) |
Definition at line 879 of file processor.h.
#define TASK_SIZE_OF | ( | child | ) |
Definition at line 889 of file processor.h.
#define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) |
Definition at line 926 of file processor.h.
Definition at line 907 of file processor.h.
#define X86_VENDOR_AMD 2 |
Definition at line 139 of file processor.h.
#define X86_VENDOR_CENTAUR 5 |
Definition at line 141 of file processor.h.
#define X86_VENDOR_CYRIX 1 |
Definition at line 138 of file processor.h.
#define X86_VENDOR_INTEL 0 |
Definition at line 137 of file processor.h.
#define X86_VENDOR_NSC 8 |
Definition at line 143 of file processor.h.
#define X86_VENDOR_NUM 9 |
Definition at line 144 of file processor.h.
#define X86_VENDOR_TRANSMETA 7 |
Definition at line 142 of file processor.h.
#define X86_VENDOR_UMC 3 |
Definition at line 140 of file processor.h.
#define X86_VENDOR_UNKNOWN 0xff |
Definition at line 146 of file processor.h.
enum idle_boot_override |
IDLE_NO_OVERRIDE | |
IDLE_HALT | |
IDLE_FORCE_MWAIT | |
IDLE_NOMWAIT | |
IDLE_POLL | |
IDLE_NO_OVERRIDE | |
IDLE_HALT | |
IDLE_NOMWAIT | |
IDLE_POLL | |
IDLE_FORCE_MWAIT |
Definition at line 718 of file processor.h.
enum tlb_infos |
Definition at line 64 of file processor.h.
struct cpuinfo_x86 __attribute__ | ( | (__aligned__(SMP_CACHE_BYTES)) | ) |
|
read |
Definition at line 171 of file esd_usb2.c.
struct i387_fxsave_struct __attribute__ | ( | (aligned(16)) | ) |
struct xsave_struct __attribute__ | ( | (packed, aligned(64)) | ) |
void cpu_detect | ( | struct cpuinfo_x86 * | c | ) |
cpu_init
This is our initial entry point for each CPU, and is invoked on the boot CPU prior to calling start_kernel(). For SMP, a combination of this and start_secondary() will bring up each processor to a ready state prior to hand forking the idle loop.
We do all of the basic processor init here, including setting up the caches, FPU, DSP, etc. By the time start_kernel() is hit (and subsequently platform_setup()) things like determining the CPU subtype and initial configuration will all be done.
Each processor family is still responsible for doing its own probing and cache configuration in cpu_probe().
DECLARE_PER_CPU | ( | unsigned | long, |
old_rsp | |||
) |
DECLARE_PER_CPU_SHARED_ALIGNED | ( | struct tss_struct | , |
init_tss | |||
) |
void detect_extended_topology | ( | struct cpuinfo_x86 * | c | ) |
Definition at line 29 of file topology.c.
void detect_ht | ( | struct cpuinfo_x86 * | c | ) |
Definition at line 226 of file vdso32-setup.c.
void free_thread_xstate | ( | struct task_struct * | ) |
unsigned long get_wchan | ( | struct task_struct * | p | ) |
void identify_secondary_cpu | ( | struct cpuinfo_x86 * | ) |
unsigned int init_intel_cacheinfo | ( | struct cpuinfo_x86 * | c | ) |
Definition at line 575 of file intel_cacheinfo.c.
void init_scattered_cpuid_features | ( | struct cpuinfo_x86 * | c | ) |
Definition at line 27 of file scattered.c.
unsigned long KSTK_ESP | ( | struct task_struct * | task | ) |
Definition at line 546 of file process_64.c.
void print_cpu_info | ( | struct cpuinfo_x86 * | ) |
void print_cpu_msr | ( | struct cpuinfo_x86 * | ) |
void release_thread | ( | struct task_struct * | ) |
void set_task_blockstep | ( | struct task_struct * | task, |
bool | on | ||
) |
Definition at line 277 of file vdso32-setup.c.
union { ... } |
union { ... } |
union thread_xstate __attribute__ |
u16 apicid |
Definition at line 173 of file processor.h.
unsigned int BIOS_revision |
struct cpuinfo_x86 boot_cpu_data |
u16 booted_cores |
Definition at line 177 of file processor.h.
u8 compute_unit_id |
Definition at line 183 of file processor.h.
u16 cpu_core_id |
Definition at line 181 of file processor.h.
u16 cpu_index |
Definition at line 185 of file processor.h.
int cpuid_level |
Definition at line 162 of file processor.h.
struct seq_operations cpuinfo_op |
u16 cwd |
Definition at line 353 of file processor.h.
struct tss_struct doublefault_tss |
__u32 extended_cpuid_level |
Definition at line 160 of file processor.h.
u32 fcs |
Definition at line 364 of file processor.h.
u32 fip |
Definition at line 363 of file processor.h.
void foo |
Definition at line 365 of file processor.h.
u16 fop |
Definition at line 356 of file processor.h.
u32 fos |
Definition at line 366 of file processor.h.
struct i387_fxsave_struct i387 |
Definition at line 391 of file processor.h.
u16 initial_apicid |
Definition at line 174 of file processor.h.
u16 io_bitmap_base |
Definition at line 269 of file processor.h.
u64 ist[7] |
Definition at line 265 of file processor.h.
unsigned long loops_per_jiffy |
Definition at line 170 of file processor.h.
unsigned int machine_id |
Definition at line 78 of file setup-common.c.
unsigned int machine_submodel_id |
u32 microcode |
Definition at line 186 of file processor.h.
u32 mxcsr |
Definition at line 369 of file processor.h.
u32 mxcsr_mask |
Definition at line 370 of file processor.h.
struct cpuinfo_x86 new_cpu_data |
unsigned short num_cache_leaves |
Definition at line 167 of file intel_cacheinfo.c.
u32 padding[12] |
Definition at line 378 of file processor.h.
u32 padding1[12] |
Definition at line 381 of file processor.h.
u16 phys_proc_id |
Definition at line 179 of file processor.h.
u64 rdp |
Definition at line 360 of file processor.h.
u64 reserved1[2] |
Definition at line 260 of file processor.h.
u64 reserved2[5] |
Definition at line 264 of file processor.h.
u32 reserved3 |
Definition at line 266 of file processor.h.
u32 reserved4 |
Definition at line 267 of file processor.h.
u16 reserved5 |
Definition at line 268 of file processor.h.
u64 rip |
Definition at line 359 of file processor.h.
u64 sp0 |
Definition at line 261 of file processor.h.
u64 sp1 |
Definition at line 262 of file processor.h.
u64 sp2 |
Definition at line 263 of file processor.h.
u32 st_space[32] |
Definition at line 373 of file processor.h.
u32 sw_reserved[12] |
Definition at line 382 of file processor.h.
u16 swd |
Definition at line 354 of file processor.h.
struct kmem_cache* task_xstate_cachep |
s8 __read_mostly tlb_flushall_shift |
u16 __read_mostly tlb_lld_2m[NR_INFO] |
u16 __read_mostly tlb_lld_4k[NR_INFO] |
u16 __read_mostly tlb_lld_4m[NR_INFO] |
u16 __read_mostly tlb_lli_2m[NR_INFO] |
u16 __read_mostly tlb_lli_4k[NR_INFO] |
u16 __read_mostly tlb_lli_4m[NR_INFO] |
u16 twd |
Definition at line 355 of file processor.h.
__u8 x86 |
Definition at line 136 of file processor.h.
int x86_cache_alignment |
Definition at line 168 of file processor.h.
int x86_cache_size |
Definition at line 167 of file processor.h.
Definition at line 163 of file processor.h.
u16 x86_clflush_size |
Definition at line 175 of file processor.h.
__u8 x86_coreid_bits |
Definition at line 158 of file processor.h.
__u8 x86_mask |
Definition at line 139 of file processor.h.
u16 x86_max_cores |
Definition at line 172 of file processor.h.
__u8 x86_model |
Definition at line 138 of file processor.h.
char x86_model_id[64] |
Definition at line 165 of file processor.h.
__u8 x86_phys_bits |
Definition at line 156 of file processor.h.
int x86_power |
Definition at line 169 of file processor.h.
int x86_tlbsize |
Definition at line 153 of file processor.h.
__u8 x86_vendor |
Definition at line 137 of file processor.h.
char x86_vendor_id[16] |
Definition at line 164 of file processor.h.
__u8 x86_virt_bits |
Definition at line 155 of file processor.h.
u32 xmm_space[64] |
Definition at line 376 of file processor.h.
struct xsave_hdr_struct xsave_hdr |
Definition at line 392 of file processor.h.
u64 xstate_bv |
Definition at line 384 of file processor.h.
struct ymmh_struct ymmh |
Definition at line 393 of file processor.h.