do_vm.c File Reference

#include "../system.h"
#include <sys/vm.h>

Include dependency graph for do_vm.c:

Go to the source code of this file.

Functions

FORWARD _PROTOTYPE (void vm_init,(void))
FORWARD _PROTOTYPE (void phys_put32,(phys_bytes addr, u32_t value))
FORWARD _PROTOTYPE (u32_t phys_get32,(phys_bytes addr))
FORWARD _PROTOTYPE (void vm_set_cr3,(u32_t value))
FORWARD _PROTOTYPE (void map_range,(u32_t base, u32_t size, u32_t offset))
PUBLIC int do_vm_map (message *m_ptr)
PUBLIC void vm_map_default (struct proc *pp)
PRIVATE void vm_init (void)
PRIVATE void phys_put32 (phys_bytes addr, u32_t value)
PRIVATE u32_t phys_get32 (phys_bytes addr)
PRIVATE void vm_set_cr3 (u32_t value)
PRIVATE void set_cr3 ()
PRIVATE void vm_enable_paging (void)
PRIVATE void map_range (u32_t base, u32_t size, u32_t offset)

Variables

PRIVATE int vm_needs_init = 1
PRIVATE u32_t vm_cr3


Function Documentation

FORWARD _PROTOTYPE void  map_range,
(u32_t base, u32_t size, u32_t offset) 
 

FORWARD _PROTOTYPE void  vm_set_cr3,
(u32_t value
 

FORWARD _PROTOTYPE u32_t  phys_get32,
(phys_bytes addr) 
 

FORWARD _PROTOTYPE void  phys_put32,
(phys_bytes addr, u32_t value
 

FORWARD _PROTOTYPE void  vm_init,
(void) 
 

PUBLIC int do_vm_map message m_ptr  ) 
 

Definition at line 30 of file do_vm.c.

References base, D, EFAULT, EINVAL, isokendpt, map_range(), MF_VM, offset, OK, proc::p_misc_flags, proc_addr, proc_nr, SELF, size, umap_local(), vm_cr3, vm_init(), vm_needs_init, vm_set_cr3(), and who_p.

PRIVATE void map_range u32_t  base,
u32_t  size,
u32_t  offset
 

Definition at line 185 of file do_vm.c.

References dir_ent, I386_VM_ADDR_MASK, I386_VM_DIR_ENT_SHIFT, I386_VM_PCD, I386_VM_PRESENT, I386_VM_PT_ENT_MASK, I386_VM_PT_ENT_SHIFT, I386_VM_PT_ENT_SIZE, I386_VM_PWT, I386_VM_USER, I386_VM_WRITE, PAGE_SIZE, panic, phys_get32(), phys_put32(), and vm_cr3.

Referenced by do_vm_map(), and vm_map_default().

PRIVATE u32_t phys_get32 phys_bytes  addr  ) 
 

Definition at line 155 of file do_vm.c.

References vir2phys.

Referenced by map_range().

PRIVATE void phys_put32 phys_bytes  addr,
u32_t  value
 

Definition at line 148 of file do_vm.c.

References vir2phys.

Referenced by map_range(), and vm_init().

PRIVATE void set_cr3  ) 
 

Definition at line 172 of file do_vm.c.

References vm_cr3.

PRIVATE void vm_enable_paging void   ) 
 

Definition at line 177 of file do_vm.c.

References I386_CR0_PG.

PRIVATE void vm_init void   ) 
 

Definition at line 96 of file do_vm.c.

References I386_VM_PRESENT, I386_VM_PT_ENT_SIZE, I386_VM_USER, I386_VM_WRITE, NO_NUM, p, PAGE_SIZE, panic, phys_put32(), vm_base, vm_mem_high, and vm_size.

Referenced by do_vm_map().

PUBLIC void vm_map_default struct proc pp  ) 
 

Definition at line 80 of file do_vm.c.

References CLICK_SHIFT, D, map_range(), MF_VM, NO_NUM, panic, S, vm_cr3, vm_needs_init, and vm_set_cr3().

PRIVATE void vm_set_cr3 u32_t  value  ) 
 

Definition at line 165 of file do_vm.c.

References vm_cr3.

Referenced by do_vm_map(), and vm_map_default().


Variable Documentation

PRIVATE u32_t vm_cr3
 

Definition at line 16 of file do_vm.c.

Referenced by do_vm_map(), map_range(), set_cr3(), vm_map_default(), and vm_set_cr3().

PRIVATE int vm_needs_init = 1
 

Definition at line 15 of file do_vm.c.

Referenced by do_vm_map(), and vm_map_default().


Generated on Fri Apr 14 23:14:36 2006 for minix by  doxygen 1.4.6