From cbfca7a9854061e3a2d59795361fb875827e7c50 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Tue, 1 Mar 2022 21:24:21 +0200 Subject: make vmflags_t 16 bits lower 8 bits are reserved for arch-specific flags (but at least read/write/execute) and higher 8 bits are metadata, currently only for VM_VIRTUAL (to be used when the backing physical memory shouldn't be freed) --- include/apos/types.h | 2 +- include/apos/vmem.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/apos/types.h b/include/apos/types.h index 9b90611..fea71ae 100644 --- a/include/apos/types.h +++ b/include/apos/types.h @@ -178,7 +178,7 @@ typedef intmax_t ssize_t; /* some common types used throughout the kernel */ typedef int_fast8_t stat_t; typedef uint_fast32_t id_t; -typedef uint_fast8_t vmflags_t; +typedef uint_fast16_t vmflags_t; /* error types (should this go somewhere else? */ /* negative error codes are reserved for general usage, positive error codes are diff --git a/include/apos/vmem.h b/include/apos/vmem.h index 92e9d61..cbdef2e 100644 --- a/include/apos/vmem.h +++ b/include/apos/vmem.h @@ -21,4 +21,7 @@ stat_t free_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags #define unmap_freed_region(b, start, bytes)\ map_fill_region(b, &free_uvmem_wrapper, 0, start, bytes, 0) +#define vm_flags(x) ((x) & ~0xff) +#define vp_flags(x) ((x) & 0xff) + #endif /* APOS_VMEM_H */ -- cgit v1.3