Ignore:
Timestamp:
2018-03-21T19:32:48Z (6 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Children:
1c7a170
Parents:
973be387
Message:

Change the way page flags work. TODO description

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/riscv64/include/arch/mm/page.h

    r973be387 r94d211e  
    8282
    8383/* Flags mask for non-leaf page table entries */
    84 #define NON_LEAF_MASK  (~(PAGE_READ | PAGE_WRITE | PAGE_EXEC))
     84#define NON_LEAF_MASK  (~(_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC))
    8585
    8686/* Get PTE address accessors for each level. */
     
    156156#define PTE_PRESENT_ARCH(pte)     ((pte)->valid != 0)
    157157#define PTE_GET_FRAME_ARCH(pte)   ((uintptr_t) (pte)->pfn << 12)
     158#define PTE_READABLE_ARCH(pte)    ((pte)->readable != 0)
    158159#define PTE_WRITABLE_ARCH(pte)    ((pte)->writable != 0)
    159160#define PTE_EXECUTABLE_ARCH(pte)  ((pte)->executable != 0)
     
    183184        pte_t *entry = &pt[i];
    184185
    185         return (((!entry->valid) << PAGE_PRESENT_SHIFT) |
     186        return (((!entry->valid) << PAGE_NOT_PRESENT_SHIFT) |
    186187            (entry->user << PAGE_USER_SHIFT) |
    187188            (entry->readable << PAGE_READ_SHIFT) |
     
    196197
    197198        entry->valid = !(flags & PAGE_NOT_PRESENT);
    198         entry->readable = (flags & PAGE_READ) != 0;
    199         entry->writable = (flags & PAGE_WRITE) != 0;
    200         entry->executable = (flags & PAGE_EXEC) != 0;
     199        entry->readable = (flags & _PAGE_READ) != 0;
     200        entry->writable = (flags & _PAGE_WRITE) != 0;
     201        entry->executable = (flags & _PAGE_EXEC) != 0;
    201202        entry->user = (flags & PAGE_USER) != 0;
    202203        entry->global = (flags & PAGE_GLOBAL) != 0;
Note: See TracChangeset for help on using the changeset viewer.