module ti.sdo.ipc.family.vayu.NotifyDriverMbx

A notify driver based on hardware mailbox

This notify driver uses hardware mailboxes to transmit notifications to remote processors. This driver implements the ti.sdo.ipc.interfaces.INotifyDriver interface. [ more ... ]
C synopsis target-domain sourced in ti/sdo/ipc/family/vayu/NotifyDriverMbx.xdc
#include <ti/sdo/ipc/family/vayu/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 
 
DETAILS
This notify driver uses hardware mailboxes to transmit notifications to remote processors. This driver implements the ti.sdo.ipc.interfaces.INotifyDriver interface.
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

C synopsis target-domain
extern const Assert_Id NotifyDriverMbx_A_notSupported;
 
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
    UInt intVectorId;
    // Interrupt vector ID to be used by the driver
    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_Params.intVectorId  // instance

Interrupt vector ID to be used by the driver

C synopsis target-domain
      ...
    UInt intVectorId;
 
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

C synopsis target-domain
      ...
    UInt16 remoteProcId;
 
DETAILS
This is a required parameter, it is not optional.
 
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
 
Configuration settings sourced in ti/sdo/ipc/family/vayu/NotifyDriverMbx.xdc
var NotifyDriverMbx = xdc.useModule('ti.sdo.ipc.family.vayu.NotifyDriverMbx');
module-wide config parameters
        msg: "A_notSupported: [enable/disable]Event not supported"
    };
 
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

Configuration settings
NotifyDriverMbx.A_notSupported = Assert.Desc {
    msg: "A_notSupported: [enable/disable]Event not supported"
};
 
C SYNOPSIS
 
metaonly config NotifyDriverMbx.common$  // module-wide

Common module configuration parameters

Configuration settings
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
Configuration settings
NotifyDriverMbx.rovViewInfo = ViewInfo.Instance ViewInfo.create;
 
Instance Config Parameters

Configuration settings
var params = new NotifyDriverMbx.Params;
// Instance config-params object
    params.intVectorId = UInt ~1u;
    // Interrupt vector ID to be used by the driver
    params.remoteProcId = UInt16 MultiProc.INVALIDID;
    // The MultiProc ID corresponding to the remote processor
 
config NotifyDriverMbx.Params.intVectorId  // instance

Interrupt vector ID to be used by the driver

Configuration settings
var params = new NotifyDriverMbx.Params;
  ...
params.intVectorId = UInt ~1u;
 
DETAILS
This parameter is only used by C66 targets. This is a required parameter, it is not optional.
C SYNOPSIS
 
config NotifyDriverMbx.Params.remoteProcId  // instance

The MultiProc ID corresponding to the remote processor

Configuration settings
var params = new NotifyDriverMbx.Params;
  ...
params.remoteProcId = UInt16 MultiProc.INVALIDID;
 
DETAILS
This is a required parameter, it is not optional.
C SYNOPSIS
generated on Fri, 21 Aug 2015 19:35:59 GMT