GateAll uses disabling and enabling of interrupts, Swis and Tasks for 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.
GateAll inherits from xdc.runtime.IGateProvider, therefore supports nesting.
const GateAll_Q_BLOCKING |
|
Blocking quality
#define GateAll_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 GateAll_Q_PREEMPTING |
|
Preempting quality
#define GateAll_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread
that has already entered the gate.
GateAll_query() // module-wide |
|
Runtime test for a particular gate quality
Bool GateAll_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 GateAll_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool GateAll_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateAll_Module_getMask();
// Returns the diagnostics mask for this module
Void GateAll_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types |
|
typedef struct GateAll_Object GateAll_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct GateAll_Struct GateAll_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 GateAll_Params {
// Instance config-params structure
// Common per-instance configs
} GateAll_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 GateAll_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