[processor-sdk/performance-audio-sr.git] / psdk_cust / ipc_3_43_00_00_eng / docs / cdoc / ti / sdo / ipc / family / ti81xx / NotifyDriverMbx-src.html
diff --git a/psdk_cust/ipc_3_43_00_00_eng/docs/cdoc/ti/sdo/ipc/family/ti81xx/NotifyDriverMbx-src.html b/psdk_cust/ipc_3_43_00_00_eng/docs/cdoc/ti/sdo/ipc/family/ti81xx/NotifyDriverMbx-src.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><title>module ti.sdo.ipc.family.ti81xx.NotifyDriverMbx</title>
-<meta name="googlebot" content="noindex,nofollow">
-<link rel="stylesheet" type="text/css" href="../../../../../src.css"/>
-</head>
-<body>
-<pre class=src>
- 1 <span class="comment">/*
-</span> 2 <span class="comment"> * Copyright (c) 2012-2013, Texas Instruments Incorporated
-</span> 3 <span class="comment"> * All rights reserved.
-</span> 4 <span class="comment"> *
-</span> 5 <span class="comment"> * Redistribution and use in source and binary forms, with or without
-</span> 6 <span class="comment"> * modification, are permitted provided that the following conditions
-</span> 7 <span class="comment"> * are met:
-</span> 8 <span class="comment"> *
-</span> 9 <span class="comment"> * * Redistributions of source code must retain the above copyright
-</span> 10 <span class="comment"> * notice, this list of conditions and the following disclaimer.
-</span> 11 <span class="comment"> *
-</span> 12 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright
-</span> 13 <span class="comment"> * notice, this list of conditions and the following disclaimer in the
-</span> 14 <span class="comment"> * documentation and/or other materials provided with the distribution.
-</span> 15 <span class="comment"> *
-</span> 16 <span class="comment"> * * Neither the name of Texas Instruments Incorporated nor the names of
-</span> 17 <span class="comment"> * its contributors may be used to endorse or promote products derived
-</span> 18 <span class="comment"> * from this software without specific prior written permission.
-</span> 19 <span class="comment"> *
-</span> 20 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-</span> 21 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-</span> 22 <span class="comment"> * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-</span> 23 <span class="comment"> * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-</span> 24 <span class="comment"> * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-</span> 25 <span class="comment"> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-</span> 26 <span class="comment"> * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-</span> 27 <span class="comment"> * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-</span> 28 <span class="comment"> * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-</span> 29 <span class="comment"> * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-</span> 30 <span class="comment"> * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-</span> 31 <span class="comment"> */</span>
- 32 <span class="comment">/*
-</span> 33 <span class="comment"> * ======== NotifyDriverMbx.xdc ================
-</span> 34 <span class="comment"> */</span>
- 35
- 36 import ti.sdo.utils.MultiProc;
- 37 import ti.sdo.ipc.interfaces.INotifyDriver;
- 38 import ti.sdo.ipc.Notify;
- 39
- 40 import ti.sysbios.hal.Hwi;
- 41
- 42 import xdc.runtime.Assert;
- 43 import xdc.rov.ViewInfo;
- 44
- 45 <span class="xdoc">/*!
-</span> 46 <span class="xdoc"> * ======== NotifyDriverMbx ========
-</span> 47 <span class="xdoc"> * A TI81xx hardware mailbox based driver for the Notify Module.
-</span> 48 <span class="xdoc"> *
-</span> 49 <span class="xdoc"> * This is a {<b>@link</b> ti.sdo.ipc.Notify} driver that uses hardware mailboxes to
-</span> 50 <span class="xdoc"> * transmit notifications to remote processors.
-</span> 51 <span class="xdoc"> *
-</span> 52 <span class="xdoc"> * Unlike the Notify drivers available in the {<b>@link</b> ti.sdo.ipc.notifyDrivers}
-</span> 53 <span class="xdoc"> * package, this driver is not generic and will only work with the TI81xx
-</span> 54 <span class="xdoc"> * family of devices.
-</span> 55 <span class="xdoc"> *
-</span> 56 <span class="xdoc"> * The driver uses no shared memory since the event IDs and payloads that
-</span> 57 <span class="xdoc"> * comprise notifications are transmitted via the hardware mailbox FIFO. The
-</span> 58 <span class="xdoc"> * FIFO can hold up to 4 mailbox messages. The number of notification that can
-</span> 59 <span class="xdoc"> * be stored in the FIFO depends on the sizes of the payloads being sent via
-</span> 60 <span class="xdoc"> * Notify_sendEvent. If the payload is less than 0x7FFFFFF, then a single
-</span> 61 <span class="xdoc"> * message will be sent per notification. Otherwise, if the payload is greater
-</span> 62 <span class="xdoc"> * than or equal to 0x7FFFFFF, two mailbox messages are needed to send the
-</span> 63 <span class="xdoc"> * notification.
-</span> 64 <span class="xdoc"> *
-</span> 65 <span class="xdoc"> * The behavior of Notify_sendEvent when the FIFO is full depends on the value
-</span> 66 <span class="xdoc"> * of the 'waitClear' argument to the function. If 'waitClear' is TRUE, then
-</span> 67 <span class="xdoc"> * Notify_sendEvent will spin waiting for enough room in the FIFO for the
-</span> 68 <span class="xdoc"> * notification before actually sending it. If 'waitClear' is FALSE, then
-</span> 69 <span class="xdoc"> * Notify_sendEvent will return Notify_E_FAIL if there isn't enough room in the
-</span> 70 <span class="xdoc"> * FIFO to store the notification.
-</span> 71 <span class="xdoc"> *
-</span> 72 <span class="xdoc"> * The Notify_[enable/disable]Event APIs are not supported by this driver.
-</span> 73 <span class="xdoc"> *
-</span> 74 <span class="xdoc"> */</span>
- 75 @InstanceFinalize
- 76 @ModuleStartup
- 77 <span class=key>module</span> NotifyDriverMbx <span class=key>inherits</span> ti.sdo.ipc.interfaces.INotifyDriver
- 78 {
- 79 <span class="xdoc">/*! <b>@_nodoc</b> */</span>
- 80 <span class=key>metaonly</span> <span class=key>struct</span> BasicView {
- 81 String remoteProcName;
- 82 UInt numIncomingPending;
- 83 UInt numOutgoingPending;
- 84 String incomingIntStatus;
- 85 String outgoingIntStatus;
- 86 String registeredEvents;
- 87 }
- 88
- 89 <span class="xdoc">/*!
-</span> 90 <span class="xdoc"> * ======== rovViewInfo ========
-</span> 91 <span class="xdoc"> */</span>
- 92 @Facet
- 93 <span class=key>metaonly</span> <span class=key>config</span> ViewInfo.Instance rovViewInfo =
- 94 ViewInfo.create({
- 95 viewMap: [
- 96 [<span class="string">'Basic'</span>,
- 97 {
- 98 type: ViewInfo.INSTANCE,
- 99 viewInitFxn: <span class="string">'viewInitBasic'</span>,
- 100 structName: <span class="string">'BasicView'</span>
- 101 }
- 102 ],
- 103 ]
- 104 });
- 105
- 106 <span class="xdoc">/*!
-</span> 107 <span class="xdoc"> * Assert raised when trying to use Notify_[enable/disable]Event with
-</span> 108 <span class="xdoc"> * NotifyDriverMbx
-</span> 109 <span class="xdoc"> */</span>
- 110 <span class=key>config</span> Assert.Id A_notSupported =
- 111 {msg: <span class="string">"A_notSupported: [enable/disable]Event not supported by NotifyDriverMbx"</span>};
- 112
- 113
- 114 <span class="xdoc">/*! Base address for the Mailbox subsystem */</span>
- 115 <span class=key>config</span> UInt32 mailboxBaseAddr = 0x480C8000;
- 116
- 117 <span class="xdoc">/*!
-</span> 118 <span class="xdoc"> * ======== intVectorId ========
-</span> 119 <span class="xdoc"> * Interrupt vector ID to be used by the driver.
-</span> 120 <span class="xdoc"> *
-</span> 121 <span class="xdoc"> * This parameter is only used by the DSP core
-</span> 122 <span class="xdoc"> */</span>
- 123 <span class=key>config</span> UInt intVectorId = ~1u;
- 124
- 125 <span class=key>instance</span>:
- 126
- 127 <span class="xdoc">/*!
-</span> 128 <span class="xdoc"> * ======== remoteProcId ========
-</span> 129 <span class="xdoc"> * The MultiProc ID corresponding to the remote processor
-</span> 130 <span class="xdoc"> */</span>
- 131 <span class=key>config</span> UInt16 remoteProcId = MultiProc.INVALIDID;
- 132
- 133 <span class=key>internal</span>:
- 134
- 135 <span class=key>config</span> UInt16 dspProcId = MultiProc.INVALIDID;
- 136 <span class=key>config</span> UInt16 hostProcId = MultiProc.INVALIDID;
- 137 <span class=key>config</span> UInt16 videoProcId = MultiProc.INVALIDID;
- 138 <span class=key>config</span> UInt16 vpssProcId = MultiProc.INVALIDID;
- 139
- 140 <span class="xdoc">/*!
-</span> 141 <span class="xdoc"> * Plugs the interrupt and executes the callback functions according
-</span> 142 <span class="xdoc"> * to event priority
-</span> 143 <span class="xdoc"> */</span>
- 144 Void isr(UArg arg);
- 145
- 146 <span class="xdoc">/*! Instance state structure */</span>
- 147 <span class=key>struct</span> Instance_State {
- 148 Bits32 evtRegMask; <span class="comment">/* local event register mask */</span>
- 149 Notify.Handle notifyHandle; <span class="comment">/* Handle to front-end object */</span>
- 150 UInt16 remoteProcId; <span class="comment">/* Remote MultiProc id */</span>
- 151 }
- 152
- 153 <span class=key>struct</span> Module_State {
- 154 NotifyDriverMbx.Handle drvHandles[4];
- 155 Hwi.Object hwi;
- 156 };
- 157 }
-</pre>
-</body></html>