module xdc.runtime.knl.GateH |
|
|
|
Provides APIs to protect critical sections when an IGate.Handle is
available.[EXPERIMENTAL]
An application can isolate itself from IGate implementations by using
this module. The application must first obtain an IGate.Handle.
It can get such a handle by directly calling
GateThread.create or
GateProcess.create. Then the application can use the generic
APIs provided by this module.
[
more ... ]
#include <xdc/runtime/knl/GateH.h>
module-wide functions
module-wide built-ins
XDCscript usage |
meta-domain |
var GateH = xdc.useModule('xdc.runtime.knl.GateH');
local proxy modules
module-wide config parameters
module GateH {
local proxy modules
module-wide config parameters
module-wide functions
}
DETAILS
An application can isolate itself from IGate implementations by using
this module. The application must first obtain an IGate.Handle.
It can get such a handle by directly calling
GateThread.create or
GateProcess.create. Then the application can use the generic
APIs provided by this module.
The underlying gates are nexting in nature and users have to leave
the gate as many times as they entered it.
proxy GateH.Proxy |
|
Proxy used for optimization
XDCscript usage |
meta-domain |
// explicit access to the currently bound delegate module
GateH.Proxy.abstractInstances$ = false
// use indirect runtime function calls if true
DETAILS
If ALL IGateProvider.Handles used by GateH are created using the same
module (e.g GateProcess) then setting this Proxy to GateProcess and
setting GateH.Proxy.abstractInstances$ = false, causes
GateH APIs can have better performance.
metaonly config GateH.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.
GateH.enter( ) // module-wide |
|
Enter a gate
ARGUMENTS
hdl
IGateProvider.Handle
RETURNS
key
GateH.leave( ) // module-wide |
|
Leave a gate
ARGUMENTS
hdl
IGateProvider.Handle
key
key returned by enter();
module-wide built-ins |
|
// Get this module's unique id
Bool GateH_Module_startupDone( );
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool GateH_Module_hasMask( );
// Test whether this module has a diagnostics mask
Bits16 GateH_Module_getMask( );
// Returns the diagnostics mask for this module
Void GateH_Module_setMask( Bits16 mask );
// Set the diagnostics mask for this module
generated on Sat, 01 Aug 2009 01:23:53 GMT