Ravenbrook / Projects / Memory Pool System / Master Product Sources / Design Documents

Memory Pool System Project


                         VM MODULE ON DEC UNIX
                            design.mps.vmo1
                             incomplete doc
                             drj 1997-03-25

INTRODUCTION

.readership: Any MPS developer.

.intro: This is the design of the VM Module for DEC UNIX (aka OSF/1 os.o1).  In 
general aspects (including interface) the design is as for design.mps.vm.

DETAILS

Functions

.fun.unmap:

VMUnmap

It "unmaps" a region by replacing the existing mapping with a mapping using the 
vm->none_fd file descriptor (see mumble mumble, VMCreate), and protection set 
to PROT_NONE (ie no access).  .fun.unmap.justify: Replacing the mapping in this 
way means that the address space is still reserved and will not be used by 
calls to mmap (perhaps in other libraries) which specify MAP_VARIABLE.  
.fun.unmap.offset: The offset for this mapping is the offset of the region 
being unmapped in the VM; this gives the same effect as if there was one 
mapping of the vm->none_fd from the base to the limit of the VM (but "behind" 
all the other mappings that have been created).  .fun.unmap.offset.justify: If 
this is not done (if for example the offset is always specified as 0) then the 
VM will cause the kernel to create a new file reference for each mapping 
created with VMUnmap; eventually the kernel refuses the mmap call because it 
can't create a new file reference.

A. References

B. Document History

2002-06-07 RB Converted from MMInfo database design document.