public final class AddressAllocationTable
extends java.lang.Object
AddressAllocationTable implements a region-sensitive allocation table.| Constructor and Description |
|---|
AddressAllocationTable(int lower,
int upper,
long addressMask,
java.util.Collection<? extends Range<java.lang.Long>> regions)
Creates an allocation table for the given address field.
|
| Modifier and Type | Method and Description |
|---|---|
long |
allocate(Range<java.lang.Long> region,
boolean peek,
java.util.Set<java.lang.Long> exclude)
Allocates an address field value for the given region.
|
java.util.Collection<java.lang.Long> |
getAllAddresses(Range<java.lang.Long> region) |
java.util.Collection<java.lang.Long> |
getFreeAddresses(Range<java.lang.Long> region) |
java.util.Collection<java.lang.Long> |
getUsedAddresses(Range<java.lang.Long> region) |
void |
reset() |
public AddressAllocationTable(int lower,
int upper,
long addressMask,
java.util.Collection<? extends Range<java.lang.Long>> regions)
lower - the lower bit of the field.upper - the upper bit of the field.addressMask - the mask indicating insignificant address bits.regions - the memory regions or null.public long allocate(Range<java.lang.Long> region, boolean peek, java.util.Set<java.lang.Long> exclude)
region - the region or null.peek - if peek == true, peek an address without allocation.exclude - the values to be excluded or null.public void reset()
public java.util.Collection<java.lang.Long> getFreeAddresses(Range<java.lang.Long> region)
public java.util.Collection<java.lang.Long> getUsedAddresses(Range<java.lang.Long> region)
public java.util.Collection<java.lang.Long> getAllAddresses(Range<java.lang.Long> region)