1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17// BEGIN android-note 18// address length was changed from long to int for performance reasons. 19// END android-note 20 21package org.apache.harmony.luni.platform; 22 23public class MappedPlatformAddress extends PlatformAddress { 24 25 MappedPlatformAddress(int address, long size) { 26 super(address, size); 27 } 28 29 public final void mmapLoad() { 30 memorySpy.rangeCheck(this, 0, (int) size * SIZEOF_JBYTE); 31 osMemory.load(osaddr, size); 32 } 33 34 public final boolean mmapIsLoaded() { 35 memorySpy.rangeCheck(this, 0, (int) size * SIZEOF_JBYTE); 36 return osMemory.isLoaded(osaddr, size); 37 } 38 39 public final void mmapFlush() { 40 memorySpy.rangeCheck(this, 0, (int) size * SIZEOF_JBYTE); 41 osMemory.flush(osaddr, size); 42 } 43 44 public final void free(){ 45 if(memorySpy.free(this)){ 46 osMemory.unmap(osaddr, size); 47 } 48 } 49 50 public PlatformAddress duplicate(){ 51 return PlatformAddressFactory.mapOn(osaddr, size); 52 } 53 54 public final PlatformAddress offsetBytes(int offset) { 55 return PlatformAddressFactory.mapOn(osaddr + offset, size - offset); 56 } 57 // BEGIN android-removed 58 // public final PlatformAddress offsetBytes(long offset) { 59 // return PlatformAddressFactory.mapOn(osaddr + offset, size - offset); 60 // } 61 // END android-removed 62} 63