Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
processor.h File Reference
#include <asm/cpu-features.h>
#include <asm/segment.h>
#include <asm/cache.h>
#include <asm/processor_64.h>

Go to the source code of this file.

Data Structures

struct  tlb_info
 
struct  sh_cpuinfo
 

Macros

#define boot_cpu_data   cpu_data[0]
 
#define current_cpu_data   cpu_data[smp_processor_id()]
 
#define raw_current_cpu_data   cpu_data[raw_smp_processor_id()]
 
#define cpu_sleep()   __asm__ __volatile__ ("sleep" : : : "memory")
 
#define cpu_relax()   barrier()
 
#define GET_UNALIGN_CTL(tsk, addr)   get_unalign_ctl((tsk), (addr))
 
#define SET_UNALIGN_CTL(tsk, val)   set_unalign_ctl((tsk), (val))
 
#define SH_THREAD_UAC_NOPRINT   (1 << 0)
 
#define SH_THREAD_UAC_SIGBUS   (1 << 1)
 
#define SH_THREAD_UAC_MASK   (SH_THREAD_UAC_NOPRINT | SH_THREAD_UAC_SIGBUS)
 
#define MODE_PIN0   (1 << 0)
 
#define MODE_PIN1   (1 << 1)
 
#define MODE_PIN2   (1 << 2)
 
#define MODE_PIN3   (1 << 3)
 
#define MODE_PIN4   (1 << 4)
 
#define MODE_PIN5   (1 << 5)
 
#define MODE_PIN6   (1 << 6)
 
#define MODE_PIN7   (1 << 7)
 
#define MODE_PIN8   (1 << 8)
 
#define MODE_PIN9   (1 << 9)
 
#define MODE_PIN10   (1 << 10)
 
#define MODE_PIN11   (1 << 11)
 
#define MODE_PIN12   (1 << 12)
 
#define MODE_PIN13   (1 << 13)
 
#define MODE_PIN14   (1 << 14)
 
#define MODE_PIN15   (1 << 15)
 
#define vsyscall_init()   do { } while (0)
 
#define instruction_size(insn)   (4)
 

Enumerations

enum  cpu_type {
  CPU_MORGAN, CPU_AT32AP, CPU_MAX, pcx = 0,
  pcxs = 1, pcxt = 2, pcxt_ = 3, pcxl = 4,
  pcxl2 = 5, pcxu = 6, pcxu_ = 7, pcxw = 8,
  pcxw_ = 9, pcxw2 = 10, mako = 11, mako2 = 12,
  CPU_SH7619, CPU_SH7201, CPU_SH7203, CPU_SH7206,
  CPU_SH7263, CPU_SH7264, CPU_SH7269, CPU_MXG,
  CPU_SH7705, CPU_SH7706, CPU_SH7707, CPU_SH7708,
  CPU_SH7708S, CPU_SH7708R, CPU_SH7709, CPU_SH7709A,
  CPU_SH7710, CPU_SH7712, CPU_SH7720, CPU_SH7721,
  CPU_SH7729, CPU_SH7750, CPU_SH7750S, CPU_SH7750R,
  CPU_SH7751, CPU_SH7751R, CPU_SH7760, CPU_SH4_202,
  CPU_SH4_501, CPU_SH7763, CPU_SH7770, CPU_SH7780,
  CPU_SH7781, CPU_SH7785, CPU_SH7786, CPU_SH7723,
  CPU_SH7724, CPU_SH7757, CPU_SH7734, CPU_SHX3,
  CPU_SH7343, CPU_SH7722, CPU_SH7366, CPU_SH7372,
  CPU_SH5_101, CPU_SH5_103, CPU_SH_NONE
}
 
enum  cpu_family {
  CPU_FAMILY_SH2, CPU_FAMILY_SH2A, CPU_FAMILY_SH3, CPU_FAMILY_SH4,
  CPU_FAMILY_SH4A, CPU_FAMILY_SH4AL_DSP, CPU_FAMILY_SH5, CPU_FAMILY_UNKNOWN
}
 

Functions

struct sh_cpuinfo __attribute__ ((aligned(L1_CACHE_BYTES)))
 
