2 * linux/include/asm-arm26/proc-fns.h
4 * Copyright (C) 2000 Russell King
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.
15 * Don't change this structure - ASM code
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
);
28 unsigned long (*_xchg_1
)(unsigned long x
, volatile void *ptr
);
29 unsigned long (*_xchg_4
)(unsigned long x
, volatile void *ptr
);
32 extern const struct processor arm2_processor_functions
;
33 extern const struct processor arm250_processor_functions
;
34 extern const struct processor arm3_processor_functions
;
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)
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
);