Subversion Repositories HelenOS-historic

Rev

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

Rev 919 Rev 928
Line 36... Line 36...
36
#include <mm/as.h>
36
#include <mm/as.h>
37
#include <arch/mm/tlb.h>
37
#include <arch/mm/tlb.h>
38
#include <arch/mm/page.h>
38
#include <arch/mm/page.h>
39
#include <arch/barrier.h>
39
#include <arch/barrier.h>
40
#include <arch/interrupt.h>
40
#include <arch/interrupt.h>
-
 
41
#include <arch/pal/pal.h>
-
 
42
#include <arch/asm.h>
41
#include <typedefs.h>
43
#include <typedefs.h>
42
#include <panic.h>
44
#include <panic.h>
43
#include <arch.h>
45
#include <arch.h>
44
 
46
 
45
/** Invalidate all TLB entries. */
47
/** Invalidate all TLB entries. */
46
void tlb_invalidate_all(void)
48
void tlb_invalidate_all(void)
47
{
49
{
-
 
50
        __address adr;
-
 
51
        __u32 count1,count2,stride1,stride2;
-
 
52
       
-
 
53
        int i,j;
-
 
54
       
-
 
55
        adr=PAL_PTCE_INFO_BASE();
-
 
56
        count1=PAL_PTCE_INFO_COUNT1();
-
 
57
        count2=PAL_PTCE_INFO_COUNT2();
-
 
58
        stride1=PAL_PTCE_INFO_STRIDE1();
-
 
59
        stride2=PAL_PTCE_INFO_STRIDE2();
-
 
60
       
-
 
61
        interrupts_disable();
-
 
62
 
-
 
63
        for(i=0;i<count1;i++)
-
 
64
        {
-
 
65
            for(j=0;j<count2;j++)
-
 
66
            {
-
 
67
                asm volatile
-
 
68
                (
-
 
69
                    "ptc.e %0;;"
-
 
70
                    :
-
 
71
                    :"r" (adr)
-
 
72
                );
-
 
73
                adr+=stride2;
-
 
74
            }
-
 
75
            adr+=stride1;
-
 
76
        }
-
 
77
 
-
 
78
        interrupts_enable();
-
 
79
 
-
 
80
        srlz_d();
48
    /* TODO */
81
        srlz_i();
49
}
82
}
50
 
83
 
51
/** Invalidate entries belonging to an address space.
84
/** Invalidate entries belonging to an address space.
52
 *
85
 *
53
 * @param asid Address space identifier.
86
 * @param asid Address space identifier.