void default_idle (void)
 
void stop_this_cpu (void *)
 
void cpu_init (void)
 
void cpu_probe (void)
 
void free_thread_xstate (struct task_struct *)
 
int get_unalign_ctl (struct task_struct *, unsigned long addr)
 
int set_unalign_ctl (struct task_struct *, unsigned int val)
 
const charget_cpu_subtype (struct sh_cpuinfo *c)
 
int generic_mode_pins (void)
 
int test_mode_pin (int pin)
 

Variables

unsigned int type
 
unsigned int family
 
int cut_major
 
int cut_minor
 
unsigned long loops_per_jiffy
 
unsigned long asid_cache
 
struct cache_info icache
 
struct cache_info dcache
 
struct cache_info scache
 
struct tlb_info itlb
 
struct tlb_info dtlb
 
unsigned int phys_bits
 
unsigned long flags
 
struct sh_cpuinfo cpu_data []
 
struct pt_regs fake_swapper_regs
 
unsigned int xstate_size
 
struct kmem_cachetask_xstate_cachep
 
unsigned int mem_init_done
 
struct seq_operations cpuinfo_op
 

Macro Definition Documentation

#define boot_cpu_data   cpu_data[0]

Definition at line 94 of file processor.h.

#define cpu_relax (   void)    barrier()

Definition at line 99 of file processor.h.

#define cpu_sleep ( )    __asm__ __volatile__ ("sleep" : : : "memory")

Definition at line 98 of file processor.h.

#define current_cpu_data   cpu_data[smp_processor_id()]

Definition at line 95 of file processor.h.

#define GET_UNALIGN_CTL (   tsk,
  addr 
)    get_unalign_ctl((tsk), (addr))

Definition at line 122 of file processor.h.

#define instruction_size (   insn)    (4)

Definition at line 172 of file processor.h.

#define MODE_PIN0   (1 << 0)

Definition at line 138 of file processor.h.

#define MODE_PIN1   (1 << 1)

Definition at line 139 of file processor.h.

#define MODE_PIN10   (1 << 10)

Definition at line 148 of file processor.h.

#define MODE_PIN11   (1 << 11)

Definition at line 149 of file processor.h.

#define MODE_PIN12   (1 << 12)

Definition at line 150 of file processor.h.

#define MODE_PIN13   (1 << 13)

Definition at line 151 of file processor.h.

#define MODE_PIN14   (1 << 14)

Definition at line 152 of file processor.h.

#define MODE_PIN15   (1 << 15)

Definition at line 153 of file processor.h.

#define MODE_PIN2   (1 << 2)

Definition at line 140 of file processor.h.

#define MODE_PIN3   (1 << 3)

Definition at line 141 of file processor.h.

#define MODE_PIN4   (1 << 4)

Definition at line 142 of file processor.h.

#define MODE_PIN5   (1 << 5)

Definition at line 143 of file processor.h.

#define MODE_PIN6   (1 << 6)

Definition at line 144 of file processor.h.

#define MODE_PIN7   (1 << 7)

Definition at line 145 of file processor.h.

#define MODE_PIN8   (1 << 8)

Definition at line 146 of file processor.h.

#define MODE_PIN9   (1 << 9)

Definition at line 147 of file processor.h.

#define raw_current_cpu_data   cpu_data[raw_smp_processor_id()]

Definition at line 96 of file processor.h.

#define SET_UNALIGN_CTL (   tsk,
  val 
)    set_unalign_ctl((tsk), (val))

Definition at line 123 of file processor.h.

#define SH_THREAD_UAC_MASK   (SH_THREAD_UAC_NOPRINT | SH_THREAD_UAC_SIGBUS)

Definition at line 135 of file processor.h.

#define SH_THREAD_UAC_NOPRINT   (1 << 0)

Definition at line 133 of file processor.h.

#define SH_THREAD_UAC_SIGBUS   (1 << 1)

Definition at line 134 of file processor.h.

#define vsyscall_init (   void)    do { } while (0)

Definition at line 161 of file processor.h.

Enumeration Type Documentation

