add flag MAP_REMAP to remap already mapped paged with new attributes
This commit is contained in:
parent
e7fa5f90e5
commit
69d2114654
2 changed files with 2 additions and 2 deletions
|
@ -338,7 +338,7 @@ size_t map_region(size_t viraddr, size_t phyaddr, uint32_t npages, uint32_t flag
|
|||
pgt = (page_table_t*) ((KERNEL_SPACE - 1024*PAGE_SIZE + index*PAGE_SIZE) & 0xFFFFF000);
|
||||
|
||||
index = (viraddr >> 12) & 0x3FF;
|
||||
if (BUILTIN_EXPECT(pgt->entries[index], 0)) {
|
||||
if (pgt->entries[index] && !(flags & MAP_REMAP)) {
|
||||
spinlock_unlock(pgd_lock);
|
||||
kprintf("0x%x is already maped\n", viraddr);
|
||||
return 0;
|
||||
|
|
|
@ -42,7 +42,6 @@ extern "C" {
|
|||
#define MAP_PAGE_TABLE (1 << 2)
|
||||
#define MAP_NO_CACHE (1 << 3)
|
||||
#define MAP_WT (1 << 5)
|
||||
//#define MAP_HEAP (1 << 5)
|
||||
#define MAP_CODE (1 << 6)
|
||||
#define MAP_READONLY (1 << 7)
|
||||
#ifdef CONFIG_ROCKCREEK
|
||||
|
@ -51,6 +50,7 @@ extern "C" {
|
|||
#define MAP_SVM_STRONG (1 << 9)
|
||||
#define MAP_SVM_LAZYRELEASE (1 << 10)
|
||||
#define MAP_NO_ACCESS (1 << 11)
|
||||
#define MAP_REMAP (1 << 12)
|
||||
|
||||
void NORETURN abort(void);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue