OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-armnommu/] [proc-fns.h] - Blame information for rev 1633

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1633 jcastillo
/*
2
 * linux/include/asm-arm/proc-fns.h
3
 *
4
 * Copyright (C) 1997 Russell King
5
 */
6
#ifndef __ASM_PROCFNS_H
7
#define __ASM_PROCFNS_H
8
 
9
#include <asm/page.h>
10
 
11
#ifdef __KERNEL__
12
/*
13
 * Don't change this structure
14
 */
15
extern struct processor {
16
        const char *name;
17
        /* MISC
18
         *
19
         * flush caches for task switch
20
         */
21
        void (*_switch_to)(void *prev, void *next);
22
        /*
23
         * get data abort address/flags
24
         */
25
        void (*_data_abort)(unsigned long pc);
26
        /*
27
         * check for any bugs
28
         */
29
        void (*_check_bugs)(void);
30
        /*
31
         * Set up any processor specifics
32
         */
33
        void (*_proc_init)(void);
34
        /*
35
         * Disable any processor specifics
36
         */
37
        void (*_proc_fin)(void);
38
        /*
39
         * Processor architecture specific
40
         */
41
        union {
42
                struct {
43
                        /* CACHE
44
                         *
45
                         * flush all caches
46
                         */
47
                        void (*_flush_cache_all)(void);
48
                        /*
49
                         * flush a specific page or pages
50
                         */
51
                        void (*_flush_cache_area)(unsigned long address, unsigned long end, int flags);
52
                        /*
53
                         * flush cache entry for an address
54
                         */
55
                        void (*_flush_cache_entry)(unsigned long address);
56
                        /*
57
                         * flush a virtual address used for a page table
58
                         * note D-cache only!
59
                         */
60
                        void (*_flush_cache_pte)(unsigned long address);
61
                        /*
62
                         * flush a page to RAM
63
                         */
64
                        void (*_flush_ram_page)(unsigned long page);
65
                        /* TLB
66
                         *
67
                         * flush all TLBs
68
                         */
69
                        void (*_flush_tlb_all)(void);
70
                        /*
71
                         * flush a specific TLB
72
                         */
73
                        void (*_flush_tlb_area)(unsigned long address, unsigned long end, int flags);
74
                        /*
75
                         * Set a PMD (handling IMP bit 4)
76
                         */
77
                        void (*_set_pmd)(pmd_t *pmdp, pmd_t pmd);
78
                        /*
79
                         * Special stuff for a reset
80
                         */
81
                        unsigned long (*reset)(void);
82
                } armv3v4;
83
                struct {
84
                        /* MEMC
85
                         *
86
                         * remap memc tables
87
                         */
88
                        void (*_remap_memc)(void *tsk);
89
                        /*
90
                         * update task's idea of mmap
91
                         */
92
                        void (*_update_map)(void *tsk);
93
                        /*
94
                         * update task's idea after abort
95
                         */
96
                        void (*_update_mmu_cache)(void *vma, unsigned long addr, pte_t pte);
97
                        /* XCHG
98
                         */
99
                        unsigned long (*_xchg_1)(unsigned long x, volatile void *ptr);
100
                        unsigned long (*_xchg_2)(unsigned long x, volatile void *ptr);
101
                        unsigned long (*_xchg_4)(unsigned long x, volatile void *ptr);
102
                } armv2;
103
        } u;
104
} processor;
105
#endif  
106
#endif
107
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.