Fix potential compile warning.
[akaros.git] / kern / include / mm.h
index cbe5ba6..04bab7b 100644 (file)
@@ -24,6 +24,7 @@ struct proc;                                                          /* preprocessor games */
  * VMRs. */
 struct vm_region {
        TAILQ_ENTRY(vm_region)          vm_link;
+       TAILQ_ENTRY(vm_region)          vm_pm_link;
        struct proc                                     *vm_proc;       /* owning process, for now */
        uintptr_t                                       vm_base;
        uintptr_t                                       vm_end;
@@ -34,8 +35,6 @@ struct vm_region {
 };
 TAILQ_HEAD(vmr_tailq, vm_region);                      /* Declares 'struct vmr_tailq' */
 
-#include <process.h>                                           /* preprocessor games */
-
 /* VM Region Management Functions.  For now, these just maintain themselves -
  * anything related to mapping needs to be done by the caller. */
 void vmr_init(void);
@@ -56,7 +55,7 @@ void print_vmrs(struct proc *p);
 /* mmap() related functions.  These manipulate VMRs and change the hardware page
  * tables.  Any requests below the LOWEST_VA will silently be upped.  This may
  * be a dynamic proc-specific variable later. */
-#define MMAP_LOWEST_VA PGSIZE
+#define MMAP_LOWEST_VA MiB
 void *mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
            int fd, size_t offset);
 void *do_mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
@@ -64,13 +63,11 @@ void *do_mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
 int mprotect(struct proc *p, uintptr_t addr, size_t len, int prot);
 int munmap(struct proc *p, uintptr_t addr, size_t len);
 int handle_page_fault(struct proc *p, uintptr_t va, int prot);
+unsigned long populate_va(struct proc *p, uintptr_t va, unsigned long nr_pgs);
 
 /* These assume the mm_lock is held already */
-void *__do_mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
-                struct file *f, size_t offset);
 int __do_mprotect(struct proc *p, uintptr_t addr, size_t len, int prot);
 int __do_munmap(struct proc *p, uintptr_t addr, size_t len);
-int __handle_page_fault(struct proc* p, uintptr_t va, int prot);
 
 /* Kernel Dynamic Memory Mappings */
 /* These two are just about reserving VA space */
@@ -82,6 +79,7 @@ int map_vmap_segment(uintptr_t vaddr, uintptr_t paddr, unsigned long num_pages,
 int unmap_vmap_segment(uintptr_t vaddr, unsigned long num_pages);
 /* Helper wrappers, since no one will probably call the *_segment funcs */
 uintptr_t vmap_pmem(uintptr_t paddr, size_t nr_bytes);
+uintptr_t vmap_pmem_nocache(uintptr_t paddr, size_t nr_bytes);
 int vunmap_vmem(uintptr_t vaddr, size_t nr_bytes);
 
 #endif /* !ROS_KERN_MM_H */