enum CacheNull.Type |
|
Lists of bitmask cache types
XDCscript usage |
meta-domain |
values of type CacheNull.Type
const CacheNull.Type_L1P;
// Level 1 Program cache
const CacheNull.Type_L1D;
// Level 1 Data cache
const CacheNull.Type_L1;
// Level 1 caches
const CacheNull.Type_L2P;
// Level 2 Program cache
const CacheNull.Type_L2D;
// Level 2 Data cache
const CacheNull.Type_L2;
// Level 2 caches
const CacheNull.Type_ALL;
// All caches
typedef enum CacheNull_Type {
CacheNull_Type_L1P,
// Level 1 Program cache
CacheNull_Type_L1D,
// Level 1 Data cache
CacheNull_Type_L1,
// Level 1 caches
CacheNull_Type_L2P,
// Level 2 Program cache
CacheNull_Type_L2D,
// Level 2 Data cache
CacheNull_Type_L2,
// Level 2 caches
CacheNull_Type_ALL
// All caches
} CacheNull_Type;
metaonly config CacheNull.common$ // module-wide |
|
Common module configuration parameters
XDCscript usage |
meta-domain |
DETAILS
All modules have this configuration parameter. Its name
contains the '$' character to ensure it does not conflict with
configuration parameters declared by the module. This allows
new configuration parameters to be added in the future without
any chance of breaking existing modules.
CacheNull.disable( ) // module-wide |
|
Disables the 'type' cache(s)
Void CacheNull_disable( Bits16 type );
ARGUMENTS
type
bit mask of Cache type
CacheNull.enable( ) // module-wide |
|
Enables all cache(s)
Void CacheNull_enable( Bits16 type );
ARGUMENTS
type
bit mask of Cache type
CacheNull.inv( ) // module-wide |
|
Invalidate the range of memory within the specified starting
address and byte count. The range of addresses operated on
gets quantized to whole cache lines in each cache. All lines
in range are invalidated for all the 'type' caches
Void CacheNull_inv( Ptr blockPtr, SizeT byteCnt, Bits16 type, Bool wait );
ARGUMENTS
blockPtr
start address of range to be invalidated
byteCnt
number of bytes to be invalidated
type
bit mask of Cache type
wait
wait until the operation is completed
CacheNull.wait( ) // module-wide |
|
Wait for a previous cache operation to complete
DETAILS
Wait for the cache wb/wbInv/inv operation to complete. A cache
operation is not truly complete until it has worked its way
through all buffering and all memory writes have landed in the
source memory.
CacheNull.wb( ) // module-wide |
|
Writes back a range of memory from all cache(s)
Void CacheNull_wb( Ptr blockPtr, SizeT byteCnt, Bits16 type, Bool wait );
ARGUMENTS
blockPtr
start address of range to be invalidated
byteCnt
number of bytes to be invalidated
type
bit mask of Cache type
wait
wait until the operation is completed
DETAILS
Writes back the range of memory within the specified starting
address and byte count. The range of addresses operated on
gets quantized to whole cache lines in each cache. All lines
within the range are left valid in the 'type' caches and the data
within the range will be written back to the source memory.
CacheNull.wbInv( ) // module-wide |
|
Writes back and invalidates the range of memory within the
specified starting address and byte count. The range of
addresses operated on gets quantized to whole cache lines in
each cache. All lines within the range are written back to the
source memory and then invalidated for all 'type' caches
Void CacheNull_wbInv( Ptr blockPtr, SizeT byteCnt, Bits16 type, Bool wait );
ARGUMENTS
blockPtr
start address of range to be invalidated
byteCnt
number of bytes to be invalidated
type
bit mask of Cache type
wait
wait until the operation is completed
module-wide built-ins |
|
// Get this module's unique id
Bool CacheNull_Module_startupDone( );
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool CacheNull_Module_hasMask( );
// Test whether this module has a diagnostics mask
Bits16 CacheNull_Module_getMask( );
// Returns the diagnostics mask for this module
Void CacheNull_Module_setMask( Bits16 mask );
// Set the diagnostics mask for this module