2 * linux/include/asm-arm/cpu-multi26.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.
14 /* forward-declare task_struct */
18 * Don't change this structure - ASM code
21 extern struct processor
{
22 /* check for any bugs */
23 void (*_check_bugs
)(void);
24 /* Set up any processor specifics */
25 void (*_proc_init
)(void);
26 /* Disable any processor specifics */
27 void (*_proc_fin
)(void);
28 /* set the MEMC hardware mappings */
29 void (*_set_pgd
)(pgd_t
*pgd
);
31 unsigned long (*_xchg_1
)(unsigned long x
, volatile void *ptr
);
32 unsigned long (*_xchg_4
)(unsigned long x
, volatile void *ptr
);
35 extern const struct processor arm2_processor_functions
;
36 extern const struct processor arm250_processor_functions
;
37 extern const struct processor arm3_processor_functions
;
39 #define cpu_check_bugs() processor._check_bugs()
40 #define cpu_proc_init() processor._proc_init()
41 #define cpu_proc_fin() processor._proc_fin()
42 #define cpu_do_idle() do { } while (0)
43 #define cpu_switch_mm(pgd,tsk) processor._set_pgd(pgd)
44 #define cpu_xchg_1(x,ptr) processor._xchg_1(x,ptr)
45 #define cpu_xchg_4(x,ptr) processor._xchg_4(x,ptr)
47 extern void cpu_memc_update_all(pgd_t
*pgd
);
48 extern void cpu_memc_update_entry(pgd_t
*pgd
, unsigned long phys_pte
, unsigned long log_addr
);