X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/92f6e64a6da763c45ff9f4ab5eafcab3d8766dcb..b60166b327a9108b07e3069fa6568a451529ffd9:/lunaix-os/includes/lunaix/mm/mm.h?ds=inline diff --git a/lunaix-os/includes/lunaix/mm/mm.h b/lunaix-os/includes/lunaix/mm/mm.h index 2af2a9f..31954d3 100644 --- a/lunaix-os/includes/lunaix/mm/mm.h +++ b/lunaix-os/includes/lunaix/mm/mm.h @@ -1,9 +1,6 @@ #ifndef __LUNAIX_MM_H #define __LUNAIX_MM_H -#include -#include -#include #include #include @@ -37,6 +34,7 @@ #define REGION_EXEC PROT_EXEC #define REGION_ANON MAP_ANON #define REGION_RW REGION_READ | REGION_WRITE +#define REGION_KERNEL (1 << 31) #define REGION_TYPE_CODE (1 << 16) #define REGION_TYPE_GENERAL (2 << 16) @@ -44,48 +42,4 @@ #define REGION_TYPE_STACK (4 << 16) #define REGION_TYPE_VARS (5 << 16) -struct proc_mm; - -struct mm_region -{ - struct llist_header head; // must be first field! - struct proc_mm* proc_vms; - - // file mapped to this region - struct v_file* mfile; - // mapped file offset - off_t foff; - // mapped file length - u32_t flen; // XXX it seems that we don't need this actually.. - - ptr_t start; - ptr_t end; - u32_t attr; - - void** index; // fast reference, to accelerate access to this very region. - - void* data; - // when a region is copied - void (*region_copied)(struct mm_region*); - // when a region is unmapped - void (*destruct_region)(struct mm_region*); -}; - -static inline void -mm_index(void** index, struct mm_region* target) -{ - *index = (void*)target; - target->index = index; -} - -typedef struct llist_header vm_regions_t; - -struct proc_mm -{ - vm_regions_t regions; - struct mm_region* heap; - struct mm_region* stack; - pid_t pid; -}; - #endif /* __LUNAIX_MM_H */