Blame view
include/asm-arm/cpu-multi32.h
1.61 KB
1da177e4c
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
/* * linux/include/asm-arm/cpu-multi32.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. */ #include <asm/page.h> struct mm_struct; /* * Don't change this structure - ASM code * relies on it. */ extern struct processor { /* MISC * get data abort address/flags */ void (*_data_abort)(unsigned long pc); /* * Set up any processor specifics */ void (*_proc_init)(void); /* * Disable any processor specifics */ void (*_proc_fin)(void); /* * Special stuff for a reset */ |
33215652e
|
34 |
void (*reset)(unsigned long addr) __attribute__((noreturn)); |
1da177e4c
|
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
/* * Idle the processor */ int (*_do_idle)(void); /* * Processor architecture specific */ /* * clean a virtual address range from the * D-cache without flushing the cache. */ void (*dcache_clean_area)(void *addr, int size); /* * Set the page table */ void (*switch_mm)(unsigned long pgd_phys, struct mm_struct *mm); /* |
ad1ae2fe7
|
53 54 |
* Set a possibly extended PTE. Non-extended PTEs should * ignore 'ext'. |
1da177e4c
|
55 |
*/ |
ad1ae2fe7
|
56 |
void (*set_pte_ext)(pte_t *ptep, pte_t pte, unsigned int ext); |
1da177e4c
|
57 58 59 60 61 62 63 |
} processor; #define cpu_proc_init() processor._proc_init() #define cpu_proc_fin() processor._proc_fin() #define cpu_reset(addr) processor.reset(addr) #define cpu_do_idle() processor._do_idle() #define cpu_dcache_clean_area(addr,sz) processor.dcache_clean_area(addr,sz) |
ad1ae2fe7
|
64 |
#define cpu_set_pte_ext(ptep,pte,ext) processor.set_pte_ext(ptep,pte,ext) |
1da177e4c
|
65 |
#define cpu_do_switch_mm(pgd,mm) processor.switch_mm(pgd,mm) |