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