The IomAdapter module maps iom.h to IDriver.xdc. A legacy iom
driver has to hook into BIOS 6.x using this module. This module
handles ALL legacy drivers in the system. This single module
takes care of several legacy driver modules.
As part of its create the IomAdapter module will call mbBindDev for
each of the legacy drivers.
open will call mdCreateChan.
close will call mdDeleteChan.
submit will call
mdSubmitChan.
control will call mdControlChan. A delete call will
call mdUnbindDev.
typedef IomAdapter.InitFunc |
 |
Iom init function type definition
typedef Void (*IomAdapter_InitFunc)();
metaonly config IomAdapter.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.
module-wide built-ins |
 |
// Get this module's unique id
Bool IomAdapter_Module_startupDone( );
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool IomAdapter_Module_hasMask( );
// Test whether this module has a diagnostics mask
Bits16 IomAdapter_Module_getMask( );
// Returns the diagnostics mask for this module
Void IomAdapter_Module_setMask( Bits16 mask );
// Set the diagnostics mask for this module
per-instance object types |
 |
typedef struct IomAdapter_Object IomAdapter_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct IomAdapter_Struct IomAdapter_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
per-instance config parameters |
 |
XDCscript usage |
meta-domain |
var params = new IomAdapter.Params;
// Instance config-params object
params.deviceId = UInt 0;
// deviceId for iom driver
params.deviceParams = Ptr null;
// Legacy deviceParams
params.initFxn = Void(*)() null;
// Legacy iom init function
params.iomFxns = Ptr null;
// Pointer to legacy iom function table
typedef struct IomAdapter_Params {
// Instance config-params structure
// Common per-instance configs
UInt deviceId;
// deviceId for iom driver
Ptr deviceParams;
// Legacy deviceParams
// Legacy iom init function
Ptr iomFxns;
// Pointer to legacy iom function table
} IomAdapter_Params;
// Initialize this config-params structure with supplier-specified defaults before instance creation
config IomAdapter.deviceId // per-instance |
 |
deviceId for iom driver
XDCscript usage |
meta-domain |
var params = new IomAdapter.Params;
...
params.deviceId = UInt 0;
config IomAdapter.deviceParams // per-instance |
 |
Legacy deviceParams
XDCscript usage |
meta-domain |
var params = new IomAdapter.Params;
...
params.deviceParams = Ptr null;
config IomAdapter.initFxn // per-instance |
 |
Legacy iom init function
XDCscript usage |
meta-domain |
var params = new IomAdapter.Params;
...
params.initFxn = Void(*)() null;
config IomAdapter.iomFxns // per-instance |
 |
Pointer to legacy iom function table
XDCscript usage |
meta-domain |
var params = new IomAdapter.Params;
...
params.iomFxns = Ptr null;
per-instance creation |
 |
XDCscript usage |
meta-domain |
var params =
new IomAdapter.
Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = IomAdapter.create( params );
// Create an instance-object
// 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)
per-instance deletion |
 |
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
// Finalize the instance object inside the provided structure
IomAdapter.close( ) // per-instance |
 |
Close a channel. Raises an error upon failure
ARGUMENTS
handle
handle of a previously-created IomAdapter instance object
chanHandle
opaque channel handle
eb
error block
DETAILS
For example, trying to close a channel which is NOT in use could raise
an error. The error could be driver specific or generic errors defined
by
ti.sdo.io.DriverTypes
IomAdapter.control( ) // per-instance |
 |
Send driver specific command to channel or associated device
ARGUMENTS
handle
handle of a previously-created IomAdapter instance object
chanHandle
opaque channel handle
cmd
control command
cmdArgs
command argument
eb
error block
IomAdapter.open( ) // per-instance |
 |
Open a channel
ARGUMENTS
handle
handle of a previously-created IomAdapter instance object
name
name string
mode
open mode for channel
chanParams
driver specific channel parameters
cbFxn
callback function
cbArg
callback function arg
eb
error block
RETURNS
opaque channel handle
DETAILS
Use this function to open a channel. The name parameter allows for
driver specific configuration. e.g when a channel id is required. The
name will be null for most drivers. The mode is either
ti.sdo.io.DriverTypes.INPUT or
ti.sdo.io.DriverTypes.OUTPUT.
chanParams are driver specific. When chanparams is null driver will use
default params which were statically configured. The callback function
and arg are used to indicate completion of IO after an async
submit call. The driver will raise an error when open fails and
the error block will contain a driver specific error or a generic error
defined by
ti.sdo.io.DriverTypes.
open returns a driver specific opaque channel handle.
Note that open() can be called at Startup time and the driver
has to ensure that open() returns the channel pointer even though the
driver startup has not been called.
IomAdapter.submit( ) // per-instance |
 |
Submit io packet to a channel. This may result in a callback
ARGUMENTS
handle
handle of a previously-created IomAdapter instance object
chanHandle
opaque channel handle
packet
io packet
eb
error block
RETURNS
status (DriverTypes_COMPLETED/PENDING/ERROR)
DETAILS
The driver may be able to complete the IO immediately and will return
ti.sdo.io.DriverTypes.COMPLETED status. If the driver requires an async
callback then, it will return
ti.sdo.io.DriverTypes.PENDING. When the
driver raises an error, it will return
ti.sdo.io.DriverTypes.ERROR and the
caller need to check the error block.
In case the return value is
ti.sdo.io.DriverTypes.PENDING, the driver will
call the function specified during
open with the IO packet.
per-instance convertors |
 |
// unconditionally move one level up the inheritance hierarchy
// conditionally move one level down the inheritance hierarchy; NULL upon failure
per-instance built-ins |
 |
Int IomAdapter_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