Subversion Repositories HelenOS-historic

Rev

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

Rev 1374 Rev 1384
Line 34... Line 34...
34
 * Setup the Page Hash Table with no entries.
34
 * Setup the Page Hash Table with no entries.
35
 *
35
 *
36
 */
36
 */
37
void tlb_arch_init(void)
37
void tlb_arch_init(void)
38
{
38
{
-
 
39
    tlb_invalidate_all();
-
 
40
}
-
 
41
 
-
 
42
 
-
 
43
void tlb_invalidate_all(void)
-
 
44
{
39
    asm volatile (
45
    asm volatile (
40
        "tlbia\n"
46
        "tlbia\n"
-
 
47
        "tlbsync\n"
41
    );
48
    );
42
}
49
}
43
 
50
 
44
 
51
 
-
 
52
/** Invalidate all entries in TLB that belong to specified address space.
-
 
53
 *
-
 
54
 * @param asid This parameter is ignored as the architecture doesn't support it.
-
 
55
 */
45
void tlb_invalidate_all(void)
56
void tlb_invalidate_asid(asid_t asid)
46
{
57
{
-
 
58
    tlb_invalidate_all();
47
}
59
}
48
 
60
 
-
 
61
/** Invalidate TLB entries for specified page range belonging to specified address space.
-
 
62
 *
-
 
63
 * @param asid This parameter is ignored as the architecture doesn't support it.
-
 
64
 * @param page Address of the first page whose entry is to be invalidated.
-
 
65
 * @param cnt Number of entries to invalidate.
-
 
66
 */
-
 
67
void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt)
-
 
68
{
-
 
69
    tlb_invalidate_all();
-
 
70
}
-
 
71
 
-
 
72
 
49
 
73
 
50
/** Print contents of Page Hash Table. */
74
/** Print contents of Page Hash Table. */
51
void tlb_print(void)
75
void tlb_print(void)
52
{
76
{
53
}
77
}