enum cpu_family
Enumerator:
CPU_FAMILY_SH2 
CPU_FAMILY_SH2A 
CPU_FAMILY_SH3 
CPU_FAMILY_SH4 
CPU_FAMILY_SH4A 
CPU_FAMILY_SH4AL_DSP 
CPU_FAMILY_SH5 
CPU_FAMILY_UNKNOWN 

Definition at line 48 of file processor.h.

enum cpu_type
Enumerator:
CPU_MORGAN 
CPU_AT32AP 
CPU_MAX 
pcx 
pcxs 
pcxt 
pcxt_ 
pcxl 
pcxl2 
pcxu 
pcxu_ 
pcxw 
pcxw_ 
pcxw2 
mako 
mako2 
CPU_SH7619 
CPU_SH7201 
CPU_SH7203 
CPU_SH7206 
CPU_SH7263 
CPU_SH7264 
CPU_SH7269 
CPU_MXG 
CPU_SH7705 
CPU_SH7706 
CPU_SH7707 
CPU_SH7708 
CPU_SH7708S 
CPU_SH7708R 
CPU_SH7709 
CPU_SH7709A 
CPU_SH7710 
CPU_SH7712 
CPU_SH7720 
CPU_SH7721 
CPU_SH7729 
CPU_SH7750 
CPU_SH7750S 
CPU_SH7750R 
CPU_SH7751 
CPU_SH7751R 
CPU_SH7760 
CPU_SH4_202 
CPU_SH4_501 
CPU_SH7763 
CPU_SH7770 
CPU_SH7780 
CPU_SH7781 
CPU_SH7785 
CPU_SH7786 
CPU_SH7723 
CPU_SH7724 
CPU_SH7757 
CPU_SH7734 
CPU_SHX3 
CPU_SH7343 
CPU_SH7722 
CPU_SH7366 
CPU_SH7372 
CPU_SH5_101 
CPU_SH5_103 
CPU_SH_NONE 

Definition at line 16 of file processor.h.

Function Documentation

void cpu_init ( void  )

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().

Definition at line 376 of file setup.c.

void cpu_probe ( void  )

Definition at line 1127 of file cpu-probe.c.

void default_idle ( void  )

Definition at line 29 of file process.c.

void free_thread_xstate ( struct task_struct )

Definition at line 39 of file process.c.

int generic_mode_pins ( void  )

Definition at line 315 of file setup.c.

const char* get_cpu_subtype ( struct sh_cpuinfo c)

Definition at line 33 of file proc.c.

int get_unalign_ctl ( struct task_struct ,
unsigned long  addr 
)

Definition at line 1025 of file process.c.

int set_unalign_ctl ( struct task_struct ,
unsigned int  val 
)

Definition at line 1019 of file process.c.

void stop_this_cpu ( void unused)

stop_this_cpu - Callback to stop a CPU. : Callback context (ignored).

Definition at line 177 of file smp.c.

int test_mode_pin ( int  pin)

Definition at line 321 of file setup.c.

Variable Documentation

unsigned long asid_cache

Definition at line 95 of file processor.h.

Definition at line 55 of file smp.c.

struct seq_operations cpuinfo_op

Definition at line 1479 of file setup.c.

int cut_major

Definition at line 93 of file processor.h.

int cut_minor

Definition at line 93 of file processor.h.

Definition at line 98 of file processor.h.

Definition at line 103 of file processor.h.

struct pt_regs fake_swapper_regs

Definition at line 36 of file process_64.c.

unsigned int family

Definition at line 92 of file processor.h.

unsigned long flags

Definition at line 106 of file processor.h.

Definition at line 97 of file processor.h.

Definition at line 102 of file processor.h.

unsigned long loops_per_jiffy

Definition at line 94 of file processor.h.

unsigned int mem_init_done

Definition at line 30 of file init.c.

unsigned int phys_bits

Definition at line 105 of file processor.h.

Definition at line 99 of file processor.h.

struct kmem_cache* task_xstate_cachep

Definition at line 9 of file process.c.

unsigned int type

Definition at line 92 of file processor.h.

unsigned int xstate_size

Definition at line 10 of file process.c.