Subversion Repositories HelenOS

Rev

Rev 2089 | Rev 3230 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2089 Rev 3228
Line 33... Line 33...
33
 */
33
 */
34
 
34
 
35
#ifndef KERN_mips32_TLB_H_
35
#ifndef KERN_mips32_TLB_H_
36
#define KERN_mips32_TLB_H_
36
#define KERN_mips32_TLB_H_
37
 
37
 
-
 
38
#include <arch/types.h>
-
 
39
#include <typedefs.h>
-
 
40
#include <arch/mm/asid.h>
38
#include <arch/exception.h>
41
#include <arch/exception.h>
39
 
42
 
40
#ifdef TLBCNT
43
#ifdef TLBCNT
41
#   define TLB_ENTRY_COUNT      TLBCNT
44
#   define TLB_ENTRY_COUNT      TLBCNT
42
#else
45
#else
Line 44... Line 47...
44
#endif
47
#endif
45
 
48
 
46
#define TLB_WIRED       1
49
#define TLB_WIRED       1
47
#define TLB_KSTACK_WIRED_INDEX  0
50
#define TLB_KSTACK_WIRED_INDEX  0
48
 
51
 
49
#define TLB_PAGE_MASK_16K   (0x3<<13)
52
#define TLB_PAGE_MASK_16K   (0x3 << 13)
50
 
53
 
51
#define PAGE_UNCACHED           2
54
#define PAGE_UNCACHED           2
52
#define PAGE_CACHEABLE_EXC_WRITE    5
55
#define PAGE_CACHEABLE_EXC_WRITE    5
53
 
56
 
54
typedef union {
57
typedef union {
Line 157... Line 160...
157
#define tlb_invalidate(asid)    tlb_invalidate_asid(asid)
160
#define tlb_invalidate(asid)    tlb_invalidate_asid(asid)
158
 
161
 
159
extern void tlb_invalid(istate_t *istate);
162
extern void tlb_invalid(istate_t *istate);
160
extern void tlb_refill(istate_t *istate);
163
extern void tlb_refill(istate_t *istate);
161
extern void tlb_modified(istate_t *istate);
164
extern void tlb_modified(istate_t *istate);
-
 
165
extern void tlb_prepare_entry_lo(entry_lo_t *lo, bool g, bool v, bool d, bool cacheable, uintptr_t pfn);
-
 
166
extern void tlb_prepare_entry_hi(entry_hi_t *hi, asid_t asid, uintptr_t addr);
162
 
167
 
163
#endif
168
#endif
164
 
169
 
165
/** @}
170
/** @}
166
 */
171
 */