xref: /freebsd/sys/dev/pms/RefTisa/sallsdk/api/saapi.h (revision 2ff63af9b88c7413b7d71715b5532625752a248e)
1*4e1bc9a0SAchim Leubner /*******************************************************************************
2*4e1bc9a0SAchim Leubner *Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved.
3*4e1bc9a0SAchim Leubner *
4*4e1bc9a0SAchim Leubner *Redistribution and use in source and binary forms, with or without modification, are permitted provided
5*4e1bc9a0SAchim Leubner *that the following conditions are met:
6*4e1bc9a0SAchim Leubner *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
7*4e1bc9a0SAchim Leubner *following disclaimer.
8*4e1bc9a0SAchim Leubner *2. Redistributions in binary form must reproduce the above copyright notice,
9*4e1bc9a0SAchim Leubner *this list of conditions and the following disclaimer in the documentation and/or other materials provided
10*4e1bc9a0SAchim Leubner *with the distribution.
11*4e1bc9a0SAchim Leubner *
12*4e1bc9a0SAchim Leubner *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
13*4e1bc9a0SAchim Leubner *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14*4e1bc9a0SAchim Leubner *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15*4e1bc9a0SAchim Leubner *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16*4e1bc9a0SAchim Leubner *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
17*4e1bc9a0SAchim Leubner *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18*4e1bc9a0SAchim Leubner *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
19*4e1bc9a0SAchim Leubner *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
20*4e1bc9a0SAchim Leubner *
21*4e1bc9a0SAchim Leubner *
22*4e1bc9a0SAchim Leubner ********************************************************************************/
23*4e1bc9a0SAchim Leubner /*******************************************************************************/
24*4e1bc9a0SAchim Leubner /*! \file saapi.h
25*4e1bc9a0SAchim Leubner  *  \brief The file defines the declaration of tSDK APIs
26*4e1bc9a0SAchim Leubner  *
27*4e1bc9a0SAchim Leubner  *
28*4e1bc9a0SAchim Leubner  *
29*4e1bc9a0SAchim Leubner  *
30*4e1bc9a0SAchim Leubner  */
31*4e1bc9a0SAchim Leubner /******************************************************************************/
32*4e1bc9a0SAchim Leubner 
33*4e1bc9a0SAchim Leubner #ifndef  __SSDKAPI_H__
34*4e1bc9a0SAchim Leubner #define __SSDKAPI_H__
35*4e1bc9a0SAchim Leubner 
36*4e1bc9a0SAchim Leubner /********************************************************************************
37*4e1bc9a0SAchim Leubner  *                             SA LL Function Declaration                       *
38*4e1bc9a0SAchim Leubner  ********************************************************************************/
39*4e1bc9a0SAchim Leubner 
40*4e1bc9a0SAchim Leubner /***************************************************************************
41*4e1bc9a0SAchim Leubner  * Definition of interrupt related functions start                         *
42*4e1bc9a0SAchim Leubner  ***************************************************************************/
43*4e1bc9a0SAchim Leubner 
44*4e1bc9a0SAchim Leubner 
45*4e1bc9a0SAchim Leubner GLOBAL bit32 FORCEINLINE saDelayedInterruptHandler(
46*4e1bc9a0SAchim Leubner                               agsaRoot_t  *agRoot,
47*4e1bc9a0SAchim Leubner                               bit32       interruptVectorIndex,
48*4e1bc9a0SAchim Leubner                               bit32       count
49*4e1bc9a0SAchim Leubner                               );
50*4e1bc9a0SAchim Leubner 
51*4e1bc9a0SAchim Leubner GLOBAL bit32 FORCEINLINE saInterruptHandler(
52*4e1bc9a0SAchim Leubner                               agsaRoot_t  *agRoot,
53*4e1bc9a0SAchim Leubner                               bit32       interruptVectorIndex
54*4e1bc9a0SAchim Leubner                               );
55*4e1bc9a0SAchim Leubner 
56*4e1bc9a0SAchim Leubner GLOBAL void saSystemInterruptsActive(
57*4e1bc9a0SAchim Leubner                               agsaRoot_t  *agRoot,
58*4e1bc9a0SAchim Leubner                               agBOOLEAN     sysIntsActive
59*4e1bc9a0SAchim Leubner                               );
60*4e1bc9a0SAchim Leubner 
61*4e1bc9a0SAchim Leubner GLOBAL FORCEINLINE void saSystemInterruptsEnable(
62*4e1bc9a0SAchim Leubner                               agsaRoot_t  *agRoot,
63*4e1bc9a0SAchim Leubner                               bit32       interruptVectorIndex
64*4e1bc9a0SAchim Leubner                               );
65*4e1bc9a0SAchim Leubner /***************************************************************************
66*4e1bc9a0SAchim Leubner  * Definition of interrupt related functions end                           *
67*4e1bc9a0SAchim Leubner  ***************************************************************************/
68*4e1bc9a0SAchim Leubner 
69*4e1bc9a0SAchim Leubner 
70*4e1bc9a0SAchim Leubner /***************************************************************************
71*4e1bc9a0SAchim Leubner  * Definition of timer related functions start                             *
72*4e1bc9a0SAchim Leubner  ***************************************************************************/
73*4e1bc9a0SAchim Leubner GLOBAL void saTimerTick(agsaRoot_t  *agRoot);
74*4e1bc9a0SAchim Leubner /***************************************************************************
75*4e1bc9a0SAchim Leubner  * Definition of timer related functions end                               *
76*4e1bc9a0SAchim Leubner  ***************************************************************************/
77*4e1bc9a0SAchim Leubner 
78*4e1bc9a0SAchim Leubner /***************************************************************************
79*4e1bc9a0SAchim Leubner  * Definition of initialization related functions start                    *
80*4e1bc9a0SAchim Leubner  ***************************************************************************/
81*4e1bc9a0SAchim Leubner GLOBAL void saGetRequirements(
82*4e1bc9a0SAchim Leubner                               agsaRoot_t              *agRoot,
83*4e1bc9a0SAchim Leubner                               agsaSwConfig_t          *swConfig,
84*4e1bc9a0SAchim Leubner                               agsaMemoryRequirement_t *memoryRequirement,
85*4e1bc9a0SAchim Leubner                               bit32                   *usecsPerTick,
86*4e1bc9a0SAchim Leubner                               bit32                   *maxNumLocks
87*4e1bc9a0SAchim Leubner                               );
88*4e1bc9a0SAchim Leubner 
89*4e1bc9a0SAchim Leubner GLOBAL bit32 saInitialize(
90*4e1bc9a0SAchim Leubner                           agsaRoot_t                  *agRoot,
91*4e1bc9a0SAchim Leubner                           agsaMemoryRequirement_t     *memoryAllocated,
92*4e1bc9a0SAchim Leubner                           agsaHwConfig_t              *hwConfig,
93*4e1bc9a0SAchim Leubner                           agsaSwConfig_t              *swConfig,
94*4e1bc9a0SAchim Leubner                           bit32                       usecsPerTick
95*4e1bc9a0SAchim Leubner                           );
96*4e1bc9a0SAchim Leubner /***************************************************************************
97*4e1bc9a0SAchim Leubner  * Definition of initialization related functions end                      *
98*4e1bc9a0SAchim Leubner  ***************************************************************************/
99*4e1bc9a0SAchim Leubner 
100*4e1bc9a0SAchim Leubner /***************************************************************************
101*4e1bc9a0SAchim Leubner  * Definition of hardware related functions start                          *
102*4e1bc9a0SAchim Leubner  ***************************************************************************/
103*4e1bc9a0SAchim Leubner GLOBAL void saHwReset(
104*4e1bc9a0SAchim Leubner                       agsaRoot_t  *agRoot,
105*4e1bc9a0SAchim Leubner                       bit32       resetType,
106*4e1bc9a0SAchim Leubner                       bit32       resetParm
107*4e1bc9a0SAchim Leubner                       );
108*4e1bc9a0SAchim Leubner 
109*4e1bc9a0SAchim Leubner GLOBAL void saHwShutdown(agsaRoot_t *agRoot);
110*4e1bc9a0SAchim Leubner 
111*4e1bc9a0SAchim Leubner /***************************************************************************
112*4e1bc9a0SAchim Leubner  * Definition of hardware related functions end                            *
113*4e1bc9a0SAchim Leubner  ***************************************************************************/
114*4e1bc9a0SAchim Leubner 
115*4e1bc9a0SAchim Leubner /***************************************************************************
116*4e1bc9a0SAchim Leubner  * Definition of phy related functions start                               *
117*4e1bc9a0SAchim Leubner  ***************************************************************************/
118*4e1bc9a0SAchim Leubner GLOBAL bit32 saPhyStart(
119*4e1bc9a0SAchim Leubner                         agsaRoot_t          *agRoot,
120*4e1bc9a0SAchim Leubner                         agsaContext_t       *agContext,
121*4e1bc9a0SAchim Leubner                         bit32               queueNum,
122*4e1bc9a0SAchim Leubner                         bit32               phyId,
123*4e1bc9a0SAchim Leubner                         agsaPhyConfig_t     *agPhyConfig,
124*4e1bc9a0SAchim Leubner                         agsaSASIdentify_t   *agSASIdentify
125*4e1bc9a0SAchim Leubner                         );
126*4e1bc9a0SAchim Leubner 
127*4e1bc9a0SAchim Leubner GLOBAL bit32 saPhyStop(
128*4e1bc9a0SAchim Leubner                       agsaRoot_t            *agRoot,
129*4e1bc9a0SAchim Leubner                       agsaContext_t         *agContext,
130*4e1bc9a0SAchim Leubner                       bit32                 queueNum,
131*4e1bc9a0SAchim Leubner                       bit32                 phyId
132*4e1bc9a0SAchim Leubner                       );
133*4e1bc9a0SAchim Leubner 
134*4e1bc9a0SAchim Leubner 
135*4e1bc9a0SAchim Leubner GLOBAL bit32 saLocalPhyControl(
136*4e1bc9a0SAchim Leubner                       agsaRoot_t             *agRoot,
137*4e1bc9a0SAchim Leubner                       agsaContext_t          *agContext,
138*4e1bc9a0SAchim Leubner                       bit32                   queueNum,
139*4e1bc9a0SAchim Leubner                       bit32                   phyId,
140*4e1bc9a0SAchim Leubner                       bit32                   phyOperation,
141*4e1bc9a0SAchim Leubner                       ossaLocalPhyControlCB_t agCB
142*4e1bc9a0SAchim Leubner                       );
143*4e1bc9a0SAchim Leubner 
144*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetPhyProfile(
145*4e1bc9a0SAchim Leubner                       agsaRoot_t               *agRoot,
146*4e1bc9a0SAchim Leubner                       agsaContext_t            *agContext,
147*4e1bc9a0SAchim Leubner                       bit32                    queueNum,
148*4e1bc9a0SAchim Leubner                       bit32                    ppc,
149*4e1bc9a0SAchim Leubner                       bit32                    phyID
150*4e1bc9a0SAchim Leubner                       );
151*4e1bc9a0SAchim Leubner 
152*4e1bc9a0SAchim Leubner GLOBAL bit32 saSetPhyProfile (
153*4e1bc9a0SAchim Leubner                       agsaRoot_t               *agRoot,
154*4e1bc9a0SAchim Leubner                       agsaContext_t            *agContext,
155*4e1bc9a0SAchim Leubner                       bit32                    queueNum,
156*4e1bc9a0SAchim Leubner                       bit32                    ppc,
157*4e1bc9a0SAchim Leubner                       bit32                    length,
158*4e1bc9a0SAchim Leubner                       void                     *buffer,
159*4e1bc9a0SAchim Leubner                       bit32                    phyID
160*4e1bc9a0SAchim Leubner                       );
161*4e1bc9a0SAchim Leubner 
162*4e1bc9a0SAchim Leubner GLOBAL bit32 saHwEventAck(
163*4e1bc9a0SAchim Leubner                       agsaRoot_t        *agRoot,
164*4e1bc9a0SAchim Leubner                       agsaContext_t     *agContext,
165*4e1bc9a0SAchim Leubner                       bit32              queueNum,
166*4e1bc9a0SAchim Leubner                       agsaEventSource_t *eventSource,
167*4e1bc9a0SAchim Leubner                       bit32              param0,
168*4e1bc9a0SAchim Leubner                       bit32              param1
169*4e1bc9a0SAchim Leubner                       );
170*4e1bc9a0SAchim Leubner 
171*4e1bc9a0SAchim Leubner 
172*4e1bc9a0SAchim Leubner /***************************************************************************
173*4e1bc9a0SAchim Leubner  * Definition of phy related functions end                                 *
174*4e1bc9a0SAchim Leubner  ***************************************************************************/
175*4e1bc9a0SAchim Leubner 
176*4e1bc9a0SAchim Leubner /***************************************************************************
177*4e1bc9a0SAchim Leubner  * Definition of discovery related functions start                         *
178*4e1bc9a0SAchim Leubner  ***************************************************************************/
179*4e1bc9a0SAchim Leubner GLOBAL bit32 saDiscover(
180*4e1bc9a0SAchim Leubner                         agsaRoot_t          *agRoot,
181*4e1bc9a0SAchim Leubner                         agsaPortContext_t   *agPortContext,
182*4e1bc9a0SAchim Leubner                         bit32               type,
183*4e1bc9a0SAchim Leubner                         bit32               option
184*4e1bc9a0SAchim Leubner                         );
185*4e1bc9a0SAchim Leubner /***************************************************************************
186*4e1bc9a0SAchim Leubner  * Definition of discovery related functions end                           *
187*4e1bc9a0SAchim Leubner  ***************************************************************************/
188*4e1bc9a0SAchim Leubner 
189*4e1bc9a0SAchim Leubner /***************************************************************************
190*4e1bc9a0SAchim Leubner  * Definition of frame related functions start                             *
191*4e1bc9a0SAchim Leubner  ***************************************************************************/
192*4e1bc9a0SAchim Leubner GLOBAL bit32 saFrameReadBit32(
193*4e1bc9a0SAchim Leubner                         agsaRoot_t          *agRoot,
194*4e1bc9a0SAchim Leubner                         agsaFrameHandle_t   agFrame,
195*4e1bc9a0SAchim Leubner                         bit32               frameOffset
196*4e1bc9a0SAchim Leubner                         );
197*4e1bc9a0SAchim Leubner 
198*4e1bc9a0SAchim Leubner GLOBAL void saFrameReadBlock(
199*4e1bc9a0SAchim Leubner                         agsaRoot_t          *agRoot,
200*4e1bc9a0SAchim Leubner                         agsaFrameHandle_t   agFrame,
201*4e1bc9a0SAchim Leubner                         bit32               frameOffset,
202*4e1bc9a0SAchim Leubner                         void                *frameBuffer,
203*4e1bc9a0SAchim Leubner                         bit32               frameBufLen
204*4e1bc9a0SAchim Leubner                         );
205*4e1bc9a0SAchim Leubner /***************************************************************************
206*4e1bc9a0SAchim Leubner  * Definition of frame related functions end                               *
207*4e1bc9a0SAchim Leubner  ***************************************************************************/
208*4e1bc9a0SAchim Leubner 
209*4e1bc9a0SAchim Leubner /***************************************************************************
210*4e1bc9a0SAchim Leubner  * Definition of SATA related functions start                              *
211*4e1bc9a0SAchim Leubner  ***************************************************************************/
212*4e1bc9a0SAchim Leubner GLOBAL bit32 saSATAStart(
213*4e1bc9a0SAchim Leubner                         agsaRoot_t                  *agRoot,
214*4e1bc9a0SAchim Leubner                         agsaIORequest_t             *agIORequest,
215*4e1bc9a0SAchim Leubner                         bit32                       queueNum,
216*4e1bc9a0SAchim Leubner                         agsaDevHandle_t             *agDevHandle,
217*4e1bc9a0SAchim Leubner                         bit32                       agRequestType,
218*4e1bc9a0SAchim Leubner                         agsaSATAInitiatorRequest_t  *agSATAReq,
219*4e1bc9a0SAchim Leubner                         bit8                        agTag,
220*4e1bc9a0SAchim Leubner                         ossaSATACompletedCB_t       agCB
221*4e1bc9a0SAchim Leubner                         );
222*4e1bc9a0SAchim Leubner 
223*4e1bc9a0SAchim Leubner GLOBAL bit32 saSATAAbort(
224*4e1bc9a0SAchim Leubner                         agsaRoot_t                  *agRoot,
225*4e1bc9a0SAchim Leubner                         agsaIORequest_t             *agIORequest,
226*4e1bc9a0SAchim Leubner                         bit32                       queueNum,
227*4e1bc9a0SAchim Leubner                         agsaDevHandle_t             *agDevHandle,
228*4e1bc9a0SAchim Leubner                         bit32                       flag,
229*4e1bc9a0SAchim Leubner                         void                        *abortParam,
230*4e1bc9a0SAchim Leubner                         ossaGenericAbortCB_t        agCB
231*4e1bc9a0SAchim Leubner                         );
232*4e1bc9a0SAchim Leubner 
233*4e1bc9a0SAchim Leubner /***************************************************************************
234*4e1bc9a0SAchim Leubner  * Definition of SATA related functions end                                *
235*4e1bc9a0SAchim Leubner  ***************************************************************************/
236*4e1bc9a0SAchim Leubner 
237*4e1bc9a0SAchim Leubner /***************************************************************************
238*4e1bc9a0SAchim Leubner  * Definition of SAS related functions start                               *
239*4e1bc9a0SAchim Leubner  ***************************************************************************/
240*4e1bc9a0SAchim Leubner 
241*4e1bc9a0SAchim Leubner GLOBAL bit32 saSendSMPIoctl(
242*4e1bc9a0SAchim Leubner 						agsaRoot_t                *agRoot,
243*4e1bc9a0SAchim Leubner 						agsaDevHandle_t           *agDevHandle,
244*4e1bc9a0SAchim Leubner 						bit32                      queueNum,
245*4e1bc9a0SAchim Leubner 						agsaSMPFrame_t            *pSMPFrame,
246*4e1bc9a0SAchim Leubner 						ossaSMPCompletedCB_t       agCB
247*4e1bc9a0SAchim Leubner 						);
248*4e1bc9a0SAchim Leubner 
249*4e1bc9a0SAchim Leubner GLOBAL bit32 saSMPStart(
250*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
251*4e1bc9a0SAchim Leubner                         agsaIORequest_t           *agIORequest,
252*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
253*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle,
254*4e1bc9a0SAchim Leubner                         bit32                     agRequestType,
255*4e1bc9a0SAchim Leubner                         agsaSASRequestBody_t      *agRequestBody,
256*4e1bc9a0SAchim Leubner                         ossaSMPCompletedCB_t      agCB
257*4e1bc9a0SAchim Leubner                         );
258*4e1bc9a0SAchim Leubner 
259*4e1bc9a0SAchim Leubner GLOBAL bit32 saSMPAbort(
260*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
261*4e1bc9a0SAchim Leubner                         agsaIORequest_t           *agIORequest,
262*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
263*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle,
264*4e1bc9a0SAchim Leubner                         bit32                     flag,
265*4e1bc9a0SAchim Leubner                         void                      *abortParam,
266*4e1bc9a0SAchim Leubner                         ossaGenericAbortCB_t      agCB
267*4e1bc9a0SAchim Leubner                         );
268*4e1bc9a0SAchim Leubner 
269*4e1bc9a0SAchim Leubner GLOBAL bit32 saSSPStart(
270*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
271*4e1bc9a0SAchim Leubner                         agsaIORequest_t           *agIORequest,
272*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
273*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle,
274*4e1bc9a0SAchim Leubner                         bit32                     agRequestType,
275*4e1bc9a0SAchim Leubner                         agsaSASRequestBody_t      *agRequestBody,
276*4e1bc9a0SAchim Leubner                         agsaIORequest_t           *agTMRequest,
277*4e1bc9a0SAchim Leubner                         ossaSSPCompletedCB_t      agCB
278*4e1bc9a0SAchim Leubner                         );
279*4e1bc9a0SAchim Leubner 
280*4e1bc9a0SAchim Leubner #ifdef FAST_IO_TEST
281*4e1bc9a0SAchim Leubner GLOBAL void *saFastSSPPrepare(
282*4e1bc9a0SAchim Leubner                         void                 *ioHandle,
283*4e1bc9a0SAchim Leubner                         agsaFastCommand_t    *fc,
284*4e1bc9a0SAchim Leubner                         ossaSSPCompletedCB_t cb,
285*4e1bc9a0SAchim Leubner                         void                 *cbArg);
286*4e1bc9a0SAchim Leubner 
287*4e1bc9a0SAchim Leubner GLOBAL bit32 saFastSSPSend(void    *ioHandle);
288*4e1bc9a0SAchim Leubner GLOBAL bit32 saFastSSPCancel(void  *ioHandle);
289*4e1bc9a0SAchim Leubner #endif
290*4e1bc9a0SAchim Leubner 
291*4e1bc9a0SAchim Leubner GLOBAL bit32 saSSPAbort(
292*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
293*4e1bc9a0SAchim Leubner                         agsaIORequest_t           *agIORequest,
294*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
295*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle,
296*4e1bc9a0SAchim Leubner                         bit32                     flag,
297*4e1bc9a0SAchim Leubner                         void                      *abortParam,
298*4e1bc9a0SAchim Leubner                         ossaGenericAbortCB_t      agCB
299*4e1bc9a0SAchim Leubner                         );
300*4e1bc9a0SAchim Leubner 
301*4e1bc9a0SAchim Leubner GLOBAL void saGetDifErrorDetails(
302*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
303*4e1bc9a0SAchim Leubner                         agsaIORequest_t           *agIORequest,
304*4e1bc9a0SAchim Leubner                         agsaDifDetails_t          *difDetails
305*4e1bc9a0SAchim Leubner                         );
306*4e1bc9a0SAchim Leubner 
307*4e1bc9a0SAchim Leubner GLOBAL bit32 saRegisterEventCallback(
308*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
309*4e1bc9a0SAchim Leubner                         bit32                     eventSourceType,
310*4e1bc9a0SAchim Leubner                         ossaGenericCB_t           callbackPtr
311*4e1bc9a0SAchim Leubner                         );
312*4e1bc9a0SAchim Leubner 
313*4e1bc9a0SAchim Leubner /***************************************************************************
314*4e1bc9a0SAchim Leubner  * Definition of SAS related functions end                                 *
315*4e1bc9a0SAchim Leubner  ***************************************************************************/
316*4e1bc9a0SAchim Leubner 
317*4e1bc9a0SAchim Leubner /***************************************************************************
318*4e1bc9a0SAchim Leubner  * Definition of Device related functions start                            *
319*4e1bc9a0SAchim Leubner  ***************************************************************************/
320*4e1bc9a0SAchim Leubner GLOBAL bit32 saRegisterNewDevice(
321*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
322*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
323*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
324*4e1bc9a0SAchim Leubner                         agsaDeviceInfo_t          *agDeviceInfo,
325*4e1bc9a0SAchim Leubner                         agsaPortContext_t         *agPortContext,
326*4e1bc9a0SAchim Leubner                         bit16                     hostAssignedDeviceId
327*4e1bc9a0SAchim Leubner                         );
328*4e1bc9a0SAchim Leubner 
329*4e1bc9a0SAchim Leubner GLOBAL bit32 saDeregisterDeviceHandle(
330*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
331*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
332*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle,
333*4e1bc9a0SAchim Leubner                         bit32                     queueNum
334*4e1bc9a0SAchim Leubner                         );
335*4e1bc9a0SAchim Leubner 
336*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetDeviceHandles(
337*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
338*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
339*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
340*4e1bc9a0SAchim Leubner                         agsaPortContext_t         *agPortContext,
341*4e1bc9a0SAchim Leubner                         bit32                     flags,
342*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDev[],
343*4e1bc9a0SAchim Leubner                         bit32                     skipCount,
344*4e1bc9a0SAchim Leubner                         bit32                     maxDevs
345*4e1bc9a0SAchim Leubner                         );
346*4e1bc9a0SAchim Leubner 
347*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetDeviceInfo(
348*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
349*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
350*4e1bc9a0SAchim Leubner                         bit32                     option,
351*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
352*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle
353*4e1bc9a0SAchim Leubner                         );
354*4e1bc9a0SAchim Leubner 
355*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetDeviceState(
356*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
357*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
358*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
359*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle
360*4e1bc9a0SAchim Leubner                         );
361*4e1bc9a0SAchim Leubner 
362*4e1bc9a0SAchim Leubner GLOBAL bit32 saSetDeviceInfo(
363*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
364*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
365*4e1bc9a0SAchim Leubner                         bit32                     queueNum ,
366*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle,
367*4e1bc9a0SAchim Leubner                         bit32                     option,
368*4e1bc9a0SAchim Leubner                         bit32                     param,
369*4e1bc9a0SAchim Leubner                         ossaSetDeviceInfoCB_t   agCB
370*4e1bc9a0SAchim Leubner                         );
371*4e1bc9a0SAchim Leubner 
372*4e1bc9a0SAchim Leubner GLOBAL bit32 saSetDeviceState(
373*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
374*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
375*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
376*4e1bc9a0SAchim Leubner                         agsaDevHandle_t           *agDevHandle,
377*4e1bc9a0SAchim Leubner                         bit32                     newDeviceState
378*4e1bc9a0SAchim Leubner                         );
379*4e1bc9a0SAchim Leubner 
380*4e1bc9a0SAchim Leubner /***************************************************************************
381*4e1bc9a0SAchim Leubner  * Definition of Device related functions end                              *
382*4e1bc9a0SAchim Leubner  ***************************************************************************/
383*4e1bc9a0SAchim Leubner 
384*4e1bc9a0SAchim Leubner /***************************************************************************
385*4e1bc9a0SAchim Leubner  * Definition of Misc related functions start                              *
386*4e1bc9a0SAchim Leubner  ***************************************************************************/
387*4e1bc9a0SAchim Leubner GLOBAL bit32 saFwFlashUpdate(
388*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
389*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
390*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
391*4e1bc9a0SAchim Leubner                         agsaUpdateFwFlash_t       *flashUpdateInfo
392*4e1bc9a0SAchim Leubner                         );
393*4e1bc9a0SAchim Leubner 
394*4e1bc9a0SAchim Leubner GLOBAL bit32 saFlashExtExecute (
395*4e1bc9a0SAchim Leubner                         agsaRoot_t            *agRoot,
396*4e1bc9a0SAchim Leubner                         agsaContext_t         *agContext,
397*4e1bc9a0SAchim Leubner                         bit32                 queueNum,
398*4e1bc9a0SAchim Leubner                         agsaFlashExtExecute_t *agFlashExtExe
399*4e1bc9a0SAchim Leubner                         );
400*4e1bc9a0SAchim Leubner 
401*4e1bc9a0SAchim Leubner #ifdef SPC_ENABLE_PROFILE
402*4e1bc9a0SAchim Leubner GLOBAL bit32 saFwProfile(
403*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
404*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
405*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
406*4e1bc9a0SAchim Leubner                         agsaFwProfile_t           *fwProfileInfo
407*4e1bc9a0SAchim Leubner                         );
408*4e1bc9a0SAchim Leubner #endif
409*4e1bc9a0SAchim Leubner 
410*4e1bc9a0SAchim Leubner GLOBAL bit32 saEchoCommand(
411*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
412*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
413*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
414*4e1bc9a0SAchim Leubner                         void                      *echoPayload
415*4e1bc9a0SAchim Leubner                         );
416*4e1bc9a0SAchim Leubner 
417*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetControllerInfo(
418*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
419*4e1bc9a0SAchim Leubner                         agsaControllerInfo_t      *controllerInfo
420*4e1bc9a0SAchim Leubner                         );
421*4e1bc9a0SAchim Leubner 
422*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetControllerStatus(
423*4e1bc9a0SAchim Leubner                           agsaRoot_t              *agRoot,
424*4e1bc9a0SAchim Leubner                           agsaControllerStatus_t  *controllerStatus
425*4e1bc9a0SAchim Leubner                         );
426*4e1bc9a0SAchim Leubner 
427*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetControllerEventLogInfo(
428*4e1bc9a0SAchim Leubner                         agsaRoot_t                 *agRoot,
429*4e1bc9a0SAchim Leubner                           agsaControllerEventLog_t *eventLogInfo
430*4e1bc9a0SAchim Leubner                         );
431*4e1bc9a0SAchim Leubner 
432*4e1bc9a0SAchim Leubner GLOBAL bit32 saGpioEventSetup(
433*4e1bc9a0SAchim Leubner                         agsaRoot_t                 *agRoot,
434*4e1bc9a0SAchim Leubner                         agsaContext_t              *agContext,
435*4e1bc9a0SAchim Leubner                         bit32                      queueNum,
436*4e1bc9a0SAchim Leubner                         agsaGpioEventSetupInfo_t   *gpioEventSetupInfo
437*4e1bc9a0SAchim Leubner                         );
438*4e1bc9a0SAchim Leubner 
439*4e1bc9a0SAchim Leubner GLOBAL bit32 saGpioPinSetup(
440*4e1bc9a0SAchim Leubner                         agsaRoot_t                 *agRoot,
441*4e1bc9a0SAchim Leubner                         agsaContext_t              *agContext,
442*4e1bc9a0SAchim Leubner                         bit32                      queueNum,
443*4e1bc9a0SAchim Leubner                         agsaGpioPinSetupInfo_t     *gpioPinSetupInfo
444*4e1bc9a0SAchim Leubner                         );
445*4e1bc9a0SAchim Leubner 
446*4e1bc9a0SAchim Leubner GLOBAL bit32 saGpioRead(
447*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
448*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
449*4e1bc9a0SAchim Leubner                         bit32                     queueNum
450*4e1bc9a0SAchim Leubner                         );
451*4e1bc9a0SAchim Leubner 
452*4e1bc9a0SAchim Leubner GLOBAL bit32 saGpioWrite(
453*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
454*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
455*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
456*4e1bc9a0SAchim Leubner                         bit32                     gpioWriteMask,
457*4e1bc9a0SAchim Leubner                         bit32                     gpioWriteValue
458*4e1bc9a0SAchim Leubner                         );
459*4e1bc9a0SAchim Leubner 
460*4e1bc9a0SAchim Leubner GLOBAL bit32 saSASDiagExecute(
461*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
462*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
463*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
464*4e1bc9a0SAchim Leubner                         agsaSASDiagExecute_t      *diag
465*4e1bc9a0SAchim Leubner                         );
466*4e1bc9a0SAchim Leubner 
467*4e1bc9a0SAchim Leubner GLOBAL bit32 saSASDiagStartEnd(
468*4e1bc9a0SAchim Leubner                         agsaRoot_t                *agRoot,
469*4e1bc9a0SAchim Leubner                         agsaContext_t             *agContext,
470*4e1bc9a0SAchim Leubner                         bit32                     queueNum,
471*4e1bc9a0SAchim Leubner                         bit32                     phyId,
472*4e1bc9a0SAchim Leubner                         bit32                     operation
473*4e1bc9a0SAchim Leubner                         );
474*4e1bc9a0SAchim Leubner 
475*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetTimeStamp(
476*4e1bc9a0SAchim Leubner                         agsaRoot_t    *agRoot,
477*4e1bc9a0SAchim Leubner                         agsaContext_t *agContext,
478*4e1bc9a0SAchim Leubner                         bit32         queueNum
479*4e1bc9a0SAchim Leubner                         );
480*4e1bc9a0SAchim Leubner 
481*4e1bc9a0SAchim Leubner GLOBAL bit32 saPortControl(
482*4e1bc9a0SAchim Leubner                         agsaRoot_t        *agRoot,
483*4e1bc9a0SAchim Leubner                         agsaContext_t     *agContext,
484*4e1bc9a0SAchim Leubner                         bit32             queueNum,
485*4e1bc9a0SAchim Leubner                         agsaPortContext_t *agPortContext,
486*4e1bc9a0SAchim Leubner                         bit32             portOperation,
487*4e1bc9a0SAchim Leubner                         bit32             param0,
488*4e1bc9a0SAchim Leubner                         bit32             param1
489*4e1bc9a0SAchim Leubner                         );
490*4e1bc9a0SAchim Leubner 
491*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetRegisterDump(
492*4e1bc9a0SAchim Leubner                         agsaRoot_t        *agRoot,
493*4e1bc9a0SAchim Leubner                         agsaContext_t     *agContext,
494*4e1bc9a0SAchim Leubner                         bit32             queueNum,
495*4e1bc9a0SAchim Leubner                         agsaRegDumpInfo_t *regDumpInfo
496*4e1bc9a0SAchim Leubner                         );
497*4e1bc9a0SAchim Leubner 
498*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetForensicData(
499*4e1bc9a0SAchim Leubner                         agsaRoot_t          *agRoot,
500*4e1bc9a0SAchim Leubner                         agsaContext_t       *agContext,
501*4e1bc9a0SAchim Leubner                         agsaForensicData_t  *forensicData
502*4e1bc9a0SAchim Leubner                         );
503*4e1bc9a0SAchim Leubner 
504*4e1bc9a0SAchim Leubner bit32 saGetIOErrorStats(
505*4e1bc9a0SAchim Leubner                          agsaRoot_t        *agRoot,
506*4e1bc9a0SAchim Leubner                          agsaContext_t     *agContext,
507*4e1bc9a0SAchim Leubner                          bit32              flag
508*4e1bc9a0SAchim Leubner                          );
509*4e1bc9a0SAchim Leubner 
510*4e1bc9a0SAchim Leubner bit32 saGetIOEventStats(
511*4e1bc9a0SAchim Leubner                          agsaRoot_t        *agRoot,
512*4e1bc9a0SAchim Leubner                          agsaContext_t     *agContext,
513*4e1bc9a0SAchim Leubner                          bit32              flag
514*4e1bc9a0SAchim Leubner                          );
515*4e1bc9a0SAchim Leubner 
516*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetNVMDCommand(
517*4e1bc9a0SAchim Leubner                         agsaRoot_t        *agRoot,
518*4e1bc9a0SAchim Leubner                         agsaContext_t     *agContext,
519*4e1bc9a0SAchim Leubner                         bit32             queueNum,
520*4e1bc9a0SAchim Leubner                         agsaNVMDData_t    *NVMDInfo
521*4e1bc9a0SAchim Leubner                         );
522*4e1bc9a0SAchim Leubner 
523*4e1bc9a0SAchim Leubner GLOBAL bit32 saSetNVMDCommand(
524*4e1bc9a0SAchim Leubner                         agsaRoot_t        *agRoot,
525*4e1bc9a0SAchim Leubner                         agsaContext_t     *agContext,
526*4e1bc9a0SAchim Leubner                         bit32             queueNum,
527*4e1bc9a0SAchim Leubner                         agsaNVMDData_t    *NVMDInfo
528*4e1bc9a0SAchim Leubner                         );
529*4e1bc9a0SAchim Leubner 
530*4e1bc9a0SAchim Leubner GLOBAL bit32 saReconfigSASParams(
531*4e1bc9a0SAchim Leubner                         agsaRoot_t        *agRoot,
532*4e1bc9a0SAchim Leubner                         agsaContext_t     *agContext,
533*4e1bc9a0SAchim Leubner                         bit32             queueNum ,
534*4e1bc9a0SAchim Leubner                         agsaSASReconfig_t *agSASConfig
535*4e1bc9a0SAchim Leubner                         );
536*4e1bc9a0SAchim Leubner 
537*4e1bc9a0SAchim Leubner GLOBAL bit32 saSgpio(
538*4e1bc9a0SAchim Leubner                 agsaRoot_t              *agRoot,
539*4e1bc9a0SAchim Leubner                 agsaContext_t           *agContext,
540*4e1bc9a0SAchim Leubner                 bit32                   queueNum,
541*4e1bc9a0SAchim Leubner                 agsaSGpioReqResponse_t  *pSGpioReq
542*4e1bc9a0SAchim Leubner                 );
543*4e1bc9a0SAchim Leubner 
544*4e1bc9a0SAchim Leubner GLOBAL bit32 saPCIeDiagExecute(
545*4e1bc9a0SAchim Leubner                         agsaRoot_t             *agRoot,
546*4e1bc9a0SAchim Leubner                         agsaContext_t          *agContext,
547*4e1bc9a0SAchim Leubner                         bit32                   queueNum,
548*4e1bc9a0SAchim Leubner                         agsaPCIeDiagExecute_t  *diag);
549*4e1bc9a0SAchim Leubner 
550*4e1bc9a0SAchim Leubner 
551*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptSelftestExecute(
552*4e1bc9a0SAchim Leubner                         agsaRoot_t    *agRoot,
553*4e1bc9a0SAchim Leubner                         agsaContext_t *agContext,
554*4e1bc9a0SAchim Leubner                         bit32          queueNum,
555*4e1bc9a0SAchim Leubner                         bit32          type,
556*4e1bc9a0SAchim Leubner                         bit32          length,
557*4e1bc9a0SAchim Leubner                         void          *TestDescriptor);
558*4e1bc9a0SAchim Leubner 
559*4e1bc9a0SAchim Leubner GLOBAL bit32 saSetOperator(
560*4e1bc9a0SAchim Leubner                   agsaRoot_t     *agRoot,
561*4e1bc9a0SAchim Leubner                   agsaContext_t  *agContext,
562*4e1bc9a0SAchim Leubner                   bit32           queueNum,
563*4e1bc9a0SAchim Leubner                   bit32           flag,
564*4e1bc9a0SAchim Leubner                   void           *cert);
565*4e1bc9a0SAchim Leubner 
566*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetOperator(
567*4e1bc9a0SAchim Leubner                   agsaRoot_t     *agRoot,
568*4e1bc9a0SAchim Leubner                   agsaContext_t  *agContext,
569*4e1bc9a0SAchim Leubner                   bit32           queueNum,
570*4e1bc9a0SAchim Leubner                   bit32           option,
571*4e1bc9a0SAchim Leubner                   bit32           AddrHi,
572*4e1bc9a0SAchim Leubner                   bit32           AddrLo);
573*4e1bc9a0SAchim Leubner 
574*4e1bc9a0SAchim Leubner GLOBAL bit32 saOperatorManagement(
575*4e1bc9a0SAchim Leubner                         agsaRoot_t           *agRoot,
576*4e1bc9a0SAchim Leubner                         agsaContext_t        *agContext,
577*4e1bc9a0SAchim Leubner                         bit32                 queueNum,
578*4e1bc9a0SAchim Leubner                         bit32                 flag,
579*4e1bc9a0SAchim Leubner                         bit8                  role,
580*4e1bc9a0SAchim Leubner                         agsaID_t              *id,
581*4e1bc9a0SAchim Leubner                         agsaEncryptKekBlob_t  *kblob);
582*4e1bc9a0SAchim Leubner 
583*4e1bc9a0SAchim Leubner 
584*4e1bc9a0SAchim Leubner /***************************************************************************
585*4e1bc9a0SAchim Leubner  * Definition of Misc. related functions end                               *
586*4e1bc9a0SAchim Leubner  ***************************************************************************/
587*4e1bc9a0SAchim Leubner 
588*4e1bc9a0SAchim Leubner GLOBAL bit32 saSetControllerConfig(
589*4e1bc9a0SAchim Leubner                       agsaRoot_t        *agRoot,
590*4e1bc9a0SAchim Leubner                       bit32             queueNum,
591*4e1bc9a0SAchim Leubner                       bit32             modePage,
592*4e1bc9a0SAchim Leubner                       bit32             length,
593*4e1bc9a0SAchim Leubner                       void              *buffer,
594*4e1bc9a0SAchim Leubner                       agsaContext_t     *agContext
595*4e1bc9a0SAchim Leubner                       );
596*4e1bc9a0SAchim Leubner 
597*4e1bc9a0SAchim Leubner 
598*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetControllerConfig(
599*4e1bc9a0SAchim Leubner                       agsaRoot_t        *agRoot,
600*4e1bc9a0SAchim Leubner                       bit32             queueNum,
601*4e1bc9a0SAchim Leubner                       bit32             modePage,
602*4e1bc9a0SAchim Leubner                       bit32             flag0,
603*4e1bc9a0SAchim Leubner                       bit32             flag1,
604*4e1bc9a0SAchim Leubner                       agsaContext_t     *agContext
605*4e1bc9a0SAchim Leubner                       );
606*4e1bc9a0SAchim Leubner 
607*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptDekCacheUpdate(
608*4e1bc9a0SAchim Leubner                      agsaRoot_t        *agRoot,
609*4e1bc9a0SAchim Leubner                      agsaContext_t     *agContext,
610*4e1bc9a0SAchim Leubner                      bit32             queueNum,
611*4e1bc9a0SAchim Leubner                      bit32             kekIndex,
612*4e1bc9a0SAchim Leubner                      bit32             dekTableSelect,
613*4e1bc9a0SAchim Leubner                      bit32             dekAddrHi,
614*4e1bc9a0SAchim Leubner                      bit32             dekAddrLo,
615*4e1bc9a0SAchim Leubner                      bit32             dekIndex,
616*4e1bc9a0SAchim Leubner                      bit32             dekNumberOfEntries,
617*4e1bc9a0SAchim Leubner                      bit32             dekBlobFormat,
618*4e1bc9a0SAchim Leubner                      bit32             dekTableKeyEntrySize
619*4e1bc9a0SAchim Leubner                      );
620*4e1bc9a0SAchim Leubner 
621*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptDekCacheInvalidate(
622*4e1bc9a0SAchim Leubner                     agsaRoot_t         *agRoot,
623*4e1bc9a0SAchim Leubner                     agsaContext_t      *agContext,
624*4e1bc9a0SAchim Leubner                     bit32              queueNum,
625*4e1bc9a0SAchim Leubner                     bit32              dekTable,
626*4e1bc9a0SAchim Leubner                     bit32              dekIndex
627*4e1bc9a0SAchim Leubner                     );
628*4e1bc9a0SAchim Leubner 
629*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptGetMode(
630*4e1bc9a0SAchim Leubner                     agsaRoot_t         *agRoot,
631*4e1bc9a0SAchim Leubner                     agsaContext_t      *agContext,
632*4e1bc9a0SAchim Leubner                     agsaEncryptInfo_t  *encryptInfo
633*4e1bc9a0SAchim Leubner                     );
634*4e1bc9a0SAchim Leubner 
635*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptSetMode (
636*4e1bc9a0SAchim Leubner                       agsaRoot_t        *agRoot,
637*4e1bc9a0SAchim Leubner                       agsaContext_t     *agContext,
638*4e1bc9a0SAchim Leubner                       bit32             queueNum,
639*4e1bc9a0SAchim Leubner                       agsaEncryptInfo_t *mode
640*4e1bc9a0SAchim Leubner                       );
641*4e1bc9a0SAchim Leubner 
642*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptKekInvalidate(
643*4e1bc9a0SAchim Leubner                     agsaRoot_t         *agRoot,
644*4e1bc9a0SAchim Leubner                      agsaContext_t     *agContext,
645*4e1bc9a0SAchim Leubner                     bit32              queueNum,
646*4e1bc9a0SAchim Leubner                     bit32              kekIndex
647*4e1bc9a0SAchim Leubner                     );
648*4e1bc9a0SAchim Leubner 
649*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptKekUpdate(
650*4e1bc9a0SAchim Leubner                     agsaRoot_t         *agRoot,
651*4e1bc9a0SAchim Leubner                     agsaContext_t     *agContext,
652*4e1bc9a0SAchim Leubner                     bit32              queueNum,
653*4e1bc9a0SAchim Leubner                     bit32              flags,
654*4e1bc9a0SAchim Leubner                     bit32              newKekIndex,
655*4e1bc9a0SAchim Leubner                     bit32              wrapperKekIndex,
656*4e1bc9a0SAchim Leubner                     bit32              blobFormat,
657*4e1bc9a0SAchim Leubner                     agsaEncryptKekBlob_t *encryptKekBlob
658*4e1bc9a0SAchim Leubner                     );
659*4e1bc9a0SAchim Leubner 
660*4e1bc9a0SAchim Leubner #ifdef HIALEAH_ENCRYPTION
661*4e1bc9a0SAchim Leubner GLOBAL bit32 saEncryptHilUpdate(
662*4e1bc9a0SAchim Leubner                     agsaRoot_t         *agRoot,
663*4e1bc9a0SAchim Leubner                     agsaContext_t      *agContext,
664*4e1bc9a0SAchim Leubner                     bit32              queueNum
665*4e1bc9a0SAchim Leubner                     );
666*4e1bc9a0SAchim Leubner #endif /* HIALEAH_ENCRYPTION */
667*4e1bc9a0SAchim Leubner 
668*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetDFEData(
669*4e1bc9a0SAchim Leubner                           agsaRoot_t    *agRoot,
670*4e1bc9a0SAchim Leubner                           agsaContext_t   *agContext,
671*4e1bc9a0SAchim Leubner                           bit32     queueNum,
672*4e1bc9a0SAchim Leubner                           bit32                 interface,
673*4e1bc9a0SAchim Leubner                           bit32                 laneNumber,
674*4e1bc9a0SAchim Leubner                           bit32                 interations,
675*4e1bc9a0SAchim Leubner                           agsaSgl_t             *agSgl);
676*4e1bc9a0SAchim Leubner 
677*4e1bc9a0SAchim Leubner 
678*4e1bc9a0SAchim Leubner GLOBAL bit32 saFatalInterruptHandler(
679*4e1bc9a0SAchim Leubner                           agsaRoot_t  *agRoot,
680*4e1bc9a0SAchim Leubner                           bit32       interruptVectorIndex
681*4e1bc9a0SAchim Leubner   );
682*4e1bc9a0SAchim Leubner 
683*4e1bc9a0SAchim Leubner 
684*4e1bc9a0SAchim Leubner GLOBAL bit32 saDIFEncryptionOffloadStart(
685*4e1bc9a0SAchim Leubner                           agsaRoot_t         *agRoot,
686*4e1bc9a0SAchim Leubner                           agsaContext_t      *agContext,
687*4e1bc9a0SAchim Leubner                           bit32               queueNum,
688*4e1bc9a0SAchim Leubner                           bit32               op,
689*4e1bc9a0SAchim Leubner                           agsaDifEncPayload_t *agsaDifEncPayload,
690*4e1bc9a0SAchim Leubner                           ossaDIFEncryptionOffloadStartCB_t agCB);
691*4e1bc9a0SAchim Leubner 
692*4e1bc9a0SAchim Leubner 
693*4e1bc9a0SAchim Leubner GLOBAL bit32 saVhistCapture(
694*4e1bc9a0SAchim Leubner                           agsaRoot_t    *agRoot,
695*4e1bc9a0SAchim Leubner                           agsaContext_t *agContext,
696*4e1bc9a0SAchim Leubner                           bit32         queueNum,
697*4e1bc9a0SAchim Leubner                           bit32         Channel,
698*4e1bc9a0SAchim Leubner                           bit32         NumBitLo,
699*4e1bc9a0SAchim Leubner                           bit32         NumBitHi,
700*4e1bc9a0SAchim Leubner                           bit32         PcieAddrLo,
701*4e1bc9a0SAchim Leubner                           bit32         PcieAddrHi,
702*4e1bc9a0SAchim Leubner                           bit32         ByteCount );
703*4e1bc9a0SAchim Leubner 
704*4e1bc9a0SAchim Leubner 
705*4e1bc9a0SAchim Leubner GLOBAL void saCountActiveIORequests(  agsaRoot_t              *agRoot);
706*4e1bc9a0SAchim Leubner 
707*4e1bc9a0SAchim Leubner #ifdef SA_64BIT_TIMESTAMP
708*4e1bc9a0SAchim Leubner osGLOBAL bit64  osTimeStamp64(void);
709*4e1bc9a0SAchim Leubner #endif /* SA_64BIT_TIMESTAMP */
710*4e1bc9a0SAchim Leubner 
711*4e1bc9a0SAchim Leubner #ifdef SALL_API_TEST
712*4e1bc9a0SAchim Leubner /***************************************************************************
713*4e1bc9a0SAchim Leubner  * Definition of LL Test related API functions start                       *
714*4e1bc9a0SAchim Leubner  ***************************************************************************/
715*4e1bc9a0SAchim Leubner GLOBAL bit32 saGetLLCounters(
716*4e1bc9a0SAchim Leubner                       agsaRoot_t          *agRoot,
717*4e1bc9a0SAchim Leubner                       bit32               counters,
718*4e1bc9a0SAchim Leubner                       agsaLLCountInfo_t   *LLCountInfo
719*4e1bc9a0SAchim Leubner                       );
720*4e1bc9a0SAchim Leubner 
721*4e1bc9a0SAchim Leubner GLOBAL bit32 saResetLLCounters(
722*4e1bc9a0SAchim Leubner                       agsaRoot_t     *agRoot,
723*4e1bc9a0SAchim Leubner                       bit32          counters
724*4e1bc9a0SAchim Leubner                       );
725*4e1bc9a0SAchim Leubner #endif
726*4e1bc9a0SAchim Leubner 
727*4e1bc9a0SAchim Leubner #endif  /*__SSDKAPI_H__ */
728