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)();
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
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
Instance Config Parameters |
|
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 // instance |
|
deviceId for iom driver
config IomAdapter_deviceParams // instance |
|
Legacy deviceParams
config IomAdapter_initFxn // instance |
|
Legacy iom init function
config IomAdapter_iomFxns // instance |
|
Pointer to legacy iom function table
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
IomAdapter_close() // 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() // 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() // 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() // 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.
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 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