/**
  * Allows access to an area of virtual memory.
  *
  * @param start the address of the start of the area to be mapped
  * @param size the size, in bytes, of the area to be mapped
  * @return <code>true</code> if successful, otherwise <code>false</code>
  */
 public final boolean munprotect(Address start, int size) {
   return org.jikesrvm.runtime.Memory.mprotect(
       start,
       Extent.fromIntZeroExtend(size),
       org.jikesrvm.runtime.Memory.PROT_READ
           | org.jikesrvm.runtime.Memory.PROT_WRITE
           | org.jikesrvm.runtime.Memory.PROT_EXEC);
 }
 /**
  * Demand zero mmaps an area of virtual memory.
  *
  * @param start the address of the start of the area to be mapped
  * @param size the size, in bytes, of the area to be mapped
  * @return 0 if successful, otherwise the system errno
  */
 public final int dzmmap(Address start, int size) {
   Address result = org.jikesrvm.runtime.Memory.dzmmap(start, Extent.fromIntZeroExtend(size));
   if (result.EQ(start)) return 0;
   if (result.GT(Address.fromIntZeroExtend(127))) {
     VM.sysWrite("demand zero mmap with MAP_FIXED on ", start);
     VM.sysWriteln(" returned some other address", result);
     VM.sysFail("mmap with MAP_FIXED has unexpected behavior");
   }
   return result.toInt();
 }
 /**
  * Logs the contents of an address and the surrounding memory to the error output.
  *
  * @param start the address of the memory to be dumped
  * @param beforeBytes the number of bytes before the address to be included
  * @param afterBytes the number of bytes after the address to be included
  */
 public final void dumpMemory(Address start, int beforeBytes, int afterBytes) {
   org.jikesrvm.runtime.Memory.dumpMemory(start, beforeBytes, afterBytes);
 }
 /**
  * Zero a range of pages of memory.
  *
  * @param start Start of address range (must be a page address)
  * @param len Length in bytes of range (must be multiple of page size)
  */
 public final void zeroPages(Address start, int len) {
   /* AJG: Add assertions to check conditions documented above. */
   org.jikesrvm.runtime.Memory.zeroPages(start, len);
 }
 /**
  * Zero a region of memory.
  *
  * @param start Start of address range (inclusive)
  * @param len Length in bytes of range to zero Returned: nothing
  */
 public final void zero(Address start, Extent len) {
   org.jikesrvm.runtime.Memory.zero(start, len);
 }
 /**
  * Protects access to an area of virtual memory.
  *
  * @param start the address of the start of the area to be mapped
  * @param size the size, in bytes, of the area to be mapped
  * @return <code>true</code> if successful, otherwise <code>false</code>
  */
 public final boolean mprotect(Address start, int size) {
   return org.jikesrvm.runtime.Memory.mprotect(
       start, Extent.fromIntZeroExtend(size), org.jikesrvm.runtime.Memory.PROT_NONE);
 }