/* Adds a mapping from user virtual page UPAGE to kernel virtual
address KPAGE in page directory PD.
UPAGE must not already be mapped.
+ KPAGE should probably be a page obtained from the user pool
+ with palloc_get_page() .
If WRITABLE is true, the new page is read/write;
otherwise it is read-only.
Returns true if successful, false if memory allocation
aka PDBR (page directory base register). This activates our
new page tables immediately. See [IA32-v2a] "MOV--Move
to/from Control Registers" and [IA32-v3] 3.7.5. */
- asm volatile ("mov %%cr3, %0" :: "r" (vtop (pd)));
+ asm volatile ("movl %0, %%cr3" :: "r" (vtop (pd)));
}
/* Returns the currently active page directory. */
See [IA32-v2a] "MOV--Move to/from Control Registers" and
[IA32-v3] 3.7.5. */
uintptr_t pd;
- asm volatile ("mov %0, %%cr3" : "=r" (pd));
+ asm volatile ("movl %%cr3, %0" : "=r" (pd));
return ptov (pd);
}