Module-Wide Built-Ins |
|
// Get this module's unique id
Bool HeapNull_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool HeapNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 HeapNull_Module_getMask();
// Returns the diagnostics mask for this module
Void HeapNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types |
|
typedef struct HeapNull_Object HeapNull_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct HeapNull_Struct HeapNull_Struct;
// Opaque client structure large enough to hold an instance object
// Convert this instance structure pointer into an instance handle
// Convert this instance handle into an instance structure pointer
Instance Config Parameters |
|
typedef struct HeapNull_Params {
// Instance config-params structure
// Common per-instance configs
} HeapNull_Params;
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation |
|
// Allocate and initialize a new instance object and return its handle
// Initialize a new instance object inside the provided structure
ARGUMENTS
params
per-instance config params, or NULL to select default values (target-domain only)
eb
active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This heap is an always empty heap that is intended to be used by
systems that never allocate objects or free memory but need a heap
to satisfy linkage requirements of third-party libraries.
Instance Deletion |
|
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
// Finalize the instance object inside the provided structure
HeapNull_alloc() // instance |
|
Allocate a block of memory from the heap
ARGUMENTS
handle
handle of a previously-created HeapNull instance object
size
size (in MADUs) of the block
align
alignment (in MADUs) of the block
eb
pointer to error block
DETAILS
This method returns a block of memory from the heap.
It is called by the
xdc.runtime.Memory.alloc() function.
HeapNull_alloc() always fails.
RETURNS
Returns the address of the allocated memory.
HeapNull_free() // instance |
|
Free a block of memory back to the heap
ARGUMENTS
handle
handle of a previously-created HeapNull instance object
block
non-NULL address of allocated block to free
size
size (in MADUs) of the block of memory to free
DETAILS
This method gives back a block of memory to a heap.
It is called by the
xdc.runtime.Memory.free() function.
Calling the HeapNull_free function has no effect.
HeapNull_getStats() // instance |
|
Retrieve the statistics from the heap
ARGUMENTS
handle
handle of a previously-created HeapNull instance object
stats
non-NULL pointer to an output buffer
DETAILS
The caller passes in a pointer to a
xdc.runtime.Memory.Stats
structure and
getStats fills in this structure.
This function is called by the
xdc.runtime.Memory.getStats()
function.
HeapNull_isBlocking() // instance |
|
Can this heap block the caller
ARGUMENTS
handle
handle of a previously-created HeapNull instance object
RETURNS
If the heap might block, TRUE is returned.
If the heap does not block, FALSE is returned.
HeapNull always returns FALSE since it never blocks on a
resource.
Instance Convertors |
|
// unconditionally move one level up the inheritance hierarchy
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins |
|
Int HeapNull_Object_count();
// The number of statically-created instance objects
// The handle of the i-th statically-created instance object (array == NULL)
// The handle of the first dynamically-created instance object, or NULL
// The handle of the next dynamically-created instance object, or NULL
// The heap used to allocate dynamically-created instance objects
// The label associated with this instance object
// The name of this instance object