interface xdc.runtime.knl.ISemThreadSupport

Interface for OS specific back-end

The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.SemThread module. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/ISemThreadSupport.xdc
interface ISemThreadSupport {  ...
    // inherits xdc.runtime.IModule
instance:  ...
XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
package xdc.runtime.knl;
 
interface ISemThreadSupport inherits ISemaphore {
module-wide constants & types
 
    };
 
        PendStatus_ERROR,
        PendStatus_TIMEOUT,
        PendStatus_SUCCESS
    };
module-wide config parameters
 
 
instance:
per-instance config parameters
per-instance creation
per-instance functions
}
DETAILS
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.SemThread module.
This interface adds the create() function.
 
const ISemThreadSupport.FOREVER

Used as the timeout value to specify wait forever

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
const UInt FOREVER = ~(0);
 
 
enum ISemThreadSupport.Mode

Types of semaphores

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
enum Mode {
    Mode_COUNTING,
    // Counting semaphore
    Mode_BINARY
    // Binary Semaphore
};
 
 
enum ISemThreadSupport.PendStatus

Error codes returned by Semaphore_pend

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
enum PendStatus {
    PendStatus_ERROR,
    PendStatus_TIMEOUT,
    PendStatus_SUCCESS
};
 
 
metaonly config ISemThreadSupport.common$  // module-wide

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
metaonly config Types.Common$ common$;
 
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.
 
config ISemThreadSupport.mode  // instance

Semaphore mode. Default is COUNTING

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
 
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
Instance Creation

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
create(Int count);
// Create an instance-object
ARGUMENTS
count — initial semaphore count
DETAILS
This function creates a new Semaphore object which is initialized to count.
 
ISemThreadSupport.pend()  // instance

Wait for the semaphore to become available

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
Int pend(UInt timeout, Error.Block *eb);
 
ARGUMENTS
timeout — timeout in microseconds
eb — error block
DETAILS
RETURNS
refer to description above
 
ISemThreadSupport.post()  // instance

Increment the semaphore count

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
Bool post(Error.Block *eb);
 
ARGUMENTS
eb — error block
RETURNS
true for success, false for error in error block
generated on Thu, 01 Mar 2012 16:58:44 GMT