Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Functions | Variables
smp.c File Reference
#include <linux/err.h>
#include <linux/cache.h>
#include <linux/cpumask.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/spinlock.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/cpu.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/atomic.h>
#include <asm/processor.h>
#include <asm/mmu_context.h>
#include <asm/smp.h>
#include <asm/cacheflush.h>
#include <asm/sections.h>
#include <asm/setup.h>

Go to the source code of this file.

Data Structures

struct  flush_tlb_data
 

Functions

 DEFINE_PER_CPU (int, cpu_state)
 
void __cpuinit register_smp_ops (struct plat_smp_ops *ops)
 
void __init smp_prepare_cpus (unsigned int max_cpus)
 
void __init smp_prepare_boot_cpu (void)
 
int native_cpu_disable (unsigned int cpu)
 
void native_cpu_die (unsigned int cpu)
 
void native_play_dead (void)
 
asmlinkage void __cpuinit start_secondary (void)
 
int __cpuinit __cpu_up (unsigned int cpu, struct task_struct *tsk)
 
void __init smp_cpus_done (unsigned int max_cpus)
 
void smp_send_reschedule (int cpu)
 
void smp_send_stop (void)
 
void arch_send_call_function_ipi_mask (const struct cpumask *mask)
 
void arch_send_call_function_single_ipi (int cpu)
 
void smp_timer_broadcast (const struct cpumask *mask)
 
void smp_message_recv (unsigned int msg)
 
int setup_profiling_timer (unsigned int multiplier)
 
void flush_tlb_all (void)
 
void flush_tlb_mm (struct mm_struct *mm)
 
void flush_tlb_range (struct vm_area_struct *vma, unsigned long start, unsigned long end)
 
void flush_tlb_kernel_range (unsigned long start, unsigned long end)
 
void flush_tlb_page (struct vm_area_struct *vma, unsigned long page)
 
void flush_tlb_one (unsigned long asid, unsigned long vaddr)
 

Variables

int __cpu_number_map [NR_CPUS]
 
int __cpu_logical_map [NR_CPUS]
 
struct plat_smp_opsmp_ops = NULL
 
struct {
   unsigned long   sp
 
   unsigned long   bss_start
 
   unsigned long   bss_end
 
   void *   start_kernel_fn
 
   void *   cpu_init_fn
 
   void *   thread_info
 
stack_start
 

Function Documentation

int __cpuinit __cpu_up ( unsigned int  cpu,
struct task_struct tsk 
)

Definition at line 218 of file smp.c.

void arch_send_call_function_ipi_mask ( const struct cpumask mask)

Definition at line 275 of file smp.c.

void arch_send_call_function_single_ipi ( int  cpu)

Definition at line 283 of file smp.c.

DEFINE_PER_CPU ( int  ,
cpu_state   
)
void flush_tlb_all ( void  )

flush_tlb_all - Completely invalidate TLBs on all CPUs

Definition at line 336 of file smp.c.

void flush_tlb_kernel_range ( unsigned long  start,
unsigned long  end 
)

Definition at line 418 of file smp.c.

void flush_tlb_mm ( struct mm_struct mm)

flush_tlb_mm - Invalidate TLB of specified VM context : The VM context to invalidate.

Definition at line 358 of file smp.c.

void flush_tlb_one ( unsigned long  asid,
unsigned long  vaddr 
)

Definition at line 460 of file smp.c.

void flush_tlb_page ( struct vm_area_struct vma,
unsigned long  page 
)

flush_tlb_page - Invalidate TLB of page : The VM context to invalidate the page for. : The virtual address of the page to invalidate.

Definition at line 434 of file smp.c.

void flush_tlb_range ( struct vm_area_struct vma,
unsigned long  start,
unsigned long  end 
)

Definition at line 388 of file smp.c.

void native_cpu_die ( unsigned int  cpu)

Definition at line 165 of file smp.c.

int native_cpu_disable ( unsigned int  cpu)

Definition at line 160 of file smp.c.

void native_play_dead ( void  )

Definition at line 171 of file smp.c.

void __cpuinit register_smp_ops ( struct plat_smp_ops ops)

Definition at line 40 of file smp.c.

int setup_profiling_timer ( unsigned int  multiplier)

Definition at line 326 of file smp.c.

void __init smp_cpus_done ( unsigned int  max_cpus)

Definition at line 251 of file smp.c.

void smp_message_recv ( unsigned int  msg)

Definition at line 303 of file smp.c.

void __init smp_prepare_boot_cpu ( void  )

Definition at line 70 of file smp.c.

void __init smp_prepare_cpus ( unsigned int  max_cpus)

Definition at line 57 of file smp.c.

void smp_send_reschedule ( int  cpu)

Definition at line 265 of file smp.c.

void smp_send_stop ( void  )

Definition at line 270 of file smp.c.

void smp_timer_broadcast ( const struct cpumask mask)

Definition at line 288 of file smp.c.

asmlinkage void __cpuinit start_secondary ( void  )

Definition at line 177 of file smp.c.

Variable Documentation

int __cpu_logical_map[NR_CPUS]

Definition at line 33 of file smp.c.

int __cpu_number_map[NR_CPUS]

Definition at line 32 of file smp.c.

unsigned long bss_end

Definition at line 212 of file smp.c.

unsigned long bss_start

Definition at line 211 of file smp.c.

void* cpu_init_fn

Definition at line 214 of file smp.c.

Definition at line 35 of file smp.c.

unsigned long sp

Definition at line 210 of file smp.c.

struct { ... } stack_start

Definition at line 168 of file misc.c.

void* start_kernel_fn

Definition at line 213 of file smp.c.

Definition at line 215 of file smp.c.