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 */ 15struct task_struct; 16 17/* 18 * Don't change this structure - ASM code 19 * relies on it. 20 */ 21extern 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 35extern const struct processor arm2_processor_functions; 36extern const struct processor arm250_processor_functions; 37extern 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 47extern void cpu_memc_update_all(pgd_t *pgd); 48extern void cpu_memc_update_entry(pgd_t *pgd, unsigned long phys_pte, unsigned long log_addr); 49 50#endif 51

