module ti.sdo.ipc.family.ti81xx.NotifyDriverMbx

A TI81xx hardware mailbox based driver for the Notify Module

This is a ti.sdo.ipc.Notify driver that uses hardware mailboxes to transmit notifications to remote processors. [ more ... ]
C synopsis target-domain sourced in ti/sdo/ipc/family/ti81xx/NotifyDriverMbx.xdc
#include <ti/sdo/ipc/family/ti81xx/NotifyDriverMbx.h>
Functions
Void
Functions common to all INotifyDriver modules
Void 
Void 
Void 
Void 
Void 
Int 
NotifyDriverMbx_sendEvent// Send a signal to an event(NotifyDriverMbx_Handle handle, UInt32 eventId, UInt32 payload, Bool waitClear);
Void 
Functions common to all target instances
Functions common to all target modules
Typedefs
typedef struct
typedef struct
typedef struct
Constants
extern const Assert_Id 
extern const UInt 
extern const UInt32 
 
DETAILS
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

C synopsis target-domain
extern const Assert_Id NotifyDriverMbx_A_notSupported;
 
 
config NotifyDriverMbx_intVectorId  // module-wide

Interrupt vector ID to be used by the driver

C synopsis target-domain
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

C synopsis target-domain
extern const UInt32 NotifyDriverMbx_mailboxBaseAddr;
 
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId NotifyDriverMbx_Module_id();
// Get this module's unique id
 
Bool NotifyDriverMbx_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle NotifyDriverMbx_Module_heap();
// 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

C synopsis target-domain
typedef struct NotifyDriverMbx_Object NotifyDriverMbx_Object;
// Opaque internal representation of an instance object
 
typedef NotifyDriverMbx_Object *NotifyDriverMbx_Handle;
// Client reference to an instance object
 
typedef struct NotifyDriverMbx_Struct NotifyDriverMbx_Struct;
// Opaque client structure large enough to hold an instance object
 
NotifyDriverMbx_Handle NotifyDriverMbx_handle(NotifyDriverMbx_Struct *structP);
// Convert this instance structure pointer into an instance handle
 
NotifyDriverMbx_Struct *NotifyDriverMbx_struct(NotifyDriverMbx_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters

C synopsis target-domain
typedef struct NotifyDriverMbx_Params {
// Instance config-params structure
    IInstance_Params *instance;
    // Common per-instance configs
    UInt16 remoteProcId;
    // The MultiProc ID corresponding to the remote processor
} NotifyDriverMbx_Params;
 
Void NotifyDriverMbx_Params_init(NotifyDriverMbx_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
 
config NotifyDriverMbx_remoteProcId  // instance

The MultiProc ID corresponding to the remote processor

C synopsis target-domain
      ...
    UInt16 remoteProcId;
 
 
NotifyDriverMbx_disable()  // instance

Disable a NotifyDriver instance

C synopsis target-domain
Void NotifyDriverMbx_disable(NotifyDriverMbx_Handle handle);
 
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

C synopsis target-domain
Void NotifyDriverMbx_disableEvent(NotifyDriverMbx_Handle handle, UInt32 eventId);
 
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

C synopsis target-domain
Void NotifyDriverMbx_enable(NotifyDriverMbx_Handle handle);
 
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

C synopsis target-domain
Void NotifyDriverMbx_enableEvent(NotifyDriverMbx_Handle handle, UInt32 eventId);
 
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

C synopsis target-domain
Void NotifyDriverMbx_registerEvent(NotifyDriverMbx_Handle handle, UInt32 eventId);
 
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

C synopsis target-domain
Int NotifyDriverMbx_sendEvent(NotifyDriverMbx_Handle handle, UInt32 eventId, UInt32 payload, Bool waitClear);
 
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

C synopsis target-domain
Void NotifyDriverMbx_unregisterEvent(NotifyDriverMbx_Handle handle, UInt32 eventId);
 
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

C synopsis target-domain
INotifyDriver_Handle NotifyDriverMbx_Handle_upCast(NotifyDriverMbx_Handle handle);
// unconditionally move one level up the inheritance hierarchy
 
NotifyDriverMbx_Handle NotifyDriverMbx_Handle_downCast(INotifyDriver_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins

C synopsis target-domain
Int NotifyDriverMbx_Object_count();
// The number of statically-created instance objects
 
NotifyDriverMbx_Handle NotifyDriverMbx_Object_get(NotifyDriverMbx_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
 
NotifyDriverMbx_Handle NotifyDriverMbx_Object_first();
// The handle of the first dynamically-created instance object, or NULL
 
NotifyDriverMbx_Handle NotifyDriverMbx_Object_next(NotifyDriverMbx_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
 
IHeap_Handle NotifyDriverMbx_Object_heap();
// The heap used to allocate dynamically-created instance objects
 
Types_Label *NotifyDriverMbx_Handle_label(NotifyDriverMbx_Handle handle, Types_Label *buf);
// The label associated with this instance object
 
String NotifyDriverMbx_Handle_name(NotifyDriverMbx_Handle handle);
// The name of this instance object
 
XDCscript usage meta-domain sourced in ti/sdo/ipc/family/ti81xx/NotifyDriverMbx.xdc
var NotifyDriverMbx = xdc.useModule('ti.sdo.ipc.family.ti81xx.NotifyDriverMbx');
module-wide config parameters
        msg: "A_notSupported: [enable/disable]Event not supported by NotifyDriverMbx"
    };
 
per-instance config parameters
    var params = new NotifyDriverMbx.Params// Instance config-params object;
 
 
config NotifyDriverMbx.A_notSupported  // module-wide

Assert raised when trying to use Notify_[enable/disable]Event with NotifyDriverMbx

XDCscript usage meta-domain
NotifyDriverMbx.A_notSupported = Assert.Desc {
    msg: "A_notSupported: [enable/disable]Event not supported by NotifyDriverMbx"
};
 
C SYNOPSIS
 
config NotifyDriverMbx.intVectorId  // module-wide

Interrupt vector ID to be used by the driver

XDCscript usage meta-domain
NotifyDriverMbx.intVectorId = UInt ~1u;
 
DETAILS
This parameter is only used by the DSP core
C SYNOPSIS
 
config NotifyDriverMbx.mailboxBaseAddr  // module-wide

Base address for the Mailbox subsystem

XDCscript usage meta-domain
NotifyDriverMbx.mailboxBaseAddr = UInt32 0x480C8000;
 
C SYNOPSIS
 
metaonly config NotifyDriverMbx.common$  // module-wide

Common module configuration parameters

XDCscript usage meta-domain
NotifyDriverMbx.common$ = Types.Common$ undefined;
 
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.
 
metaonly config NotifyDriverMbx.rovViewInfo  // module-wide
XDCscript usage meta-domain
NotifyDriverMbx.rovViewInfo = ViewInfo.Instance ViewInfo.create;
 
Instance Config Parameters

XDCscript usage meta-domain
var params = new NotifyDriverMbx.Params;
// Instance config-params object
    params.remoteProcId = UInt16 MultiProc.INVALIDID;
    // The MultiProc ID corresponding to the remote processor
 
config NotifyDriverMbx.remoteProcId  // instance

The MultiProc ID corresponding to the remote processor

XDCscript usage meta-domain
var params = new NotifyDriverMbx.Params;
  ...
params.remoteProcId = UInt16 MultiProc.INVALIDID;
 
C SYNOPSIS
generated on Sat, 11 Feb 2012 00:37:57 GMT