Subversion Repositories HelenOS

Rev

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

Rev 1852 Rev 1859
Line 32... Line 32...
32
/**
32
/**
33
 * @file
33
 * @file
34
 * @brief This file contains fast MMU trap handlers.
34
 * @brief This file contains fast MMU trap handlers.
35
 */
35
 */
36
 
36
 
37
#ifndef __sparc64_MMU_TRAP_H__
37
#ifndef KERN_sparc64_MMU_TRAP_H_
38
#define __sparc64_MMU_TRAP_H__
38
#define KERN_sparc64_MMU_TRAP_H_
39
 
39
 
40
#include <arch/stack.h>
40
#include <arch/stack.h>
41
#include <arch/regdef.h>
41
#include <arch/regdef.h>
42
#include <arch/mm/tlb.h>
42
#include <arch/mm/tlb.h>
43
#include <arch/mm/mmu.h>
43
#include <arch/mm/mmu.h>
Line 49... Line 49...
49
 
49
 
50
#define FAST_MMU_HANDLER_SIZE           128
50
#define FAST_MMU_HANDLER_SIZE           128
51
 
51
 
52
#ifdef __ASM__
52
#ifdef __ASM__
53
.macro FAST_INSTRUCTION_ACCESS_MMU_MISS_HANDLER
53
.macro FAST_INSTRUCTION_ACCESS_MMU_MISS_HANDLER
54
    save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
-
 
-
 
54
    /*
55
    call fast_instruction_access_mmu_miss
55
     * First, try to refill TLB from TSB.
56
    nop
56
     */
57
    restore
57
    ! TODO
58
    retry  
58
 
-
 
59
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
-
 
60
    PREEMPTIBLE_HANDLER fast_instruction_access_mmu_miss
59
.endm
61
.endm
60
 
62
 
61
.macro FAST_DATA_ACCESS_MMU_MISS_HANDLER
63
.macro FAST_DATA_ACCESS_MMU_MISS_HANDLER
62
    /*
64
    /*
63
     * First, try to refill TLB from TSB.
65
     * First, try to refill TLB from TSB.
Line 99... Line 101...
99
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
101
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
100
    PREEMPTIBLE_HANDLER fast_data_access_mmu_miss
102
    PREEMPTIBLE_HANDLER fast_data_access_mmu_miss
101
.endm
103
.endm
102
 
104
 
103
.macro FAST_DATA_ACCESS_PROTECTION_HANDLER
105
.macro FAST_DATA_ACCESS_PROTECTION_HANDLER
104
    save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
106
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
105
    call fast_data_access_protection
107
    PREEMPTIBLE_HANDLER fast_data_access_protection
106
    nop
-
 
107
    restore
-
 
108
    retry
-
 
109
.endm
108
.endm
110
#endif /* __ASM__ */
109
#endif /* __ASM__ */
111
 
110
 
112
#endif
111
#endif
113
 
112