Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
smp.c File Reference
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/err.h>
#include <linux/threads.h>
#include <linux/smp.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
#include <linux/irq.h>
#include <linux/cache.h>
#include <linux/profile.h>
#include <linux/bitops.h>
#include <linux/cpu.h>
#include <asm/hwrpb.h>
#include <asm/ptrace.h>
#include <linux/atomic.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
#include <asm/mmu_context.h>
#include <asm/tlbflush.h>
#include "proto.h"
#include "irq_impl.h"

Go to the source code of this file.

Data Structures

struct  flush_tlb_page_struct
 

Macros

#define DEBUG_SMP   0
 
#define DBGS(args)
 
#define asn_locked()   (cpu_data[smp_processor_id()].asn_lock)
 

Enumerations

enum  ipi_message_type {
  IPI_RESCHEDULE, IPI_CALL_FUNC, IPI_CALL_FUNC_SINGLE, IPI_CPU_STOP,
  BFIN_IPI_TIMER, BFIN_IPI_RESCHEDULE, BFIN_IPI_CALL_FUNC, BFIN_IPI_CALL_FUNC_SINGLE,
  BFIN_IPI_CPU_STOP, IPI_NOP = 0, IPI_RESCHEDULE = 1, IPI_CALL_FUNC,
  IPI_CALL_FUNC_SINGLE, IPI_CPU_STOP, IPI_TIMER, IPI_NOP =0,
  IPI_RESCHEDULE =1, IPI_CALL_FUNC, IPI_CALL_FUNC_SINGLE, IPI_CPU_START,
  IPI_CPU_STOP, IPI_CPU_TEST
}
 

Functions

 EXPORT_SYMBOL (cpu_data)
 
 EXPORT_SYMBOL (smp_num_cpus)
 
void __cpuinit smp_callin (void)
 
void __init setup_smp (void)
 
void __init smp_prepare_cpus (unsigned int max_cpus)
 
void __devinit smp_prepare_boot_cpu (void)
 
int __cpuinit __cpu_up (unsigned int cpu, struct task_struct *tidle)
 
void __init smp_cpus_done (unsigned int max_cpus)
 
void smp_percpu_timer_interrupt (struct pt_regs *regs)
 
int setup_profiling_timer (unsigned int multiplier)
 
void handle_ipi (struct pt_regs *regs)
 
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_imb (void)
 
 EXPORT_SYMBOL (smp_imb)
 
void flush_tlb_all (void)
 
void flush_tlb_mm (struct mm_struct *mm)
 
 EXPORT_SYMBOL (flush_tlb_mm)
 
void flush_tlb_page (struct vm_area_struct *vma, unsigned long addr)
 
 EXPORT_SYMBOL (flush_tlb_page)
 
void flush_tlb_range (struct vm_area_struct *vma, unsigned long start, unsigned long end)
 
 EXPORT_SYMBOL (flush_tlb_range)
 
void flush_icache_user_range (struct vm_area_struct *vma, struct page *page, unsigned long addr, int len)
 

Variables

struct cpuinfo_alpha cpu_data [NR_CPUS]
 
int smp_num_probed
 
int smp_num_cpus = 1
 

Macro Definition Documentation

#define asn_locked ( )    (cpu_data[smp_processor_id()].asn_lock)

Definition at line 670 of file smp.c.

#define DBGS (   args)

Definition at line 51 of file smp.c.

#define DEBUG_SMP   0

Definition at line 47 of file smp.c.

Enumeration Type Documentation

Enumerator:
IPI_RESCHEDULE 
IPI_CALL_FUNC 
IPI_CALL_FUNC_SINGLE 
IPI_CPU_STOP 
BFIN_IPI_TIMER 
BFIN_IPI_RESCHEDULE 
BFIN_IPI_CALL_FUNC 
BFIN_IPI_CALL_FUNC_SINGLE 
BFIN_IPI_CPU_STOP 
IPI_NOP 
IPI_RESCHEDULE 
IPI_CALL_FUNC 
IPI_CALL_FUNC_SINGLE 
IPI_CPU_STOP 
IPI_TIMER 
IPI_NOP 
IPI_RESCHEDULE 
IPI_CALL_FUNC 
IPI_CALL_FUNC_SINGLE 
IPI_CPU_START 
IPI_CPU_STOP 
IPI_CPU_TEST 

Definition at line 63 of file smp.c.

Function Documentation

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

Definition at line 477 of file smp.c.

void arch_send_call_function_ipi_mask ( const struct cpumask mask)

Definition at line 629 of file smp.c.

void arch_send_call_function_single_ipi ( int  cpu)

Definition at line 634 of file smp.c.

EXPORT_SYMBOL ( cpu_data  )
EXPORT_SYMBOL ( smp_num_cpus  )
EXPORT_SYMBOL ( smp_imb  )
EXPORT_SYMBOL ( flush_tlb_mm  )
EXPORT_SYMBOL ( flush_tlb_page  )
EXPORT_SYMBOL ( flush_tlb_range  )
void flush_icache_user_range ( struct vm_area_struct vma,
struct page page,
unsigned long  addr,
int  len 
)

Definition at line 782 of file smp.c.

void flush_tlb_all ( void  )

Definition at line 661 of file smp.c.

void flush_tlb_mm ( struct mm_struct mm)

Definition at line 683 of file smp.c.

void flush_tlb_page ( struct vm_area_struct vma,
unsigned long  addr 
)

Definition at line 729 of file smp.c.

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

Definition at line 764 of file smp.c.

void handle_ipi ( struct pt_regs regs)

Definition at line 552 of file smp.c.

int setup_profiling_timer ( unsigned int  multiplier)

Definition at line 531 of file smp.c.

void __init setup_smp ( void  )

Definition at line 401 of file smp.c.

static void __init smp_callin ( void  )

smp_callin - Set cpu_callin_map of the current CPU ID

Definition at line 120 of file smp.c.

void __init smp_cpus_done ( unsigned int  max_cpus)

Definition at line 485 of file smp.c.

void smp_imb ( void  )

Definition at line 646 of file smp.c.

void smp_percpu_timer_interrupt ( struct pt_regs regs)

Definition at line 503 of file smp.c.

void __devinit smp_prepare_boot_cpu ( void  )

Definition at line 472 of file smp.c.

void __init smp_prepare_cpus ( unsigned int  max_cpus)

Definition at line 448 of file smp.c.

void smp_send_reschedule ( int  cpu)

Definition at line 606 of file smp.c.

void smp_send_stop ( void  )

Definition at line 617 of file smp.c.

Variable Documentation

Definition at line 60 of file smp.c.

struct cpuinfo_alpha cpu_data[NR_CPUS]

Definition at line 55 of file smp.c.

int smp_num_cpus = 1

Definition at line 74 of file smp.c.

int smp_num_probed

Definition at line 73 of file smp.c.