GateHwi uses disabling and enabling of interrupts as the resource locking
mechanism. Such a gate guarantees exclusive access to the CPU. This gate
can be used whenever the resource is being shared by Tasks, Swis, and/or
Hwis.
The duration between the enter and leave should be as short as possible
to minimize Hwi latency.
GateHwi inherits from xdc.runtime.IGateProvider, therefore supports nesting.
| const GateHwi_Q_BLOCKING |
 |
Blocking quality
#define GateHwi_Q_BLOCKING (Int)1
DETAILS
Gates with this "quality" may cause the calling thread to block;
i.e., suspend execution until another thread leaves the gate.
| const GateHwi_Q_PREEMPTING |
 |
Preempting quality
#define GateHwi_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread
that has already entered the gate.
| GateHwi_query() // module-wide |
 |
Runtime test for a particular gate quality
Bool GateHwi_query(Int qual);
ARGUMENTS
qual
constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality,
and FALSE otherwise, which includes the case when the gate does not
recognize the constant describing the quality.
| Module-Wide Built-Ins |
 |
// Get this module's unique id
Bool GateHwi_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool GateHwi_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateHwi_Module_getMask();
// Returns the diagnostics mask for this module
Void GateHwi_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
| Instance Object Types |
 |
typedef struct GateHwi_Object GateHwi_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct GateHwi_Struct GateHwi_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 GateHwi_Params {
// Instance config-params structure
// Common per-instance configs
} GateHwi_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)
| Instance Deletion |
 |
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
// Finalize the instance object inside the provided structure
| 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 GateHwi_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