ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / asm-arm26 / proc-fns.h
1 /*
2  *  linux/include/asm-arm26/proc-fns.h
3  *
4  *  Copyright (C) 2000 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 #ifndef __ASSEMBLY__
11
12 #include <asm/page.h>
13
14 /*
15  * Don't change this structure - ASM code
16  * relies on it.
17  */
18 extern struct processor {
19         /* check for any bugs */
20         void (*_check_bugs)(void);
21         /* Set up any processor specifics */
22         void (*_proc_init)(void);
23         /* Disable any processor specifics */
24         void (*_proc_fin)(void);
25         /* set the MEMC hardware mappings */
26         void (*_set_pgd)(pgd_t *pgd);
27         /* XCHG */
28         unsigned long (*_xchg_1)(unsigned long x, volatile void *ptr);
29         unsigned long (*_xchg_4)(unsigned long x, volatile void *ptr);
30 } processor;
31
32 extern const struct processor arm2_processor_functions;
33 extern const struct processor arm250_processor_functions;
34 extern const struct processor arm3_processor_functions;
35
36 #define cpu_check_bugs()                        processor._check_bugs()
37 #define cpu_proc_init()                         processor._proc_init()
38 #define cpu_proc_fin()                          processor._proc_fin()
39 #define cpu_do_idle()                           do { } while (0)
40 #define cpu_switch_mm(pgd,mm)                   processor._set_pgd(pgd)
41 #define cpu_xchg_1(x,ptr)                       processor._xchg_1(x,ptr)
42 #define cpu_xchg_4(x,ptr)                       processor._xchg_4(x,ptr)
43
44
45 //FIXME - these shouldnt be in proc-fn.h
46 extern void cpu_memc_update_all(pgd_t *pgd);
47 extern void cpu_memc_update_entry(pgd_t *pgd, unsigned long phys_pte, unsigned long log_addr);
48
49 #endif