1 /* 2 * linux/include/asm-arm/cpu-multi26.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 /* forward-declare task_struct */ 15 struct task_struct; 16 17 /* 18 * Don't change this structure - ASM code 19 * relies on it. 20 */ 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); 30 /* XCHG */ 31 unsigned long (*_xchg_1)(unsigned long x, volatile void *ptr); 32 unsigned long (*_xchg_4)(unsigned long x, volatile void *ptr); 33 } processor; 34 35 extern const struct processor arm2_processor_functions; 36 extern const struct processor arm250_processor_functions; 37 extern const struct processor arm3_processor_functions; 38 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) 46 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); 49 50 #endif 51