MOXA linux-2.6.x / linux-2.6.19-uc1 from UC-7110-LX-BOOTLOADER-1.9_VERSION-4.2.tgz
[linux-2.6.19-moxart.git] / include / asm-arm / cpu-multi32.h
blob1e30e29180d48a80bec2e553fff2772b6e3ed610
1 /*
2 * linux/include/asm-arm/cpu-multi32.h
4 * Copyright (C) 2000 Russell King
5 * Modified by Hyok S. Choi, 2004
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
11 #include <asm/page.h>
13 struct mm_struct;
16 * Don't change this structure - ASM code
17 * relies on it.
19 extern struct processor {
20 /* MISC
21 * get data abort address/flags
23 void (*_data_abort)(unsigned long pc);
25 * Set up any processor specifics
27 void (*_proc_init)(void);
29 * Disable any processor specifics
31 void (*_proc_fin)(void);
33 * Special stuff for a reset
35 void (*reset)(unsigned long addr) __attribute__((noreturn));
37 * Idle the processor
39 int (*_do_idle)(void);
41 * Processor architecture specific
44 * clean a virtual address range from the
45 * D-cache without flushing the cache.
47 void (*dcache_clean_area)(void *addr, int size);
50 * Set the page table
52 void (*switch_mm)(unsigned long pgd_phys, struct mm_struct *mm);
53 #ifdef CONFIG_MMU
55 * Set a PTE
57 void (*set_pte)(pte_t *ptep, pte_t pte);
58 #endif
59 } processor;
61 #define cpu_proc_init() processor._proc_init()
62 #define cpu_proc_fin() processor._proc_fin()
63 #define cpu_reset(addr) processor.reset(addr)
64 #define cpu_do_idle() processor._do_idle()
65 #define cpu_dcache_clean_area(addr,sz) processor.dcache_clean_area(addr,sz)
66 #ifdef CONFIG_MMU
67 #define cpu_set_pte(ptep, pte) processor.set_pte(ptep, pte)
68 #endif
69 #define cpu_do_switch_mm(pgd,mm) processor.switch_mm(pgd,mm)