@Deprecated public class ImmortalPhysicalMemory extends PerennialMemory
ImmortalPhysicalMemory
allows objects to
be allocated from a range of physical memory with particular
attributes, determined by their memory type. This memory area has the
same restrictive set of assignment rules as ImmortalMemory
memory areas, and may be used in any execution context where
ImmortalMemory
is appropriate.
No provision is made for sharing object in
ImmortalPhysicalMemory
with entities outside the JVM
that creates them, and, while the memory backing an instance of
ImmortalPhysicalMemory
could be shared by multiple JVMs,
the class does not support such sharing.
Methods from ImmortalPhysicalMemory
should be
overridden only by methods that use super
.
PerennialMemory
instead of
MemoryArea
directly.Constructor and Description |
---|
ImmortalPhysicalMemory(java.lang.Object type,
long size)
Deprecated.
Creates an instance with the given parameters.
|
ImmortalPhysicalMemory(java.lang.Object type,
long base,
long size)
Deprecated.
Creates an instance with the given parameters.
|
ImmortalPhysicalMemory(java.lang.Object type,
long base,
long size,
java.lang.Runnable logic)
Deprecated.
Creates an instance with the given parameters.
|
ImmortalPhysicalMemory(java.lang.Object type,
long size,
java.lang.Runnable logic)
Deprecated.
Creates an instance with the given parameters.
|
ImmortalPhysicalMemory(java.lang.Object type,
long base,
SizeEstimator size)
Deprecated.
Creates an instance with the given parameters.
|
ImmortalPhysicalMemory(java.lang.Object type,
long base,
SizeEstimator size,
java.lang.Runnable logic)
Deprecated.
Creates an instance with the given parameters.
|
ImmortalPhysicalMemory(java.lang.Object type,
SizeEstimator size)
Deprecated.
Creates an instance with the given parameters.
|
ImmortalPhysicalMemory(java.lang.Object type,
SizeEstimator size,
java.lang.Runnable logic)
Deprecated.
Creates an instance with the given parameters.
|
enter, enter, enter, enter, enter, enter, enter, executeInArea, executeInArea, executeInArea, executeInArea, executeInArea, executeInArea, getMemoryArea, mayHoldReferenceTo, mayHoldReferenceTo, memoryConsumed, memoryRemaining, newArray, newArrayInArea, newInstance, newInstance, size
public ImmortalPhysicalMemory(java.lang.Object type, long base, long size, java.lang.Runnable logic)
type
- An instance of Object
or an array of
objects representing the type of memory required (e.g.,
dma, shared) - used to define the base address
and control the mapping. When the required memory has more
than one attribute type
may be an array of
objects. When type
is null
or a
reference to an array with no entries, any type of memory
is acceptable. Note that type
values are
compared by reference (==), not by value
(equals
).base
- The physical memory address of the area.size
- The size of the area in bytes.logic
- The run()
method of this object will be
called whenever MemoryArea.enter()
is called. When
logic
is null
, logic
must be supplied when the memory area is entered.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given type
of memory.OffsetOutOfBoundsException
- when the base
address is invalid.SizeOutOfBoundsException
- when size
extends into an invalid range of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.MemoryTypeConflictException
- when the specified base does
not point to memory that matches the requested type, or
when type
specifies incompatible memory
attributes.java.lang.IllegalArgumentException
- when size
is
negative. IllegalArgumentException
may also
be when base
plus size
would be
greater than the maximum physical address supported by the
processor.MemoryInUseException
- when the specified memory is already in use.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or for its allocation
area in its backing store.IllegalAssignmentError
- when storing logic
in this
would violate the assignment rules.public ImmortalPhysicalMemory(java.lang.Object type, long base, SizeEstimator size, java.lang.Runnable logic)
type
- An instance of Object
or an array of
objects representing the type of memory required (e.g.,
dma, shared) - used to define the base address
and control the mapping. When the required memory has more
than one attribute type
may be an array of
objects. When type
is null
or a
reference to an array with no entries, any type of memory
is acceptable. Note that type
values are
compared by reference (==), not by value
(equals
).base
- The physical memory address of the area.size
- A size estimator for this memory area.logic
- The run()
method of this object will be
called whenever MemoryArea.enter()
is called. When
logic
is null
, logic
must be supplied when the memory area is entered.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given type
of memory.OffsetOutOfBoundsException
- when the base
address is invalid.SizeOutOfBoundsException
- when the size
estimate from size
extends into an invalid range of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.MemoryTypeConflictException
- when the specified base does
not point to memory that matches the requested type, or
when type
specifies incompatible memory
attributes.java.lang.IllegalArgumentException
- when size
is
null
, or size.getEstimate()
is negative. IllegalArgumentException
may also be when base
plus the size
indicated by size
would be greater than
the maximum physical address supported by the
processor.MemoryInUseException
- when the specified memory is already in use.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or for the backing
memory.IllegalAssignmentError
- when storing logic
in
this
would violate the assignment rules.public ImmortalPhysicalMemory(java.lang.Object type, long size, java.lang.Runnable logic)
type
- An instance of Object
or an array of
objects representing the type of memory required (e.g.,
dma, shared) - used to define the base address
and control the mapping. When the required memory has more
than one attribute type
may be an array of
objects. When type
is null
or a
reference to an array with no entries, any type of memory
is acceptable. Note that type
values are
compared by reference (==), not by value
(equals
).size
- The size of the area in bytes.logic
- The run()
method of this object will be
called whenever MemoryArea.enter()
is called. When
logic
is null
, logic
must be supplied when the memory area is entered.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given type
of memory.SizeOutOfBoundsException
- when size
extends into an invalid range of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.java.lang.IllegalArgumentException
- when size
is negative.MemoryTypeConflictException
- when the specified base does
not point to memory that matches the requested type, or
when type
specifies incompatible memory
attributes.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or for its allocation
area in its backing store.IllegalAssignmentError
- when storing logic
in
this
would violate the assignment rules.public ImmortalPhysicalMemory(java.lang.Object type, SizeEstimator size, java.lang.Runnable logic)
type
- An instance of Object
or an array of
objects representing the type of memory required (e.g.,
dma, shared) - used to define the base address
and control the mapping. When the required memory has more
than one attribute type
may be an array of
objects. When type
is null
or a
reference to an array with no entries, any type of memory
is acceptable. Note that type
values are
compared by reference (==), not by value
(equals
).size
- A size estimator for this area.logic
- The run()
method of this object will be
called whenever MemoryArea.enter()
is called. When
logic
is null
, logic
must be supplied when the memory area is entered.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given type
of memory.SizeOutOfBoundsException
- when the size
extends into an invalid range of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.java.lang.IllegalArgumentException
- when size
is
null
, or size.getEstimate()
is negative.MemoryTypeConflictException
- when type
specifies
incompatible memory attributes.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or for its allocation
area in its backing store.IllegalAssignmentError
- when storing logic
in
this
would violate the assignment rules.public ImmortalPhysicalMemory(java.lang.Object type, long base, long size)
type
- An instance of Object
or an array of
objects representing the type of memory required (e.g.,
dma, shared) - used to define the base address
and control the mapping. When the required memory has more
than one attribute type
may be an array of
objects. When type
is null
or a
reference to an array with no entries, any type of memory
is acceptable. Note that type
values are
compared by reference (==), not by value
(equals
).base
- The physical memory address of the area.size
- The size of the area in bytes.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given range
of memory.OffsetOutOfBoundsException
- when the base
address is invalid.SizeOutOfBoundsException
- when the size
extends into an invalid range of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.MemoryTypeConflictException
- when the specified base does
not point to memory that matches the requested type, or
when type
specifies incompatible memory
attributes.java.lang.IllegalArgumentException
- when size
is less
than zero. IllegalArgumentException
may also
be when base
plus size
would be
greater than the maximum physical address supported by the
processor.MemoryInUseException
- when the specified memory is already in use.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or or for its allocation
area in its backing store.public ImmortalPhysicalMemory(java.lang.Object type, long base, SizeEstimator size)
type
- An instance of Object
or an array of
objects representing the type of memory required (e.g.,
dma, shared) - used to define the base address
and control the mapping. When the required memory has more
than one attribute type
may be an array of
objects. When type
is null
or a
reference to an array with no entries, any type of memory
is acceptable. Note that type
values are
compared by reference (==), not by value
(equals
).base
- The physical memory address of the area.size
- A size estimator for this memory area.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given type
of memory.OffsetOutOfBoundsException
- when the base
address is invalid.SizeOutOfBoundsException
- when the
size estimate from size
extends into an invalid range of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.MemoryTypeConflictException
- when the specified base does
not point to memory that matches the requested type, or
when type
specifies incompatible memory
attributes.java.lang.IllegalArgumentException
- when size
is
null
, or size.getEstimate()
is negative. IllegalArgumentException
may also be when base
plus the size
indicated by size
would be greater than
the maximum physical address supported by the
processor.MemoryInUseException
- when the specified memory is already in use.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or for its allocation
area in its backing store.public ImmortalPhysicalMemory(java.lang.Object type, long size)
type
- An instance of Object
representing the
type of memory required (e.g., dma, shared) - used
to define the base address and control the mapping. When the
required memory has more than one attribute
type
may be an array of objects. When
type
is null
or a reference to an
array with no entries, any type of memory is acceptable.
Note that type
values are compared by reference
(==), not by value (equals
).size
- The size of the area in bytes.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given type
of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.MemoryTypeConflictException
- when type
specifies
incompatible memory attributes.java.lang.IllegalArgumentException
- when size
is less than zero.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or for its allocation
area in its backing store.SizeOutOfBoundsException
- when the size
extends into an invalid range of memory.public ImmortalPhysicalMemory(java.lang.Object type, SizeEstimator size)
type
- An instance of Object
or an array of
objects representing the type of memory required (e.g.,
dma, shared) - used to define the base address
and control the mapping. When the required memory has more
than one attribute type
may be an array of
objects. When type
is null
or a
reference to an array with no entries, any type of memory
is acceptable. Note that type
values are
compared by reference (==), not by value
(equals
).size
- A size estimator for this area.StaticSecurityException
- when the application doesn't have
permissions to access physical memory or the given type
of memory.SizeOutOfBoundsException
- when the size estimate
from size
extends into an invalid range of memory.UnsupportedPhysicalMemoryException
- when the underlying
hardware does not support the given type, or when no matching
PhysicalMemoryTypeFilter
has been registered with
the PhysicalMemoryManager
.MemoryTypeConflictException
- when type
specifies
incompatible memory attributes.java.lang.IllegalArgumentException
- when size
is
null
, or size.getEstimate()
is negative.StaticOutOfMemoryError
- when there is insufficient memory for the
ImmortalPhysicalMemory
object or for its allocation
area in its backing store.