Subversion Repositories HelenOS

Rev

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));