~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/powerpc/include/asm/smp.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#include <linux/threads.h>
21
21
#include <linux/cpumask.h>
22
22
#include <linux/kernel.h>
 
23
#include <linux/irqreturn.h>
23
24
 
24
25
#ifndef __ASSEMBLY__
25
26
 
29
30
#include <asm/percpu.h>
30
31
 
31
32
extern int boot_cpuid;
 
33
extern int boot_cpu_count;
32
34
 
33
35
extern void cpu_die(void);
34
36
 
35
37
#ifdef CONFIG_SMP
36
38
 
37
 
extern void smp_send_debugger_break(int cpu);
38
 
extern void smp_message_recv(int);
 
39
struct smp_ops_t {
 
40
        void  (*message_pass)(int cpu, int msg);
 
41
#ifdef CONFIG_PPC_SMP_MUXED_IPI
 
42
        void  (*cause_ipi)(int cpu, unsigned long data);
 
43
#endif
 
44
        int   (*probe)(void);
 
45
        int   (*kick_cpu)(int nr);
 
46
        void  (*setup_cpu)(int nr);
 
47
        void  (*bringup_done)(void);
 
48
        void  (*take_timebase)(void);
 
49
        void  (*give_timebase)(void);
 
50
        int   (*cpu_disable)(void);
 
51
        void  (*cpu_die)(unsigned int nr);
 
52
        int   (*cpu_bootable)(unsigned int nr);
 
53
};
 
54
 
 
55
extern void smp_send_debugger_break(void);
 
56
extern void start_secondary_resume(void);
 
57
extern void __devinit smp_generic_give_timebase(void);
 
58
extern void __devinit smp_generic_take_timebase(void);
39
59
 
40
60
DECLARE_PER_CPU(unsigned int, cpu_pvr);
41
61
 
42
62
#ifdef CONFIG_HOTPLUG_CPU
43
 
extern void fixup_irqs(const struct cpumask *map);
 
63
extern void migrate_irqs(void);
44
64
int generic_cpu_disable(void);
45
 
int generic_cpu_enable(unsigned int cpu);
46
65
void generic_cpu_die(unsigned int cpu);
47
66
void generic_mach_cpu_die(void);
 
67
void generic_set_cpu_dead(unsigned int cpu);
48
68
#endif
49
69
 
50
70
#ifdef CONFIG_PPC64
92
112
#define PPC_MSG_CALL_FUNC_SINGLE        2
93
113
#define PPC_MSG_DEBUGGER_BREAK  3
94
114
 
95
 
/*
96
 
 * irq controllers that have dedicated ipis per message and don't
97
 
 * need additional code in the action handler may use this
98
 
 */
 
115
/* for irq controllers that have dedicated ipis per message (4) */
99
116
extern int smp_request_message_ipi(int virq, int message);
100
117
extern const char *smp_ipi_name[];
101
118
 
 
119
/* for irq controllers with only a single ipi */
 
120
extern void smp_muxed_ipi_set_data(int cpu, unsigned long data);
 
121
extern void smp_muxed_ipi_message_pass(int cpu, int msg);
 
122
extern void smp_muxed_ipi_resend(void);
 
123
extern irqreturn_t smp_ipi_demux(void);
 
124
 
102
125
void smp_init_iSeries(void);
103
126
void smp_init_pSeries(void);
104
127
void smp_init_cell(void);
148
171
 
149
172
extern int smp_mpic_probe(void);
150
173
extern void smp_mpic_setup_cpu(int cpu);
151
 
extern void smp_generic_kick_cpu(int nr);
 
174
extern int smp_generic_kick_cpu(int nr);
152
175
 
153
176
extern void smp_generic_give_timebase(void);
154
177
extern void smp_generic_take_timebase(void);