Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |