1/* 2 * arch/arm/include/asm/cpu-single.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/* 11 * Single CPU 12 */ 13#ifdef __STDC__ 14#define __catify_fn(name,x) name##x 15#else 16#define __catify_fn(name,x) name/**/x 17#endif 18#define __cpu_fn(name,x) __catify_fn(name,x) 19 20/* 21 * If we are supporting multiple CPUs, then we must use a table of 22 * function pointers for this lot. Otherwise, we can optimise the 23 * table away. 24 */ 25#define cpu_proc_init __cpu_fn(CPU_NAME,_proc_init) 26#define cpu_proc_fin __cpu_fn(CPU_NAME,_proc_fin) 27#define cpu_reset __cpu_fn(CPU_NAME,_reset) 28#define cpu_do_idle __cpu_fn(CPU_NAME,_do_idle) 29#define cpu_dcache_clean_area __cpu_fn(CPU_NAME,_dcache_clean_area) 30#define cpu_do_switch_mm __cpu_fn(CPU_NAME,_switch_mm) 31#define cpu_set_pte_ext __cpu_fn(CPU_NAME,_set_pte_ext) 32 33#include <asm/page.h> 34 35struct mm_struct; 36 37/* declare all the functions as extern */ 38extern void cpu_proc_init(void); 39extern void cpu_proc_fin(void); 40extern int cpu_do_idle(void); 41extern void cpu_dcache_clean_area(void *, int); 42extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm); 43extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext); 44extern void cpu_reset(unsigned long addr) __attribute__((noreturn)); 45