提交 b7afdb7e 编写于 作者: S Sam Ravnborg 提交者: David S. Miller

sparc32: add irq + smp declarations to headers

In preparation for cleaning up a number of files add
declarations for irq and smp related data/functions to
the relevant headers.

This showed that the extern declaration of cputypval differed
in the two files where it was used.
As cputypval is defined like this:

cputypval:
        .asciz "sun4c"

the correct representation is a char array.
Fix users to use the new declaration.
Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 e046b1e9
...@@ -4,4 +4,7 @@ ...@@ -4,4 +4,7 @@
/* Default "unsigned long" context */ /* Default "unsigned long" context */
typedef unsigned long mm_context_t; typedef unsigned long mm_context_t;
/* mm/srmmu.c */
extern ctxd_t *srmmu_ctx_table_phys;
#endif #endif
...@@ -29,10 +29,16 @@ ...@@ -29,10 +29,16 @@
*/ */
extern unsigned char boot_cpu_id; extern unsigned char boot_cpu_id;
extern volatile unsigned long cpu_callin_map[NR_CPUS];
extern cpumask_t smp_commenced_mask;
extern struct linux_prom_registers smp_penguin_ctable;
typedef void (*smpfunc_t)(unsigned long, unsigned long, unsigned long, typedef void (*smpfunc_t)(unsigned long, unsigned long, unsigned long,
unsigned long, unsigned long); unsigned long, unsigned long);
void cpu_panic(void);
extern void smp4m_irq_rotate(int cpu);
/* /*
* General functions that each host system must provide. * General functions that each host system must provide.
*/ */
......
...@@ -130,9 +130,9 @@ EXPORT_SYMBOL(arch_local_irq_restore); ...@@ -130,9 +130,9 @@ EXPORT_SYMBOL(arch_local_irq_restore);
static void irq_panic(void) static void irq_panic(void)
{ {
extern char *cputypval; prom_printf("machine: %s doesn't have irq handlers defined!\n",
prom_printf("machine: %s doesn't have irq handlers defined!\n",cputypval); &cputypval[0]);
prom_halt(); prom_halt();
} }
void (*sparc_init_timers)(irq_handler_t ) = void (*sparc_init_timers)(irq_handler_t ) =
......
...@@ -26,6 +26,53 @@ extern int static_irq_count; ...@@ -26,6 +26,53 @@ extern int static_irq_count;
extern spinlock_t irq_action_lock; extern spinlock_t irq_action_lock;
extern void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs); extern void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs);
extern void init_IRQ(void);
/* sun4c_irq.c */
extern void sun4c_init_IRQ(void);
/* sun4m_irq.c */
extern unsigned int lvl14_resolution;
extern void sun4m_init_IRQ(void);
extern void sun4m_clear_profile_irq(int cpu);
/* sun4d_irq.c */
extern spinlock_t sun4d_imsk_lock;
extern void sun4d_init_IRQ(void);
extern int sun4d_request_irq(unsigned int irq,
irq_handler_t handler,
unsigned long irqflags,
const char *devname, void *dev_id);
extern int show_sun4d_interrupts(struct seq_file *, void *);
extern void sun4d_distribute_irqs(void);
extern void sun4d_free_irq(unsigned int irq, void *dev_id);
/* head_32.S */
extern unsigned int t_nmi[];
extern unsigned int linux_trap_ipi15_sun4d[];
extern unsigned int linux_trap_ipi15_sun4m[];
extern unsigned long trapbase_cpu1[];
extern unsigned long trapbase_cpu2[];
extern unsigned long trapbase_cpu3[];
extern char cputypval[];
/* entry.S */
extern unsigned long lvl14_save[4];
extern unsigned int real_irq_entry[];
extern unsigned int smp4d_ticker[];
extern unsigned int patchme_maybe_smp_msg[];
extern void floppy_hardint(void);
/* trampoline_32.S */
extern int __smp4m_processor_id(void);
extern int __smp4d_processor_id(void);
extern unsigned long sun4m_cpu_startup;
extern unsigned long sun4d_cpu_startup;
#else /* CONFIG_SPARC32 */ #else /* CONFIG_SPARC32 */
#endif /* CONFIG_SPARC32 */ #endif /* CONFIG_SPARC32 */
......
...@@ -184,7 +184,6 @@ static void __init boot_flags_init(char *commands) ...@@ -184,7 +184,6 @@ static void __init boot_flags_init(char *commands)
*/ */
extern void sun4c_probe_vac(void); extern void sun4c_probe_vac(void);
extern char cputypval;
extern unsigned short root_flags; extern unsigned short root_flags;
extern unsigned short root_dev; extern unsigned short root_dev;
...@@ -218,21 +217,21 @@ void __init setup_arch(char **cmdline_p) ...@@ -218,21 +217,21 @@ void __init setup_arch(char **cmdline_p)
/* Set sparc_cpu_model */ /* Set sparc_cpu_model */
sparc_cpu_model = sun_unknown; sparc_cpu_model = sun_unknown;
if (!strcmp(&cputypval,"sun4 ")) if (!strcmp(&cputypval[0], "sun4 "))
sparc_cpu_model = sun4; sparc_cpu_model = sun4;
if (!strcmp(&cputypval,"sun4c")) if (!strcmp(&cputypval[0], "sun4c"))
sparc_cpu_model = sun4c; sparc_cpu_model = sun4c;
if (!strcmp(&cputypval,"sun4m")) if (!strcmp(&cputypval[0], "sun4m"))
sparc_cpu_model = sun4m; sparc_cpu_model = sun4m;
if (!strcmp(&cputypval,"sun4s")) if (!strcmp(&cputypval[0], "sun4s"))
sparc_cpu_model = sun4m; /* CP-1200 with PROM 2.30 -E */ sparc_cpu_model = sun4m; /* CP-1200 with PROM 2.30 -E */
if (!strcmp(&cputypval,"sun4d")) if (!strcmp(&cputypval[0], "sun4d"))
sparc_cpu_model = sun4d; sparc_cpu_model = sun4d;
if (!strcmp(&cputypval,"sun4e")) if (!strcmp(&cputypval[0], "sun4e"))
sparc_cpu_model = sun4e; sparc_cpu_model = sun4e;
if (!strcmp(&cputypval,"sun4u")) if (!strcmp(&cputypval[0], "sun4u"))
sparc_cpu_model = sun4u; sparc_cpu_model = sun4u;
if (!strncmp(&cputypval, "leon" , 4)) if (!strncmp(&cputypval[0], "leon" , 4))
sparc_cpu_model = sparc_leon; sparc_cpu_model = sparc_leon;
printk("ARCH: "); printk("ARCH: ");
...@@ -335,7 +334,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused) ...@@ -335,7 +334,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
prom_rev, prom_rev,
romvec->pv_printrev >> 16, romvec->pv_printrev >> 16,
romvec->pv_printrev & 0xffff, romvec->pv_printrev & 0xffff,
&cputypval, &cputypval[0],
ncpus_probed, ncpus_probed,
num_online_cpus() num_online_cpus()
#ifndef CONFIG_SMP #ifndef CONFIG_SMP
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册