Rev 391 | Rev 397 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 391 | Rev 396 | ||
---|---|---|---|
Line 29... | Line 29... | ||
29 | #include <arch/mm/vm.h> |
29 | #include <arch/mm/vm.h> |
30 | #include <arch/mm/tlb.h> |
30 | #include <arch/mm/tlb.h> |
31 | #include <mm/vm.h> |
31 | #include <mm/vm.h> |
32 | #include <arch/cp0.h> |
32 | #include <arch/cp0.h> |
33 | #include <arch.h> |
33 | #include <arch.h> |
34 | #include <print.h> |
- | |
35 | 34 | ||
36 | /** Install ASID of the current VM |
35 | /** Install ASID of the current VM |
37 | * |
36 | * |
38 | * Install ASID of the current VM. |
37 | * Install ASID of the current VM. |
39 | * |
38 | * |
40 | * @param vm VM structure. |
39 | * @param vm VM structure. |
41 | */ |
40 | */ |
42 | void vm_install_arch(vm_t *vm) |
41 | void vm_install_arch(vm_t *vm) |
43 | { |
42 | { |
44 | struct entry_hi hi; |
43 | entry_hi_t hi; |
45 | pri_t pri; |
44 | pri_t pri; |
46 | 45 | ||
47 | *((__u32 *) &hi) = cp0_entry_hi_read(); |
46 | hi.value = cp0_entry_hi_read(); |
48 | 47 | ||
49 | pri = cpu_priority_high(); |
48 | pri = cpu_priority_high(); |
50 | spinlock_lock(&vm->lock); |
49 | spinlock_lock(&vm->lock); |
51 | hi.asid = vm->asid; |
50 | hi.asid = vm->asid; |
52 | cp0_entry_hi_write(*((__u32 *) &hi)); |
51 | cp0_entry_hi_write(*((__u32 *) &hi)); |