Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[linux-2.6] / arch / v850 / kernel / mach.h
1 /*
2  * arch/v850/kernel/mach.h -- Machine-dependent functions used by v850 port
3  *
4  *  Copyright (C) 2001,02,03  NEC Electronics Corporation
5  *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
6  *
7  * This file is subject to the terms and conditions of the GNU General
8  * Public License.  See the file COPYING in the main directory of this
9  * archive for more details.
10  *
11  * Written by Miles Bader <miles@gnu.org>
12  */
13
14 #ifndef __V850_MACH_H__
15 #define __V850_MACH_H__
16
17 #include <linux/kernel.h>
18 #include <linux/time.h>
19 #include <linux/spinlock.h>
20 #include <linux/interrupt.h>
21 #include <linux/fs.h>
22 #include <linux/seq_file.h>
23
24 #include <asm/ptrace.h>
25 #include <asm/entry.h>
26 #include <asm/clinkage.h>
27
28 void mach_setup (char **cmdline);
29 void mach_gettimeofday (struct timespec *tv);
30 void mach_sched_init (struct irqaction *timer_action);
31 void mach_get_physical_ram (unsigned long *ram_start, unsigned long *ram_len);
32 void mach_init_irqs (void);
33
34 /* If defined, is called very early in the kernel initialization.  The
35    stack pointer is valid, but very little has been initialized (e.g.,
36    bss is not zeroed yet) when this is called, so care must taken.  */
37 void mach_early_init (void);
38
39 /* If defined, called after the bootmem allocator has been initialized,
40    to allow the platform-dependent code to reserve any areas of RAM that
41    the kernel shouldn't touch.  */
42 void mach_reserve_bootmem (void) __attribute__ ((__weak__));
43
44 /* Called with each timer tick, if non-zero.  */
45 extern void (*mach_tick) (void);
46
47 /* The following establishes aliases for various mach_ functions to the
48    name by which the rest of the kernel calls them.  These statements
49    should only have an effect in the file that defines the actual functions. */
50 #define MACH_ALIAS(to, from)                                                  \
51    asm (".global " macrology_stringify (C_SYMBOL_NAME (to)) ";"               \
52         macrology_stringify (C_SYMBOL_NAME (to))                              \
53         " = " macrology_stringify (C_SYMBOL_NAME (from)))
54 /* e.g.: MACH_ALIAS (kernel_name,       arch_spec_name);  */
55
56 #endif /* __V850_MACH_H__ */