| /* | 
 |  *  arch/arm/include/asm/cpu-single.h | 
 |  * | 
 |  *  Copyright (C) 2000 Russell King | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify | 
 |  * it under the terms of the GNU General Public License version 2 as | 
 |  * published by the Free Software Foundation. | 
 |  */ | 
 | /* | 
 |  * Single CPU | 
 |  */ | 
 | #ifdef __STDC__ | 
 | #define __catify_fn(name,x)	name##x | 
 | #else | 
 | #define __catify_fn(name,x)	name/**/x | 
 | #endif | 
 | #define __cpu_fn(name,x)	__catify_fn(name,x) | 
 |  | 
 | /* | 
 |  * If we are supporting multiple CPUs, then we must use a table of | 
 |  * function pointers for this lot.  Otherwise, we can optimise the | 
 |  * table away. | 
 |  */ | 
 | #define cpu_proc_init			__cpu_fn(CPU_NAME,_proc_init) | 
 | #define cpu_proc_fin			__cpu_fn(CPU_NAME,_proc_fin) | 
 | #define cpu_reset			__cpu_fn(CPU_NAME,_reset) | 
 | #define cpu_do_idle			__cpu_fn(CPU_NAME,_do_idle) | 
 | #define cpu_dcache_clean_area		__cpu_fn(CPU_NAME,_dcache_clean_area) | 
 | #define cpu_do_switch_mm		__cpu_fn(CPU_NAME,_switch_mm) | 
 | #define cpu_set_pte_ext			__cpu_fn(CPU_NAME,_set_pte_ext) | 
 |  | 
 | #include <asm/page.h> | 
 |  | 
 | struct mm_struct; | 
 |  | 
 | /* declare all the functions as extern */ | 
 | extern void cpu_proc_init(void); | 
 | extern void cpu_proc_fin(void); | 
 | extern int cpu_do_idle(void); | 
 | extern void cpu_dcache_clean_area(void *, int); | 
 | extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm); | 
 | extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext); | 
 | extern void cpu_reset(unsigned long addr) __attribute__((noreturn)); |