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