X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/69777bdcab284335651a8002e2896f3862fa423d..e2994a5332194a132c60db35c55a006bdd1f6566:/lunaix-os/includes/lunaix/mm/region.h diff --git a/lunaix-os/includes/lunaix/mm/region.h b/lunaix-os/includes/lunaix/mm/region.h index cc7d3df..34e517e 100644 --- a/lunaix-os/includes/lunaix/mm/region.h +++ b/lunaix-os/includes/lunaix/mm/region.h @@ -40,6 +40,16 @@ writable_region(struct mm_region* mm) { return !!(mm->attr & (REGION_RSHARED | REGION_WRITE)); } +static inline bool +readable_region(struct mm_region* mm) { + return !!(mm->attr & (REGION_RSHARED | REGION_READ)); +} + +static inline bool +executable_region(struct mm_region* mm) { + return !!(mm->attr & REGION_EXEC); +} + static inline bool shared_writable_region(struct mm_region* mm) { return !!(mm->attr & REGION_WSHARED); @@ -70,10 +80,10 @@ region_copy_mm(struct proc_mm* src, struct proc_mm* dest); struct mm_region* region_dup(struct mm_region* origin); -static inline pte_attr_t -region_pteprot(struct mm_region* vmr) +static inline pte_t +region_tweakpte(struct mm_region* vmr, pte_t pte) { - return translate_vmr_prot(vmr->attr); + return translate_vmr_prot(vmr->attr, pte); } #endif /* __LUNAIX_REGION_H */