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.
16 * Don't change this structure - ASM code
19 extern struct processor
{
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
));
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
);
52 void (*switch_mm
)(unsigned long pgd_phys
, struct mm_struct
*mm
);
57 void (*set_pte
)(pte_t
*ptep
, pte_t pte
);
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)
67 #define cpu_set_pte(ptep, pte) processor.set_pte(ptep, pte)
69 #define cpu_do_switch_mm(pgd,mm) processor.switch_mm(pgd,mm)