This is a
ti.sdo.ipc.Notify driver that uses hardware mailboxes to
transmit notifications to remote processors.
Unlike the Notify drivers available in the
ti.sdo.ipc.notifyDrivers
package, this driver is not generic and will only work with the TI81xx
family of devices.
The driver uses no shared memory since the event IDs and payloads that
comprise notifications 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 sizes 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, if the payload is greater
than or equal to 0x7FFFFFF, 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 for the
notification before actually sending it. If 'waitClear' is FALSE, then
Notify_sendEvent will return Notify_E_FAIL if there isn't enough room in the
FIFO to store the notification.
The Notify_[enable/disable]Event 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;
config NotifyDriverMbx_intVectorId // module-wide |
|
Interrupt vector ID to be used by the driver
extern const UInt NotifyDriverMbx_intVectorId;
DETAILS
This parameter is only used by the DSP core
config NotifyDriverMbx_mailboxBaseAddr // module-wide |
|
Base address for the Mailbox subsystem
extern const UInt32 NotifyDriverMbx_mailboxBaseAddr;
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
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.remoteProcId // instance |
|
The MultiProc ID corresponding to the remote processor
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