sparc32: fix sparse warning in io-unit.c
[deliverable/linux.git] / arch / sparc / kernel / kernel.h
CommitLineData
7105de84
SR
1#ifndef __SPARC_KERNEL_H
2#define __SPARC_KERNEL_H
81265fd9
SR
3
4#include <linux/interrupt.h>
5
a2a211cb 6#include <asm/traps.h>
ea5e7447
DM
7#include <asm/head.h>
8#include <asm/io.h>
a2a211cb 9
53ae3419 10/* cpu.c */
c3cf5e8c 11extern const char *sparc_pmu_type;
53ae3419 12extern unsigned int fsr_storage;
cb1b8209 13extern int ncpus_probed;
53ae3419 14
ac85fe8b
DM
15#ifdef CONFIG_SPARC64
16/* setup_64.c */
17struct seq_file;
18extern void cpucap_info(struct seq_file *);
ea5e7447
DM
19
20static inline unsigned long kimage_addr_to_ra(const char *p)
21{
22 unsigned long val = (unsigned long) p;
23
24 return kern_base + (val - KERNBASE);
25}
ac85fe8b
DM
26#endif
27
8d74e32a 28#ifdef CONFIG_SPARC32
4efb55e6 29/* setup_32.c */
178f0ffa 30struct linux_romvec;
4efb55e6
SR
31void sparc32_start_kernel(struct linux_romvec *rp);
32
8d74e32a 33/* cpu.c */
53ae3419
SR
34extern void cpu_probe(void);
35
8d74e32a
SR
36/* traps_32.c */
37extern void handle_hw_divzero(struct pt_regs *regs, unsigned long pc,
38 unsigned long npc, unsigned long psr);
81265fd9
SR
39/* irq_32.c */
40extern struct irqaction static_irqaction[];
41extern int static_irq_count;
42extern spinlock_t irq_action_lock;
43
44extern void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs);
b7afdb7e
SR
45extern void init_IRQ(void);
46
b7afdb7e 47/* sun4m_irq.c */
b7afdb7e 48extern void sun4m_init_IRQ(void);
6baa9b20 49extern void sun4m_unmask_profile_irq(void);
b7afdb7e
SR
50extern void sun4m_clear_profile_irq(int cpu);
51
f9fd3488
SR
52/* sun4m_smp.c */
53void sun4m_cpu_pre_starting(void *arg);
54void sun4m_cpu_pre_online(void *arg);
b8417de3
SR
55void __init smp4m_boot_cpus(void);
56int smp4m_boot_one_cpu(int i, struct task_struct *idle);
57void __init smp4m_smp_done(void);
58void smp4m_cross_call_irq(void);
59void smp4m_percpu_timer_interrupt(struct pt_regs *regs);
f9fd3488 60
b7afdb7e
SR
61/* sun4d_irq.c */
62extern spinlock_t sun4d_imsk_lock;
63
64extern void sun4d_init_IRQ(void);
65extern int sun4d_request_irq(unsigned int irq,
66 irq_handler_t handler,
67 unsigned long irqflags,
68 const char *devname, void *dev_id);
69extern int show_sun4d_interrupts(struct seq_file *, void *);
70extern void sun4d_distribute_irqs(void);
71extern void sun4d_free_irq(unsigned int irq, void *dev_id);
72
f9fd3488
SR
73/* sun4d_smp.c */
74void sun4d_cpu_pre_starting(void *arg);
75void sun4d_cpu_pre_online(void *arg);
65199b0a
SR
76void __init smp4d_boot_cpus(void);
77int smp4d_boot_one_cpu(int i, struct task_struct *idle);
78void __init smp4d_smp_done(void);
79void smp4d_cross_call_irq(void);
80void smp4d_percpu_timer_interrupt(struct pt_regs *regs);
f9fd3488
SR
81
82/* leon_smp.c */
83void leon_cpu_pre_starting(void *arg);
84void leon_cpu_pre_online(void *arg);
1bbc9060
SR
85void leonsmp_ipi_interrupt(void);
86void leon_cross_call_irq(void);
f9fd3488 87
b7afdb7e
SR
88/* head_32.S */
89extern unsigned int t_nmi[];
90extern unsigned int linux_trap_ipi15_sun4d[];
91extern unsigned int linux_trap_ipi15_sun4m[];
92
a2a211cb
SR
93extern struct tt_entry trapbase_cpu1;
94extern struct tt_entry trapbase_cpu2;
95extern struct tt_entry trapbase_cpu3;
b7afdb7e
SR
96
97extern char cputypval[];
98
99/* entry.S */
100extern unsigned long lvl14_save[4];
101extern unsigned int real_irq_entry[];
102extern unsigned int smp4d_ticker[];
103extern unsigned int patchme_maybe_smp_msg[];
104
105extern void floppy_hardint(void);
106
107/* trampoline_32.S */
b7afdb7e
SR
108extern unsigned long sun4m_cpu_startup;
109extern unsigned long sun4d_cpu_startup;
81265fd9 110
8bdd5a1b
SR
111/* process_32.c */
112asmlinkage int sparc_do_fork(unsigned long clone_flags,
113 unsigned long stack_start,
114 struct pt_regs *regs,
115 unsigned long stack_size);
116
529b17a9
SR
117/* signal_32.c */
118asmlinkage void do_sigreturn(struct pt_regs *regs);
119asmlinkage void do_rt_sigreturn(struct pt_regs *regs);
120void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0,
121 unsigned long thread_info_flags);
122asmlinkage int do_sys_sigstack(struct sigstack __user *ssptr,
123 struct sigstack __user *ossptr,
124 unsigned long sp);
7c8ee361 125
c8c8782d
SR
126/* ptrace_32.c */
127asmlinkage int syscall_trace(struct pt_regs *regs, int syscall_exit_p);
128
9edfae3f
SR
129/* unaligned_32.c */
130asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn);
131asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn);
132
7c8ee361
SR
133/* windows.c */
134void try_to_clear_window_buffer(struct pt_regs *regs, int who);
135
6b5f02f3
SR
136/* tadpole.c */
137void __init clock_stop_probe(void);
138
a3ee8faa
SR
139/* auxio_32.c */
140void __init auxio_probe(void);
141void __init auxio_power_probe(void);
142
8d74e32a 143#else /* CONFIG_SPARC32 */
7105de84
SR
144#endif /* CONFIG_SPARC32 */
145#endif /* !(__SPARC_KERNEL_H) */
This page took 0.466046 seconds and 5 git commands to generate.