Unlike the Notify drivers available in the
ti.sdo.ipc.notifyDrivers
package, this driver is not generic and will only work with the Vayu
family of devices.
The driver does not use shared memory. The event IDs and payloads are
transmitted via the hardware mailbox FIFO. The FIFO can hold up to 4
mailbox messages. The number of notification that can be stored in the
FIFO depends on the size of the payloads being sent via Notify_sendEvent.
If the payload is less than 0x7FFFFFF, then a single message will be
sent per notification. Otherwise, two mailbox messages are needed to
send the notification.
The behavior of Notify_sendEvent when the FIFO is full depends on the
value of the 'waitClear' argument to the function. If 'waitClear' is
TRUE, then Notify_sendEvent will spin waiting for enough room in the
FIFO. If 'waitClear' is FALSE, then Notify_sendEvent will return
Notify_E_FAIL.
The Notify_enableEvent and Notify_disableEvent APIs are not supported
by this driver.
config NotifyDriverMbx_A_notSupported // module-wide |
|
Assert raised when trying to use Notify_[enable/disable]Event with
NotifyDriverMbx
extern const Assert_Id NotifyDriverMbx_A_notSupported;
Module-Wide Built-Ins |
|
// Get this module's unique id
Bool NotifyDriverMbx_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool NotifyDriverMbx_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 NotifyDriverMbx_Module_getMask();
// Returns the diagnostics mask for this module
Void NotifyDriverMbx_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types |
|
typedef struct NotifyDriverMbx_Object NotifyDriverMbx_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct NotifyDriverMbx_Struct NotifyDriverMbx_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 NotifyDriverMbx_Params {
// Instance config-params structure
// Common per-instance configs
UInt intVectorId;
// Interrupt vector ID to be used by the driver
UInt16 remoteProcId;
// The MultiProc ID corresponding to the remote processor
} NotifyDriverMbx_Params;
// Initialize this config-params structure with supplier-specified defaults before instance creation
config NotifyDriverMbx_Params.intVectorId // instance |
|
Interrupt vector ID to be used by the driver
DETAILS
This parameter is only used by C66 targets.
This is a required parameter, it is not optional.
config NotifyDriverMbx_Params.remoteProcId // instance |
|
The MultiProc ID corresponding to the remote processor
DETAILS
This is a required parameter, it is not optional.
NotifyDriverMbx_disable() // instance |
|
Disable a NotifyDriver instance
ARGUMENTS
handle
handle of a previously-created NotifyDriverMbx instance object
DETAILS
Disables the ability of a Notify driver to receive events for a given
processor. This interface function is called by the Notify_disable
function. Refer to its documentation for more details.
NotifyDriverMbx_disableEvent() // instance |
|
Disable an event
ARGUMENTS
handle
handle of a previously-created NotifyDriverMbx instance object
eventId
Number of event to disable
DETAILS
This interface function is called by the Notify_disableEvent function.
Refer to its documentation for more details.
The Notify module does validation of the eventId. The Notify module
enters calls this function within the Notify module gate.
NotifyDriverMbx_enable() // instance |
|
Enable a NotifyDriver instance
ARGUMENTS
handle
handle of a previously-created NotifyDriverMbx instance object
DETAILS
Enables the ability of a Notify driver to receive events for a given
processor. This interface function is called by the Notify_restore
function. Refer to its documentation for more details.
NotifyDriverMbx_enableEvent() // instance |
|
Enable an event
ARGUMENTS
handle
handle of a previously-created NotifyDriverMbx instance object
eventId
Number of event to enable
DETAILS
This interface function is called by the Notify_disableEvent function.
Refer to its documentation for more details.
The Notify module does validation of the eventId. The Notify module
enters calls this function within the Notify module gate.
NotifyDriverMbx_registerEvent() // instance |
|
Register a callback to an event
ARGUMENTS
handle
handle of a previously-created NotifyDriverMbx instance object
eventId
Number of event that is being registered
DETAILS
This driver function is called by the Notify_registerEvent function
within the Notify module gate. Refer to its documentation for more
details.
NotifyDriverMbx_sendEvent() // instance |
|
Send a signal to an event
ARGUMENTS
handle
handle of a previously-created NotifyDriverMbx instance object
eventId
Number of event to signal
payload
Payload (optional) to pass to callback function
waitClear
If TRUE, have the NotifyDriver wait for
acknowledgement back from the destination
processor.
RETURNS
Notify status
DETAILS
This interface function is called by the Notify_sendEvent function.
Notify_sendEvent does not provide any context protection for
INotifyDriver_sendEvent, so appropriate measures must be taken within
the driver itself.
NotifyDriverMbx_unregisterEvent() // instance |
|
Remove an event listener from an event
ARGUMENTS
handle
handle of a previously-created NotifyDriverMbx instance object
eventId
Number of event that is being unregistered
DETAILS
This driver function is called by the Notify_unregisterEvent function
within the Notify module gate. Refer to it for more details.
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 NotifyDriverMbx_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