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 25*4e1bc9a0SAchim Leubner * 26*4e1bc9a0SAchim Leubner * function definitions used in SAS/SATA TD layer 27*4e1bc9a0SAchim Leubner * 28*4e1bc9a0SAchim Leubner */ 29*4e1bc9a0SAchim Leubner 30*4e1bc9a0SAchim Leubner #ifndef __TDPROTO_H__ 31*4e1bc9a0SAchim Leubner #define __TDPROTO_H__ 32*4e1bc9a0SAchim Leubner 33*4e1bc9a0SAchim Leubner #ifdef FDS_DM 34*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/discovery/api/dm.h> 35*4e1bc9a0SAchim Leubner #endif 36*4e1bc9a0SAchim Leubner 37*4e1bc9a0SAchim Leubner /***************************************************************************** 38*4e1bc9a0SAchim Leubner * 39*4e1bc9a0SAchim Leubner * SA SHARED PROTOTYPES 40*4e1bc9a0SAchim Leubner * 41*4e1bc9a0SAchim Leubner *****************************************************************************/ 42*4e1bc9a0SAchim Leubner 43*4e1bc9a0SAchim Leubner osGLOBAL void 44*4e1bc9a0SAchim Leubner tdsaQueueConfigInit( 45*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 46*4e1bc9a0SAchim Leubner ); 47*4e1bc9a0SAchim Leubner 48*4e1bc9a0SAchim Leubner osGLOBAL void 49*4e1bc9a0SAchim Leubner tdsaEsglInit( 50*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 51*4e1bc9a0SAchim Leubner ); 52*4e1bc9a0SAchim Leubner 53*4e1bc9a0SAchim Leubner osGLOBAL void 54*4e1bc9a0SAchim Leubner tdsaResetComMemFlags( 55*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 56*4e1bc9a0SAchim Leubner ); 57*4e1bc9a0SAchim Leubner 58*4e1bc9a0SAchim Leubner 59*4e1bc9a0SAchim Leubner osGLOBAL void 60*4e1bc9a0SAchim Leubner tdsaInitTimerRequest( 61*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 62*4e1bc9a0SAchim Leubner tdsaTimerRequest_t *timerRequest 63*4e1bc9a0SAchim Leubner ); 64*4e1bc9a0SAchim Leubner 65*4e1bc9a0SAchim Leubner osGLOBAL void 66*4e1bc9a0SAchim Leubner tdsaSetTimerRequest( 67*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 68*4e1bc9a0SAchim Leubner tdsaTimerRequest_t *timerRequest, 69*4e1bc9a0SAchim Leubner bit32 timeout, 70*4e1bc9a0SAchim Leubner tdsaTimerCBFunc_t CBFunc, 71*4e1bc9a0SAchim Leubner void *timerData1, 72*4e1bc9a0SAchim Leubner void *timerData2, 73*4e1bc9a0SAchim Leubner void *timerData3 74*4e1bc9a0SAchim Leubner ); 75*4e1bc9a0SAchim Leubner 76*4e1bc9a0SAchim Leubner osGLOBAL void 77*4e1bc9a0SAchim Leubner tdsaAddTimer ( 78*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 79*4e1bc9a0SAchim Leubner tdList_t *timerListHdr, 80*4e1bc9a0SAchim Leubner tdsaTimerRequest_t *timerRequest 81*4e1bc9a0SAchim Leubner ); 82*4e1bc9a0SAchim Leubner 83*4e1bc9a0SAchim Leubner osGLOBAL void 84*4e1bc9a0SAchim Leubner tdsaKillTimer( 85*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 86*4e1bc9a0SAchim Leubner tdsaTimerRequest_t *timerRequest 87*4e1bc9a0SAchim Leubner ); 88*4e1bc9a0SAchim Leubner 89*4e1bc9a0SAchim Leubner 90*4e1bc9a0SAchim Leubner 91*4e1bc9a0SAchim Leubner 92*4e1bc9a0SAchim Leubner 93*4e1bc9a0SAchim Leubner osGLOBAL void 94*4e1bc9a0SAchim Leubner tdsaLoLevelGetResource ( 95*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 96*4e1bc9a0SAchim Leubner tiLoLevelResource_t * loResource 97*4e1bc9a0SAchim Leubner ); 98*4e1bc9a0SAchim Leubner 99*4e1bc9a0SAchim Leubner osGLOBAL void 100*4e1bc9a0SAchim Leubner tdsaSharedMemCalculate ( 101*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 102*4e1bc9a0SAchim Leubner tiLoLevelResource_t * loResource, 103*4e1bc9a0SAchim Leubner tiTdSharedMem_t * tdSharedMem 104*4e1bc9a0SAchim Leubner ); 105*4e1bc9a0SAchim Leubner 106*4e1bc9a0SAchim Leubner osGLOBAL void 107*4e1bc9a0SAchim Leubner tdsaGetEsglPagesInfo( 108*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 109*4e1bc9a0SAchim Leubner bit32 *PageSize, 110*4e1bc9a0SAchim Leubner bit32 *NumPages 111*4e1bc9a0SAchim Leubner ); 112*4e1bc9a0SAchim Leubner 113*4e1bc9a0SAchim Leubner osGLOBAL void 114*4e1bc9a0SAchim Leubner tdsaGetPortParams( 115*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 116*4e1bc9a0SAchim Leubner ); 117*4e1bc9a0SAchim Leubner 118*4e1bc9a0SAchim Leubner 119*4e1bc9a0SAchim Leubner 120*4e1bc9a0SAchim Leubner osGLOBAL void 121*4e1bc9a0SAchim Leubner tdsaGetSwConfigParams( 122*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 123*4e1bc9a0SAchim Leubner ); 124*4e1bc9a0SAchim Leubner 125*4e1bc9a0SAchim Leubner osGLOBAL void 126*4e1bc9a0SAchim Leubner tdsaGetHwConfigParams( 127*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 128*4e1bc9a0SAchim Leubner ); 129*4e1bc9a0SAchim Leubner 130*4e1bc9a0SAchim Leubner osGLOBAL void 131*4e1bc9a0SAchim Leubner tdsaGetCardPhyParams( 132*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 133*4e1bc9a0SAchim Leubner ); 134*4e1bc9a0SAchim Leubner 135*4e1bc9a0SAchim Leubner 136*4e1bc9a0SAchim Leubner osGLOBAL void 137*4e1bc9a0SAchim Leubner tdsaGetGlobalPhyParams( 138*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 139*4e1bc9a0SAchim Leubner ); 140*4e1bc9a0SAchim Leubner 141*4e1bc9a0SAchim Leubner osGLOBAL bit32 142*4e1bc9a0SAchim Leubner tdsaGetCardIDString( 143*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 144*4e1bc9a0SAchim Leubner ); 145*4e1bc9a0SAchim Leubner 146*4e1bc9a0SAchim Leubner osGLOBAL void 147*4e1bc9a0SAchim Leubner tdsaParseLinkRateMode( 148*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 149*4e1bc9a0SAchim Leubner bit32 index, 150*4e1bc9a0SAchim Leubner bit32 LinkRateRead, 151*4e1bc9a0SAchim Leubner bit32 ModeRead, 152*4e1bc9a0SAchim Leubner bit32 OpticalModeRead, 153*4e1bc9a0SAchim Leubner bit32 LinkRate, 154*4e1bc9a0SAchim Leubner bit32 Mode, 155*4e1bc9a0SAchim Leubner bit32 OpticalMode 156*4e1bc9a0SAchim Leubner ); 157*4e1bc9a0SAchim Leubner 158*4e1bc9a0SAchim Leubner osGLOBAL void 159*4e1bc9a0SAchim Leubner tdsaInitTimers( 160*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 161*4e1bc9a0SAchim Leubner ); 162*4e1bc9a0SAchim Leubner 163*4e1bc9a0SAchim Leubner osGLOBAL void 164*4e1bc9a0SAchim Leubner tdsaProcessTimers( 165*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 166*4e1bc9a0SAchim Leubner ); 167*4e1bc9a0SAchim Leubner 168*4e1bc9a0SAchim Leubner osGLOBAL void 169*4e1bc9a0SAchim Leubner tdsaInitTimerHandler( 170*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 171*4e1bc9a0SAchim Leubner void *timerData 172*4e1bc9a0SAchim Leubner ); 173*4e1bc9a0SAchim Leubner 174*4e1bc9a0SAchim Leubner osGLOBAL void 175*4e1bc9a0SAchim Leubner tdsaGetEsglPages( 176*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 177*4e1bc9a0SAchim Leubner tdList_t *EsglListHdr, 178*4e1bc9a0SAchim Leubner tiSgl_t *ptiSgl, 179*4e1bc9a0SAchim Leubner tiSgl_t *virtSgl 180*4e1bc9a0SAchim Leubner ); 181*4e1bc9a0SAchim Leubner 182*4e1bc9a0SAchim Leubner osGLOBAL void 183*4e1bc9a0SAchim Leubner tdsaFreeEsglPages( 184*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 185*4e1bc9a0SAchim Leubner tdList_t *EsglListHdr 186*4e1bc9a0SAchim Leubner ); 187*4e1bc9a0SAchim Leubner 188*4e1bc9a0SAchim Leubner osGLOBAL void 189*4e1bc9a0SAchim Leubner tdssGetMaxTargetsParams( 190*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 191*4e1bc9a0SAchim Leubner bit32 *pMaxTargets 192*4e1bc9a0SAchim Leubner ); 193*4e1bc9a0SAchim Leubner 194*4e1bc9a0SAchim Leubner osGLOBAL void 195*4e1bc9a0SAchim Leubner tdssGetSATAOnlyModeParams( 196*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 197*4e1bc9a0SAchim Leubner bit32 *pMaxTargets 198*4e1bc9a0SAchim Leubner ); 199*4e1bc9a0SAchim Leubner 200*4e1bc9a0SAchim Leubner osGLOBAL bit32 201*4e1bc9a0SAchim Leubner tdipFWControlIoctl( 202*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 203*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 204*4e1bc9a0SAchim Leubner void *agParam1, 205*4e1bc9a0SAchim Leubner void *agParam2, 206*4e1bc9a0SAchim Leubner void *agParam3 207*4e1bc9a0SAchim Leubner ); 208*4e1bc9a0SAchim Leubner 209*4e1bc9a0SAchim Leubner osGLOBAL bit32 210*4e1bc9a0SAchim Leubner tdsaVPDGetIoctl( 211*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 212*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 213*4e1bc9a0SAchim Leubner void *agParam1, 214*4e1bc9a0SAchim Leubner void *agParam2, 215*4e1bc9a0SAchim Leubner void *agParam3 216*4e1bc9a0SAchim Leubner ); 217*4e1bc9a0SAchim Leubner 218*4e1bc9a0SAchim Leubner osGLOBAL bit32 219*4e1bc9a0SAchim Leubner tdsaVPDSetIoctl( 220*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 221*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 222*4e1bc9a0SAchim Leubner void *agParam1, 223*4e1bc9a0SAchim Leubner void *agParam2, 224*4e1bc9a0SAchim Leubner void *agParam3 225*4e1bc9a0SAchim Leubner ); 226*4e1bc9a0SAchim Leubner 227*4e1bc9a0SAchim Leubner osGLOBAL void 228*4e1bc9a0SAchim Leubner ostiCOMMgntVPDSetIOCTLRsp( 229*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 230*4e1bc9a0SAchim Leubner bit32 status 231*4e1bc9a0SAchim Leubner ); 232*4e1bc9a0SAchim Leubner 233*4e1bc9a0SAchim Leubner osGLOBAL void 234*4e1bc9a0SAchim Leubner tdsaFreeCardID(tiRoot_t *tiRoot, 235*4e1bc9a0SAchim Leubner bit32 CardID 236*4e1bc9a0SAchim Leubner ); 237*4e1bc9a0SAchim Leubner 238*4e1bc9a0SAchim Leubner 239*4e1bc9a0SAchim Leubner osGLOBAL bit32 240*4e1bc9a0SAchim Leubner tdsaAbortAll( 241*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 242*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 243*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 244*4e1bc9a0SAchim Leubner ); 245*4e1bc9a0SAchim Leubner 246*4e1bc9a0SAchim Leubner osGLOBAL bit32 247*4e1bc9a0SAchim Leubner tdsaFindLocalMCN( 248*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 249*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 250*4e1bc9a0SAchim Leubner ); 251*4e1bc9a0SAchim Leubner 252*4e1bc9a0SAchim Leubner osGLOBAL bit32 253*4e1bc9a0SAchim Leubner tdsaRegDumpGetIoctl( 254*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 255*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 256*4e1bc9a0SAchim Leubner void *agParam1, 257*4e1bc9a0SAchim Leubner void *agParam2, 258*4e1bc9a0SAchim Leubner void *agParam3 259*4e1bc9a0SAchim Leubner ); 260*4e1bc9a0SAchim Leubner 261*4e1bc9a0SAchim Leubner osGLOBAL bit32 262*4e1bc9a0SAchim Leubner tdsaNVMDSetIoctl( 263*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 264*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 265*4e1bc9a0SAchim Leubner void *agParam1, 266*4e1bc9a0SAchim Leubner void *agParam2, 267*4e1bc9a0SAchim Leubner void *agParam3 268*4e1bc9a0SAchim Leubner ); 269*4e1bc9a0SAchim Leubner 270*4e1bc9a0SAchim Leubner osGLOBAL bit32 271*4e1bc9a0SAchim Leubner tdsaNVMDGetIoctl( 272*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 273*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 274*4e1bc9a0SAchim Leubner void *agParam1, 275*4e1bc9a0SAchim Leubner void *agParam2, 276*4e1bc9a0SAchim Leubner void *agParam3 277*4e1bc9a0SAchim Leubner ); 278*4e1bc9a0SAchim Leubner 279*4e1bc9a0SAchim Leubner osGLOBAL void ostiGetGpioIOCTLRsp( 280*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 281*4e1bc9a0SAchim Leubner bit32 status, 282*4e1bc9a0SAchim Leubner bit32 gpioReadValue, 283*4e1bc9a0SAchim Leubner agsaGpioPinSetupInfo_t *gpioPinSetupInfo, 284*4e1bc9a0SAchim Leubner agsaGpioEventSetupInfo_t *gpioEventSetupInfo 285*4e1bc9a0SAchim Leubner ); 286*4e1bc9a0SAchim Leubner 287*4e1bc9a0SAchim Leubner osGLOBAL bit32 288*4e1bc9a0SAchim Leubner tdsaGpioSetup( 289*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 290*4e1bc9a0SAchim Leubner agsaContext_t *agContext, 291*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 292*4e1bc9a0SAchim Leubner void *agParam1, 293*4e1bc9a0SAchim Leubner void *agParam2 294*4e1bc9a0SAchim Leubner ); 295*4e1bc9a0SAchim Leubner 296*4e1bc9a0SAchim Leubner 297*4e1bc9a0SAchim Leubner osGLOBAL bit32 298*4e1bc9a0SAchim Leubner tdsaSGpioIoctlSetup( 299*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 300*4e1bc9a0SAchim Leubner agsaContext_t *agContext, 301*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 302*4e1bc9a0SAchim Leubner void *agParam1, 303*4e1bc9a0SAchim Leubner void *agParam2 304*4e1bc9a0SAchim Leubner ); 305*4e1bc9a0SAchim Leubner 306*4e1bc9a0SAchim Leubner osGLOBAL void ostiSgpioIoctlRsp( 307*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 308*4e1bc9a0SAchim Leubner agsaSGpioReqResponse_t *pSgpioResponse 309*4e1bc9a0SAchim Leubner ); 310*4e1bc9a0SAchim Leubner osGLOBAL bit32 311*4e1bc9a0SAchim Leubner tdsaDeviceInfoGetIoctl( 312*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 313*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 314*4e1bc9a0SAchim Leubner void *agParam1, 315*4e1bc9a0SAchim Leubner void *agParam2, 316*4e1bc9a0SAchim Leubner void *agParam3 317*4e1bc9a0SAchim Leubner ); 318*4e1bc9a0SAchim Leubner 319*4e1bc9a0SAchim Leubner osGLOBAL bit32 320*4e1bc9a0SAchim Leubner tdsaIoErrorStatisticGetIoctl( 321*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 322*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 323*4e1bc9a0SAchim Leubner void *agParam1, 324*4e1bc9a0SAchim Leubner void *agParam2, 325*4e1bc9a0SAchim Leubner void *agParam3 326*4e1bc9a0SAchim Leubner ); 327*4e1bc9a0SAchim Leubner 328*4e1bc9a0SAchim Leubner osGLOBAL bit32 329*4e1bc9a0SAchim Leubner tdsaIoEventStatisticGetIoctl( 330*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 331*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 332*4e1bc9a0SAchim Leubner void *agParam1, 333*4e1bc9a0SAchim Leubner void *agParam2, 334*4e1bc9a0SAchim Leubner void *agParam3 335*4e1bc9a0SAchim Leubner ); 336*4e1bc9a0SAchim Leubner 337*4e1bc9a0SAchim Leubner osGLOBAL bit32 338*4e1bc9a0SAchim Leubner tdsaForensicDataGetIoctl( 339*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 340*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 341*4e1bc9a0SAchim Leubner void *agParam1, 342*4e1bc9a0SAchim Leubner void *agParam2, 343*4e1bc9a0SAchim Leubner void *agParam3 344*4e1bc9a0SAchim Leubner ); 345*4e1bc9a0SAchim Leubner 346*4e1bc9a0SAchim Leubner osGLOBAL bit32 347*4e1bc9a0SAchim Leubner tdsaSendSMPIoctl( 348*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 349*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 350*4e1bc9a0SAchim Leubner void *agParam1, 351*4e1bc9a0SAchim Leubner void *agParam2, 352*4e1bc9a0SAchim Leubner void *agParam3 353*4e1bc9a0SAchim Leubner ); 354*4e1bc9a0SAchim Leubner 355*4e1bc9a0SAchim Leubner osGLOBAL bit32 356*4e1bc9a0SAchim Leubner tdsaSendBISTIoctl( 357*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 358*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 359*4e1bc9a0SAchim Leubner void *agParam1, 360*4e1bc9a0SAchim Leubner void *agParam2, 361*4e1bc9a0SAchim Leubner void *agParam3 362*4e1bc9a0SAchim Leubner ); 363*4e1bc9a0SAchim Leubner 364*4e1bc9a0SAchim Leubner osGLOBAL bit32 365*4e1bc9a0SAchim Leubner tdsaSendTMFIoctl( 366*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 367*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 368*4e1bc9a0SAchim Leubner void *agParam1, 369*4e1bc9a0SAchim Leubner void *agParam2, 370*4e1bc9a0SAchim Leubner unsigned long resetType 371*4e1bc9a0SAchim Leubner ); 372*4e1bc9a0SAchim Leubner 373*4e1bc9a0SAchim Leubner 374*4e1bc9a0SAchim Leubner osGLOBAL bit32 375*4e1bc9a0SAchim Leubner tdsaRegisterIoctl( 376*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 377*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 378*4e1bc9a0SAchim Leubner void *agParam1, 379*4e1bc9a0SAchim Leubner void *agParam2, 380*4e1bc9a0SAchim Leubner void *agParam3 381*4e1bc9a0SAchim Leubner ); 382*4e1bc9a0SAchim Leubner 383*4e1bc9a0SAchim Leubner osGLOBAL bit32 384*4e1bc9a0SAchim Leubner tdsaGetPhyGeneralStatusIoctl( 385*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 386*4e1bc9a0SAchim Leubner agsaPhyGeneralState_t *PhyData 387*4e1bc9a0SAchim Leubner ); 388*4e1bc9a0SAchim Leubner 389*4e1bc9a0SAchim Leubner osGLOBAL void ostiGetPhyGeneralStatusRsp( 390*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 391*4e1bc9a0SAchim Leubner agsaSASPhyGeneralStatusPage_t *GenStatus, 392*4e1bc9a0SAchim Leubner bit32 phyID 393*4e1bc9a0SAchim Leubner ); 394*4e1bc9a0SAchim Leubner 395*4e1bc9a0SAchim Leubner 396*4e1bc9a0SAchim Leubner osGLOBAL bit32 397*4e1bc9a0SAchim Leubner tdsaPhyProfileIoctl( 398*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 399*4e1bc9a0SAchim Leubner tiIOCTLPayload_t *agIOCTLPayload, 400*4e1bc9a0SAchim Leubner void *agParam1, 401*4e1bc9a0SAchim Leubner void *agParam2, 402*4e1bc9a0SAchim Leubner void *agParam3 403*4e1bc9a0SAchim Leubner ); 404*4e1bc9a0SAchim Leubner 405*4e1bc9a0SAchim Leubner osGLOBAL void 406*4e1bc9a0SAchim Leubner tdsaDeregisterDevicesInPort( 407*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 408*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 409*4e1bc9a0SAchim Leubner ); 410*4e1bc9a0SAchim Leubner 411*4e1bc9a0SAchim Leubner #ifdef VPD_TESTING 412*4e1bc9a0SAchim Leubner osGLOBAL bit32 413*4e1bc9a0SAchim Leubner tdsaVPDGet( 414*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 415*4e1bc9a0SAchim Leubner ); 416*4e1bc9a0SAchim Leubner 417*4e1bc9a0SAchim Leubner osGLOBAL bit32 418*4e1bc9a0SAchim Leubner tdsaVPDSet( 419*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 420*4e1bc9a0SAchim Leubner ); 421*4e1bc9a0SAchim Leubner 422*4e1bc9a0SAchim Leubner #endif 423*4e1bc9a0SAchim Leubner 424*4e1bc9a0SAchim Leubner /***************************************************************************** 425*4e1bc9a0SAchim Leubner * 426*4e1bc9a0SAchim Leubner * SAS SHARED PROTOTYPES 427*4e1bc9a0SAchim Leubner * 428*4e1bc9a0SAchim Leubner *****************************************************************************/ 429*4e1bc9a0SAchim Leubner osGLOBAL void 430*4e1bc9a0SAchim Leubner tdsaJumpTableInit( 431*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 432*4e1bc9a0SAchim Leubner ); 433*4e1bc9a0SAchim Leubner 434*4e1bc9a0SAchim Leubner osGLOBAL void 435*4e1bc9a0SAchim Leubner tdsaPortContextInit( 436*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 437*4e1bc9a0SAchim Leubner ); 438*4e1bc9a0SAchim Leubner 439*4e1bc9a0SAchim Leubner osGLOBAL void 440*4e1bc9a0SAchim Leubner tdsaPortContextReInit( 441*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 442*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 443*4e1bc9a0SAchim Leubner ); 444*4e1bc9a0SAchim Leubner 445*4e1bc9a0SAchim Leubner osGLOBAL void 446*4e1bc9a0SAchim Leubner tdsaDeviceDataInit( 447*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 448*4e1bc9a0SAchim Leubner ); 449*4e1bc9a0SAchim Leubner 450*4e1bc9a0SAchim Leubner osGLOBAL void 451*4e1bc9a0SAchim Leubner tdsaDeviceDataReInit( 452*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 453*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 454*4e1bc9a0SAchim Leubner ); 455*4e1bc9a0SAchim Leubner 456*4e1bc9a0SAchim Leubner #ifdef TD_INT_COALESCE 457*4e1bc9a0SAchim Leubner osGLOBAL void 458*4e1bc9a0SAchim Leubner tdsaIntCoalCxtInit( 459*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 460*4e1bc9a0SAchim Leubner ); 461*4e1bc9a0SAchim Leubner #endif 462*4e1bc9a0SAchim Leubner 463*4e1bc9a0SAchim Leubner osGLOBAL FORCEINLINE bit32 464*4e1bc9a0SAchim Leubner tdsaRotateQnumber(tiRoot_t *tiRoot, 465*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData); 466*4e1bc9a0SAchim Leubner 467*4e1bc9a0SAchim Leubner osGLOBAL bit32 468*4e1bc9a0SAchim Leubner tdsaRotateQnumber1(tiRoot_t *tiRoot, 469*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData ); 470*4e1bc9a0SAchim Leubner osGLOBAL void 471*4e1bc9a0SAchim Leubner tdssRemoveSASSATAFromSharedcontext( 472*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 473*4e1bc9a0SAchim Leubner tdsaPortContext_t *PortContext_Instance 474*4e1bc9a0SAchim Leubner ); 475*4e1bc9a0SAchim Leubner osGLOBAL void 476*4e1bc9a0SAchim Leubner tdssRemoveSASSATAFromSharedcontextByReset( 477*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot 478*4e1bc9a0SAchim Leubner ); 479*4e1bc9a0SAchim Leubner osGLOBAL bit32 480*4e1bc9a0SAchim Leubner tdssSASFindDiscoveringExpander( 481*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 482*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 483*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 484*4e1bc9a0SAchim Leubner ); 485*4e1bc9a0SAchim Leubner 486*4e1bc9a0SAchim Leubner osGLOBAL void 487*4e1bc9a0SAchim Leubner tdssAddSASToSharedcontext( 488*4e1bc9a0SAchim Leubner tdsaPortContext_t *tdsaPortContext_Instance, 489*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 490*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 491*4e1bc9a0SAchim Leubner tdsaSASSubID_t *agSASSubID, 492*4e1bc9a0SAchim Leubner bit32 registered, 493*4e1bc9a0SAchim Leubner bit8 phyID, 494*4e1bc9a0SAchim Leubner bit32 flag 495*4e1bc9a0SAchim Leubner ); 496*4e1bc9a0SAchim Leubner 497*4e1bc9a0SAchim Leubner osGLOBAL void 498*4e1bc9a0SAchim Leubner tdssRemoveSASFromSharedcontext( 499*4e1bc9a0SAchim Leubner tdsaPortContext_t *tdsaPortContext_Ins, 500*4e1bc9a0SAchim Leubner tdsaDeviceData_t *tdsaDeviceData_ins, 501*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot 502*4e1bc9a0SAchim Leubner ); 503*4e1bc9a0SAchim Leubner 504*4e1bc9a0SAchim Leubner osGLOBAL void 505*4e1bc9a0SAchim Leubner tdssRemoveAllDevicelistFromPortcontext( 506*4e1bc9a0SAchim Leubner tdsaPortContext_t *PortContext_Ins, 507*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot 508*4e1bc9a0SAchim Leubner ); 509*4e1bc9a0SAchim Leubner 510*4e1bc9a0SAchim Leubner osGLOBAL void 511*4e1bc9a0SAchim Leubner tdssAddSATAToSharedcontext( tdsaPortContext_t *tdsaPortContext_Instance, 512*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 513*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 514*4e1bc9a0SAchim Leubner agsaSATADeviceInfo_t *agSATADeviceInfo, 515*4e1bc9a0SAchim Leubner bit32 registered, 516*4e1bc9a0SAchim Leubner bit8 phyID 517*4e1bc9a0SAchim Leubner ); 518*4e1bc9a0SAchim Leubner 519*4e1bc9a0SAchim Leubner osGLOBAL void 520*4e1bc9a0SAchim Leubner tdssSubAddSATAToSharedcontext( tiRoot_t *tiRoot, 521*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 522*4e1bc9a0SAchim Leubner ); 523*4e1bc9a0SAchim Leubner 524*4e1bc9a0SAchim Leubner osGLOBAL void 525*4e1bc9a0SAchim Leubner tdssRetrySATAID( tiRoot_t *tiRoot, 526*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 527*4e1bc9a0SAchim Leubner ); 528*4e1bc9a0SAchim Leubner 529*4e1bc9a0SAchim Leubner osGLOBAL void 530*4e1bc9a0SAchim Leubner tdssInitSASPortStartInfo( 531*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 532*4e1bc9a0SAchim Leubner ); 533*4e1bc9a0SAchim Leubner #ifndef ossaDeviceRegistrationCB 534*4e1bc9a0SAchim Leubner osGLOBAL void 535*4e1bc9a0SAchim Leubner ossaDeviceRegistrationCB( 536*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 537*4e1bc9a0SAchim Leubner agsaContext_t *agContext, 538*4e1bc9a0SAchim Leubner bit32 status, 539*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 540*4e1bc9a0SAchim Leubner bit32 deviceID); 541*4e1bc9a0SAchim Leubner #endif 542*4e1bc9a0SAchim Leubner 543*4e1bc9a0SAchim Leubner #ifndef ossaDeregisterDeviceHandleCB 544*4e1bc9a0SAchim Leubner osGLOBAL void 545*4e1bc9a0SAchim Leubner ossaDeregisterDeviceHandleCB( 546*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 547*4e1bc9a0SAchim Leubner agsaContext_t *agContext, 548*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 549*4e1bc9a0SAchim Leubner bit32 status 550*4e1bc9a0SAchim Leubner ); 551*4e1bc9a0SAchim Leubner #endif 552*4e1bc9a0SAchim Leubner 553*4e1bc9a0SAchim Leubner #ifdef INITIATOR_DRIVER 554*4e1bc9a0SAchim Leubner /***************************************************************************** 555*4e1bc9a0SAchim Leubner * 556*4e1bc9a0SAchim Leubner * SAS Initiator only PROTOTYPES 557*4e1bc9a0SAchim Leubner * 558*4e1bc9a0SAchim Leubner *****************************************************************************/ 559*4e1bc9a0SAchim Leubner osGLOBAL bit32 560*4e1bc9a0SAchim Leubner itdssInit( 561*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 562*4e1bc9a0SAchim Leubner tiInitiatorResource_t *initiatorResource, 563*4e1bc9a0SAchim Leubner tiTdSharedMem_t *tdSharedMem 564*4e1bc9a0SAchim Leubner ); 565*4e1bc9a0SAchim Leubner 566*4e1bc9a0SAchim Leubner osGLOBAL void 567*4e1bc9a0SAchim Leubner itdssInitTimers ( 568*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 569*4e1bc9a0SAchim Leubner ); 570*4e1bc9a0SAchim Leubner 571*4e1bc9a0SAchim Leubner osGLOBAL FORCEINLINE void 572*4e1bc9a0SAchim Leubner itdssIOCompleted( 573*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 574*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 575*4e1bc9a0SAchim Leubner bit32 agIOStatus, 576*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 577*4e1bc9a0SAchim Leubner void *agParam, 578*4e1bc9a0SAchim Leubner bit32 agOtherInfo 579*4e1bc9a0SAchim Leubner ); 580*4e1bc9a0SAchim Leubner 581*4e1bc9a0SAchim Leubner osGLOBAL void 582*4e1bc9a0SAchim Leubner itdssTaskCompleted( 583*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 584*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 585*4e1bc9a0SAchim Leubner bit32 agIOStatus, 586*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 587*4e1bc9a0SAchim Leubner void *agParam, 588*4e1bc9a0SAchim Leubner bit32 agOtherInfo 589*4e1bc9a0SAchim Leubner ); 590*4e1bc9a0SAchim Leubner 591*4e1bc9a0SAchim Leubner osGLOBAL void 592*4e1bc9a0SAchim Leubner itdssQueryTaskCompleted( 593*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 594*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 595*4e1bc9a0SAchim Leubner bit32 agIOStatus, 596*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 597*4e1bc9a0SAchim Leubner void *agParam, 598*4e1bc9a0SAchim Leubner bit32 agOtherInfo 599*4e1bc9a0SAchim Leubner ); 600*4e1bc9a0SAchim Leubner 601*4e1bc9a0SAchim Leubner osGLOBAL void 602*4e1bc9a0SAchim Leubner itdssSMPCompleted ( 603*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 604*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 605*4e1bc9a0SAchim Leubner bit32 agIOStatus, 606*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 607*4e1bc9a0SAchim Leubner agsaFrameHandle_t agFrameHandle 608*4e1bc9a0SAchim Leubner ); 609*4e1bc9a0SAchim Leubner 610*4e1bc9a0SAchim Leubner osGLOBAL void 611*4e1bc9a0SAchim Leubner ossaSMPCAMCompleted( 612*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 613*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 614*4e1bc9a0SAchim Leubner bit32 agIOStatus, 615*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 616*4e1bc9a0SAchim Leubner agsaFrameHandle_t agFrameHandle 617*4e1bc9a0SAchim Leubner ); 618*4e1bc9a0SAchim Leubner 619*4e1bc9a0SAchim Leubner osGLOBAL void 620*4e1bc9a0SAchim Leubner itdssIOSuccessHandler( 621*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 622*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 623*4e1bc9a0SAchim Leubner bit32 agIOStatus, 624*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 625*4e1bc9a0SAchim Leubner void *agParam, 626*4e1bc9a0SAchim Leubner bit32 agOtherInfo 627*4e1bc9a0SAchim Leubner ); 628*4e1bc9a0SAchim Leubner osGLOBAL void 629*4e1bc9a0SAchim Leubner itdssIOAbortedHandler( 630*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 631*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 632*4e1bc9a0SAchim Leubner bit32 agIOStatus, 633*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 634*4e1bc9a0SAchim Leubner void *agParam, 635*4e1bc9a0SAchim Leubner bit32 agOtherInfo 636*4e1bc9a0SAchim Leubner ); 637*4e1bc9a0SAchim Leubner 638*4e1bc9a0SAchim Leubner #ifdef REMOVED 639*4e1bc9a0SAchim Leubner osGLOBAL void 640*4e1bc9a0SAchim Leubner itdssIOOverFlowHandler( 641*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 642*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 643*4e1bc9a0SAchim Leubner bit32 agIOStatus, 644*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 645*4e1bc9a0SAchim Leubner void *agParam 646*4e1bc9a0SAchim Leubner ); 647*4e1bc9a0SAchim Leubner #endif 648*4e1bc9a0SAchim Leubner 649*4e1bc9a0SAchim Leubner osGLOBAL void 650*4e1bc9a0SAchim Leubner itdssIOUnderFlowHandler( 651*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 652*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 653*4e1bc9a0SAchim Leubner bit32 agIOStatus, 654*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 655*4e1bc9a0SAchim Leubner void *agParam, 656*4e1bc9a0SAchim Leubner bit32 agOtherInfo 657*4e1bc9a0SAchim Leubner ); 658*4e1bc9a0SAchim Leubner 659*4e1bc9a0SAchim Leubner osGLOBAL void 660*4e1bc9a0SAchim Leubner itdssIOFailedHandler( 661*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 662*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 663*4e1bc9a0SAchim Leubner bit32 agIOStatus, 664*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 665*4e1bc9a0SAchim Leubner void *agParam, 666*4e1bc9a0SAchim Leubner bit32 agOtherInfo 667*4e1bc9a0SAchim Leubner ); 668*4e1bc9a0SAchim Leubner 669*4e1bc9a0SAchim Leubner osGLOBAL void 670*4e1bc9a0SAchim Leubner itdssIOAbortResetHandler( 671*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 672*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 673*4e1bc9a0SAchim Leubner bit32 agIOStatus, 674*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 675*4e1bc9a0SAchim Leubner void *agParam, 676*4e1bc9a0SAchim Leubner bit32 agOtherInfo 677*4e1bc9a0SAchim Leubner ); 678*4e1bc9a0SAchim Leubner osGLOBAL void 679*4e1bc9a0SAchim Leubner itdssIONotValidHandler( 680*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 681*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 682*4e1bc9a0SAchim Leubner bit32 agIOStatus, 683*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 684*4e1bc9a0SAchim Leubner void *agParam, 685*4e1bc9a0SAchim Leubner bit32 agOtherInfo 686*4e1bc9a0SAchim Leubner ); 687*4e1bc9a0SAchim Leubner 688*4e1bc9a0SAchim Leubner osGLOBAL void 689*4e1bc9a0SAchim Leubner itdssIONoDeviceHandler( 690*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 691*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 692*4e1bc9a0SAchim Leubner bit32 agIOStatus, 693*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 694*4e1bc9a0SAchim Leubner void *agParam, 695*4e1bc9a0SAchim Leubner bit32 agOtherInfo 696*4e1bc9a0SAchim Leubner ); 697*4e1bc9a0SAchim Leubner 698*4e1bc9a0SAchim Leubner #ifdef REMOVED /* removed from spec */ 699*4e1bc9a0SAchim Leubner osGLOBAL void 700*4e1bc9a0SAchim Leubner itdssIllegalParameterHandler( 701*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 702*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 703*4e1bc9a0SAchim Leubner bit32 agIOStatus, 704*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 705*4e1bc9a0SAchim Leubner void *agParam 706*4e1bc9a0SAchim Leubner ); 707*4e1bc9a0SAchim Leubner #endif 708*4e1bc9a0SAchim Leubner 709*4e1bc9a0SAchim Leubner osGLOBAL void 710*4e1bc9a0SAchim Leubner itdssLinkFailureHandler( 711*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 712*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 713*4e1bc9a0SAchim Leubner bit32 agIOStatus, 714*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 715*4e1bc9a0SAchim Leubner void *agParam, 716*4e1bc9a0SAchim Leubner bit32 agOtherInfo 717*4e1bc9a0SAchim Leubner ); 718*4e1bc9a0SAchim Leubner osGLOBAL void 719*4e1bc9a0SAchim Leubner itdssProgErrorHandler( 720*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 721*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 722*4e1bc9a0SAchim Leubner bit32 agIOStatus, 723*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 724*4e1bc9a0SAchim Leubner void *agParam, 725*4e1bc9a0SAchim Leubner bit32 agOtherInfo 726*4e1bc9a0SAchim Leubner ); 727*4e1bc9a0SAchim Leubner osGLOBAL void 728*4e1bc9a0SAchim Leubner itdssXferErrorBreakHandler( 729*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 730*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 731*4e1bc9a0SAchim Leubner bit32 agIOStatus, 732*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 733*4e1bc9a0SAchim Leubner void *agParam, 734*4e1bc9a0SAchim Leubner bit32 agOtherInfo 735*4e1bc9a0SAchim Leubner ); 736*4e1bc9a0SAchim Leubner osGLOBAL void 737*4e1bc9a0SAchim Leubner itdssXferErrorPhyNotReadyHandler( 738*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 739*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 740*4e1bc9a0SAchim Leubner bit32 agIOStatus, 741*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 742*4e1bc9a0SAchim Leubner void *agParam, 743*4e1bc9a0SAchim Leubner bit32 agOtherInfo 744*4e1bc9a0SAchim Leubner ); 745*4e1bc9a0SAchim Leubner osGLOBAL void 746*4e1bc9a0SAchim Leubner itdssOpenCnxErrorProtocolNotSupprotedHandler( 747*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 748*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 749*4e1bc9a0SAchim Leubner bit32 agIOStatus, 750*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 751*4e1bc9a0SAchim Leubner void *agParam, 752*4e1bc9a0SAchim Leubner bit32 agOtherInfo 753*4e1bc9a0SAchim Leubner ); 754*4e1bc9a0SAchim Leubner osGLOBAL void 755*4e1bc9a0SAchim Leubner itdssOpenCnxErrorZoneViolationHandler( 756*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 757*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 758*4e1bc9a0SAchim Leubner bit32 agIOStatus, 759*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 760*4e1bc9a0SAchim Leubner void *agParam, 761*4e1bc9a0SAchim Leubner bit32 agOtherInfo 762*4e1bc9a0SAchim Leubner ); 763*4e1bc9a0SAchim Leubner osGLOBAL void 764*4e1bc9a0SAchim Leubner itdssOpenCnxErrorBreakHandler( 765*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 766*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 767*4e1bc9a0SAchim Leubner bit32 agIOStatus, 768*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 769*4e1bc9a0SAchim Leubner void *agParam, 770*4e1bc9a0SAchim Leubner bit32 agOtherInfo 771*4e1bc9a0SAchim Leubner ); 772*4e1bc9a0SAchim Leubner osGLOBAL void 773*4e1bc9a0SAchim Leubner itdssOpenCnxErrorITNexusLossHandler( 774*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 775*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 776*4e1bc9a0SAchim Leubner bit32 agIOStatus, 777*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 778*4e1bc9a0SAchim Leubner void *agParam, 779*4e1bc9a0SAchim Leubner bit32 agOtherInfo 780*4e1bc9a0SAchim Leubner ); 781*4e1bc9a0SAchim Leubner osGLOBAL void 782*4e1bc9a0SAchim Leubner itdssOpenCnxErrorBadDestinationHandler( 783*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 784*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 785*4e1bc9a0SAchim Leubner bit32 agIOStatus, 786*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 787*4e1bc9a0SAchim Leubner void *agParam, 788*4e1bc9a0SAchim Leubner bit32 agOtherInfo 789*4e1bc9a0SAchim Leubner ); 790*4e1bc9a0SAchim Leubner osGLOBAL void 791*4e1bc9a0SAchim Leubner itdssOpenCnxErrorConnectionRateNotSupportedHandler( 792*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 793*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 794*4e1bc9a0SAchim Leubner bit32 agIOStatus, 795*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 796*4e1bc9a0SAchim Leubner void *agParam, 797*4e1bc9a0SAchim Leubner bit32 agOtherInfo 798*4e1bc9a0SAchim Leubner ); 799*4e1bc9a0SAchim Leubner 800*4e1bc9a0SAchim Leubner osGLOBAL void 801*4e1bc9a0SAchim Leubner itdssOpenCnxErrorSTPResourceBusyHandler( 802*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 803*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 804*4e1bc9a0SAchim Leubner bit32 agIOStatus, 805*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 806*4e1bc9a0SAchim Leubner void *agParam, 807*4e1bc9a0SAchim Leubner bit32 agOtherInfo 808*4e1bc9a0SAchim Leubner ); 809*4e1bc9a0SAchim Leubner osGLOBAL void 810*4e1bc9a0SAchim Leubner itdssOpenCnxErrorWrongDestinationHandler( 811*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 812*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 813*4e1bc9a0SAchim Leubner bit32 agIOStatus, 814*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 815*4e1bc9a0SAchim Leubner void *agParam, 816*4e1bc9a0SAchim Leubner bit32 agOtherInfo 817*4e1bc9a0SAchim Leubner ); 818*4e1bc9a0SAchim Leubner osGLOBAL void 819*4e1bc9a0SAchim Leubner itdssOpenCnxErrorUnknownErrorHandler( 820*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 821*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 822*4e1bc9a0SAchim Leubner bit32 agIOStatus, 823*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 824*4e1bc9a0SAchim Leubner void *agParam, 825*4e1bc9a0SAchim Leubner bit32 agOtherInfo 826*4e1bc9a0SAchim Leubner ); 827*4e1bc9a0SAchim Leubner osGLOBAL void 828*4e1bc9a0SAchim Leubner itdssXferErrorNAKReceivedHandler( 829*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 830*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 831*4e1bc9a0SAchim Leubner bit32 agIOStatus, 832*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 833*4e1bc9a0SAchim Leubner void *agParam, 834*4e1bc9a0SAchim Leubner bit32 agOtherInfo 835*4e1bc9a0SAchim Leubner ); 836*4e1bc9a0SAchim Leubner osGLOBAL void 837*4e1bc9a0SAchim Leubner itdssXferErrorACKNAKTimeoutHandler( 838*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 839*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 840*4e1bc9a0SAchim Leubner bit32 agIOStatus, 841*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 842*4e1bc9a0SAchim Leubner void *agParam, 843*4e1bc9a0SAchim Leubner bit32 agOtherInfo 844*4e1bc9a0SAchim Leubner ); 845*4e1bc9a0SAchim Leubner osGLOBAL void 846*4e1bc9a0SAchim Leubner itdssXferErrorPeerAbortedHandler( 847*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 848*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 849*4e1bc9a0SAchim Leubner bit32 agIOStatus, 850*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 851*4e1bc9a0SAchim Leubner void *agParam, 852*4e1bc9a0SAchim Leubner bit32 agOtherInfo 853*4e1bc9a0SAchim Leubner ); 854*4e1bc9a0SAchim Leubner osGLOBAL void 855*4e1bc9a0SAchim Leubner itdssXferErrorRxFrameHandler( 856*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 857*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 858*4e1bc9a0SAchim Leubner bit32 agIOStatus, 859*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 860*4e1bc9a0SAchim Leubner void *agParam, 861*4e1bc9a0SAchim Leubner bit32 agOtherInfo 862*4e1bc9a0SAchim Leubner ); 863*4e1bc9a0SAchim Leubner osGLOBAL void 864*4e1bc9a0SAchim Leubner itdssXferErrorDMAHandler( 865*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 866*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 867*4e1bc9a0SAchim Leubner bit32 agIOStatus, 868*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 869*4e1bc9a0SAchim Leubner void *agParam, 870*4e1bc9a0SAchim Leubner bit32 agOtherInfo 871*4e1bc9a0SAchim Leubner ); 872*4e1bc9a0SAchim Leubner osGLOBAL void 873*4e1bc9a0SAchim Leubner itdssXferErrorCreditTimeoutHandler( 874*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 875*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 876*4e1bc9a0SAchim Leubner bit32 agIOStatus, 877*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 878*4e1bc9a0SAchim Leubner void *agParam, 879*4e1bc9a0SAchim Leubner bit32 agOtherInfo 880*4e1bc9a0SAchim Leubner ); 881*4e1bc9a0SAchim Leubner 882*4e1bc9a0SAchim Leubner osGLOBAL void 883*4e1bc9a0SAchim Leubner itdssXferErrorCMDIssueACKNAKTimeoutHandler( 884*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 885*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 886*4e1bc9a0SAchim Leubner bit32 agIOStatus, 887*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 888*4e1bc9a0SAchim Leubner void *agParam, 889*4e1bc9a0SAchim Leubner bit32 agOtherInfo 890*4e1bc9a0SAchim Leubner ); 891*4e1bc9a0SAchim Leubner osGLOBAL void 892*4e1bc9a0SAchim Leubner itdssXferErrorCMDIssueBreakBeforeACKNAKHandler( 893*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 894*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 895*4e1bc9a0SAchim Leubner bit32 agIOStatus, 896*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 897*4e1bc9a0SAchim Leubner void *agParam, 898*4e1bc9a0SAchim Leubner bit32 agOtherInfo 899*4e1bc9a0SAchim Leubner ); 900*4e1bc9a0SAchim Leubner osGLOBAL void 901*4e1bc9a0SAchim Leubner itdssXferErrorCMDIssuePhyDownBeforeACKNAKHandler( 902*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 903*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 904*4e1bc9a0SAchim Leubner bit32 agIOStatus, 905*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 906*4e1bc9a0SAchim Leubner void *agParam, 907*4e1bc9a0SAchim Leubner bit32 agOtherInfo 908*4e1bc9a0SAchim Leubner ); 909*4e1bc9a0SAchim Leubner osGLOBAL void 910*4e1bc9a0SAchim Leubner itdssXferErrorDisruptedPhyDownHandler( 911*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 912*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 913*4e1bc9a0SAchim Leubner bit32 agIOStatus, 914*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 915*4e1bc9a0SAchim Leubner void *agParam, 916*4e1bc9a0SAchim Leubner bit32 agOtherInfo 917*4e1bc9a0SAchim Leubner ); 918*4e1bc9a0SAchim Leubner osGLOBAL void 919*4e1bc9a0SAchim Leubner itdssXferErrorOffsetMismatchHandler( 920*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 921*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 922*4e1bc9a0SAchim Leubner bit32 agIOStatus, 923*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 924*4e1bc9a0SAchim Leubner void *agParam, 925*4e1bc9a0SAchim Leubner bit32 agOtherInfo 926*4e1bc9a0SAchim Leubner ); 927*4e1bc9a0SAchim Leubner osGLOBAL void 928*4e1bc9a0SAchim Leubner itdssXferErrorXferZeroDataLenHandler( 929*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 930*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 931*4e1bc9a0SAchim Leubner bit32 agIOStatus, 932*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 933*4e1bc9a0SAchim Leubner void *agParam, 934*4e1bc9a0SAchim Leubner bit32 agOtherInfo 935*4e1bc9a0SAchim Leubner ); 936*4e1bc9a0SAchim Leubner 937*4e1bc9a0SAchim Leubner osGLOBAL void 938*4e1bc9a0SAchim Leubner itdssXferOpenRetryTimeoutHandler( 939*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 940*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 941*4e1bc9a0SAchim Leubner bit32 agIOStatus, 942*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 943*4e1bc9a0SAchim Leubner void *agParam, 944*4e1bc9a0SAchim Leubner bit32 agOtherInfo 945*4e1bc9a0SAchim Leubner ); 946*4e1bc9a0SAchim Leubner 947*4e1bc9a0SAchim Leubner osGLOBAL void 948*4e1bc9a0SAchim Leubner itdssPortInResetHandler( 949*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 950*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 951*4e1bc9a0SAchim Leubner bit32 agIOStatus, 952*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 953*4e1bc9a0SAchim Leubner void *agParam, 954*4e1bc9a0SAchim Leubner bit32 agOtherInfo 955*4e1bc9a0SAchim Leubner ); 956*4e1bc9a0SAchim Leubner 957*4e1bc9a0SAchim Leubner osGLOBAL void 958*4e1bc9a0SAchim Leubner itdssDsNonOperationalHandler( 959*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 960*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 961*4e1bc9a0SAchim Leubner bit32 agIOStatus, 962*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 963*4e1bc9a0SAchim Leubner void *agParam, 964*4e1bc9a0SAchim Leubner bit32 agOtherInfo 965*4e1bc9a0SAchim Leubner ); 966*4e1bc9a0SAchim Leubner osGLOBAL void 967*4e1bc9a0SAchim Leubner itdssDsInRecoveryHandler( 968*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 969*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 970*4e1bc9a0SAchim Leubner bit32 agIOStatus, 971*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 972*4e1bc9a0SAchim Leubner void *agParam, 973*4e1bc9a0SAchim Leubner bit32 agOtherInfo 974*4e1bc9a0SAchim Leubner ); 975*4e1bc9a0SAchim Leubner osGLOBAL void 976*4e1bc9a0SAchim Leubner itdssTmTagNotFoundHandler( 977*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 978*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 979*4e1bc9a0SAchim Leubner bit32 agIOStatus, 980*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 981*4e1bc9a0SAchim Leubner void *agParam, 982*4e1bc9a0SAchim Leubner bit32 agOtherInfo 983*4e1bc9a0SAchim Leubner ); 984*4e1bc9a0SAchim Leubner osGLOBAL void 985*4e1bc9a0SAchim Leubner itdssSSPExtIUZeroLenHandler( 986*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 987*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 988*4e1bc9a0SAchim Leubner bit32 agIOStatus, 989*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 990*4e1bc9a0SAchim Leubner void *agParam, 991*4e1bc9a0SAchim Leubner bit32 agOtherInfo 992*4e1bc9a0SAchim Leubner ); 993*4e1bc9a0SAchim Leubner osGLOBAL void 994*4e1bc9a0SAchim Leubner itdssXferErrorUnexpectedPhaseHandler( 995*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 996*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 997*4e1bc9a0SAchim Leubner bit32 agIOStatus, 998*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 999*4e1bc9a0SAchim Leubner void *agParam, 1000*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1001*4e1bc9a0SAchim Leubner ); 1002*4e1bc9a0SAchim Leubner 1003*4e1bc9a0SAchim Leubner #ifdef REMOVED 1004*4e1bc9a0SAchim Leubner osGLOBAL void 1005*4e1bc9a0SAchim Leubner itdssIOUnderFlowWithChkConditionHandler( 1006*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1007*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1008*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1009*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1010*4e1bc9a0SAchim Leubner void *agParam 1011*4e1bc9a0SAchim Leubner ); 1012*4e1bc9a0SAchim Leubner #endif 1013*4e1bc9a0SAchim Leubner 1014*4e1bc9a0SAchim Leubner osGLOBAL void 1015*4e1bc9a0SAchim Leubner itdssEncryptionHandler ( 1016*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1017*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1018*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1019*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1020*4e1bc9a0SAchim Leubner void *agParam, 1021*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1022*4e1bc9a0SAchim Leubner ); 1023*4e1bc9a0SAchim Leubner 1024*4e1bc9a0SAchim Leubner osGLOBAL void 1025*4e1bc9a0SAchim Leubner itdssXferOpenRetryBackoffThresholdReachedHandler( 1026*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1027*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1028*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1029*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1030*4e1bc9a0SAchim Leubner void *agParam, 1031*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1032*4e1bc9a0SAchim Leubner ); 1033*4e1bc9a0SAchim Leubner 1034*4e1bc9a0SAchim Leubner osGLOBAL void 1035*4e1bc9a0SAchim Leubner itdssOpenCnxErrorItNexusLossOpenTmoHandler( 1036*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1037*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1038*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1039*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1040*4e1bc9a0SAchim Leubner void *agParam, 1041*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1042*4e1bc9a0SAchim Leubner ); 1043*4e1bc9a0SAchim Leubner osGLOBAL void 1044*4e1bc9a0SAchim Leubner itdssOpenCnxErrorItNexusLossNoDestHandler( 1045*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1046*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1047*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1048*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1049*4e1bc9a0SAchim Leubner void *agParam, 1050*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1051*4e1bc9a0SAchim Leubner ); 1052*4e1bc9a0SAchim Leubner osGLOBAL void 1053*4e1bc9a0SAchim Leubner itdssOpenCnxErrorItNexusLossOpenCollideHandler( 1054*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1055*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1056*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1057*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1058*4e1bc9a0SAchim Leubner void *agParam, 1059*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1060*4e1bc9a0SAchim Leubner ); 1061*4e1bc9a0SAchim Leubner osGLOBAL void 1062*4e1bc9a0SAchim Leubner itdssOpenCnxErrorItNexusLossOpenPathwayBlockedHandler( 1063*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1064*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1065*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1066*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1067*4e1bc9a0SAchim Leubner void *agParam, 1068*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1069*4e1bc9a0SAchim Leubner ); 1070*4e1bc9a0SAchim Leubner osGLOBAL void 1071*4e1bc9a0SAchim Leubner itdssDifHandler( 1072*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1073*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1074*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1075*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1076*4e1bc9a0SAchim Leubner void *agParam, 1077*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1078*4e1bc9a0SAchim Leubner ); 1079*4e1bc9a0SAchim Leubner 1080*4e1bc9a0SAchim Leubner osGLOBAL void 1081*4e1bc9a0SAchim Leubner itdssIOResourceUnavailableHandler( 1082*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1083*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1084*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1085*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1086*4e1bc9a0SAchim Leubner void *agParam, 1087*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1088*4e1bc9a0SAchim Leubner ); 1089*4e1bc9a0SAchim Leubner 1090*4e1bc9a0SAchim Leubner osGLOBAL void 1091*4e1bc9a0SAchim Leubner itdssIORQEBusyFullHandler( 1092*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1093*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1094*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1095*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1096*4e1bc9a0SAchim Leubner void *agParam, 1097*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1098*4e1bc9a0SAchim Leubner ); 1099*4e1bc9a0SAchim Leubner 1100*4e1bc9a0SAchim Leubner osGLOBAL void 1101*4e1bc9a0SAchim Leubner itdssXferErrorInvalidSSPRspFrameHandler( 1102*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1103*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1104*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1105*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1106*4e1bc9a0SAchim Leubner void *agParam, 1107*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1108*4e1bc9a0SAchim Leubner ); 1109*4e1bc9a0SAchim Leubner 1110*4e1bc9a0SAchim Leubner osGLOBAL void 1111*4e1bc9a0SAchim Leubner itdssXferErrorEOBDataOverrunHandler( 1112*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1113*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1114*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1115*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1116*4e1bc9a0SAchim Leubner void *agParam, 1117*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1118*4e1bc9a0SAchim Leubner ); 1119*4e1bc9a0SAchim Leubner 1120*4e1bc9a0SAchim Leubner osGLOBAL void 1121*4e1bc9a0SAchim Leubner itdssOpenCnxErrorOpenPreemptedHandler( 1122*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1123*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1124*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1125*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1126*4e1bc9a0SAchim Leubner void *agParam, 1127*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1128*4e1bc9a0SAchim Leubner ); 1129*4e1bc9a0SAchim Leubner 1130*4e1bc9a0SAchim Leubner /* default handler */ 1131*4e1bc9a0SAchim Leubner osGLOBAL void 1132*4e1bc9a0SAchim Leubner itdssIODefaultHandler ( 1133*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1134*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1135*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1136*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1137*4e1bc9a0SAchim Leubner void *agParam, 1138*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1139*4e1bc9a0SAchim Leubner ); 1140*4e1bc9a0SAchim Leubner osGLOBAL void 1141*4e1bc9a0SAchim Leubner itdssIOForDebugging1Completed( 1142*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1143*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1144*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1145*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1146*4e1bc9a0SAchim Leubner void *agParam, 1147*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1148*4e1bc9a0SAchim Leubner ); 1149*4e1bc9a0SAchim Leubner 1150*4e1bc9a0SAchim Leubner osGLOBAL void 1151*4e1bc9a0SAchim Leubner itdssIOForDebugging2Completed( 1152*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1153*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1154*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1155*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1156*4e1bc9a0SAchim Leubner void *agParam, 1157*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1158*4e1bc9a0SAchim Leubner ); 1159*4e1bc9a0SAchim Leubner 1160*4e1bc9a0SAchim Leubner osGLOBAL void 1161*4e1bc9a0SAchim Leubner itdssIOForDebugging3Completed( 1162*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1163*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1164*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1165*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1166*4e1bc9a0SAchim Leubner void *agParam, 1167*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1168*4e1bc9a0SAchim Leubner ); 1169*4e1bc9a0SAchim Leubner 1170*4e1bc9a0SAchim Leubner osGLOBAL void 1171*4e1bc9a0SAchim Leubner itdssInitDiscoveryModule ( 1172*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 1173*4e1bc9a0SAchim Leubner ); 1174*4e1bc9a0SAchim Leubner 1175*4e1bc9a0SAchim Leubner osGLOBAL void 1176*4e1bc9a0SAchim Leubner itdssGetResource ( 1177*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1178*4e1bc9a0SAchim Leubner tiInitiatorResource_t *initiatorResource 1179*4e1bc9a0SAchim Leubner ); 1180*4e1bc9a0SAchim Leubner 1181*4e1bc9a0SAchim Leubner 1182*4e1bc9a0SAchim Leubner osGLOBAL void 1183*4e1bc9a0SAchim Leubner itdssGetOperatingOptionParams( 1184*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1185*4e1bc9a0SAchim Leubner itdssOperatingOption_t *OperatingOption 1186*4e1bc9a0SAchim Leubner ); 1187*4e1bc9a0SAchim Leubner 1188*4e1bc9a0SAchim Leubner 1189*4e1bc9a0SAchim Leubner osGLOBAL FORCEINLINE bit32 1190*4e1bc9a0SAchim Leubner itdssIOPrepareSGL( 1191*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1192*4e1bc9a0SAchim Leubner tdIORequestBody_t *IORequestBody, 1193*4e1bc9a0SAchim Leubner tiSgl_t *tiSgl1, 1194*4e1bc9a0SAchim Leubner void *sglVirtualAddr 1195*4e1bc9a0SAchim Leubner ); 1196*4e1bc9a0SAchim Leubner 1197*4e1bc9a0SAchim Leubner #ifdef FDS_SM 1198*4e1bc9a0SAchim Leubner osGLOBAL void 1199*4e1bc9a0SAchim Leubner smReportRemoval( 1200*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1201*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1202*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1203*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1204*4e1bc9a0SAchim Leubner ); 1205*4e1bc9a0SAchim Leubner osGLOBAL void 1206*4e1bc9a0SAchim Leubner smReportRemovalDirect( 1207*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1208*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1209*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1210*4e1bc9a0SAchim Leubner ); 1211*4e1bc9a0SAchim Leubner osGLOBAL void 1212*4e1bc9a0SAchim Leubner smHandleDirect( 1213*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1214*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1215*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1216*4e1bc9a0SAchim Leubner void *IDdata 1217*4e1bc9a0SAchim Leubner ); 1218*4e1bc9a0SAchim Leubner 1219*4e1bc9a0SAchim Leubner osGLOBAL void 1220*4e1bc9a0SAchim Leubner ossaSATAIDAbortCB( 1221*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1222*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1223*4e1bc9a0SAchim Leubner bit32 flag, 1224*4e1bc9a0SAchim Leubner bit32 status 1225*4e1bc9a0SAchim Leubner ); 1226*4e1bc9a0SAchim Leubner 1227*4e1bc9a0SAchim Leubner osGLOBAL void 1228*4e1bc9a0SAchim Leubner ossaIniSetDeviceInfoCB( 1229*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1230*4e1bc9a0SAchim Leubner agsaContext_t *agContext, 1231*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 1232*4e1bc9a0SAchim Leubner bit32 status, 1233*4e1bc9a0SAchim Leubner bit32 option, 1234*4e1bc9a0SAchim Leubner bit32 param 1235*4e1bc9a0SAchim Leubner ); 1236*4e1bc9a0SAchim Leubner 1237*4e1bc9a0SAchim Leubner #endif /* FDS_SM */ 1238*4e1bc9a0SAchim Leubner 1239*4e1bc9a0SAchim Leubner #endif /* INITIATOR_DRIVER */ 1240*4e1bc9a0SAchim Leubner 1241*4e1bc9a0SAchim Leubner #ifdef TARGET_DRIVER 1242*4e1bc9a0SAchim Leubner /***************************************************************************** 1243*4e1bc9a0SAchim Leubner * 1244*4e1bc9a0SAchim Leubner * SAS Target only PROTOTYPES (ttdproto.h) 1245*4e1bc9a0SAchim Leubner * 1246*4e1bc9a0SAchim Leubner *****************************************************************************/ 1247*4e1bc9a0SAchim Leubner osGLOBAL bit32 1248*4e1bc9a0SAchim Leubner ttdssInit( 1249*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1250*4e1bc9a0SAchim Leubner tiTargetResource_t *targetResource, 1251*4e1bc9a0SAchim Leubner tiTdSharedMem_t *tdSharedMem 1252*4e1bc9a0SAchim Leubner ); 1253*4e1bc9a0SAchim Leubner 1254*4e1bc9a0SAchim Leubner osGLOBAL void 1255*4e1bc9a0SAchim Leubner ttdssGetResource ( 1256*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1257*4e1bc9a0SAchim Leubner tiTargetResource_t *targetResource 1258*4e1bc9a0SAchim Leubner ); 1259*4e1bc9a0SAchim Leubner 1260*4e1bc9a0SAchim Leubner osGLOBAL void 1261*4e1bc9a0SAchim Leubner ttdssGetTargetParams( 1262*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 1263*4e1bc9a0SAchim Leubner ); 1264*4e1bc9a0SAchim Leubner 1265*4e1bc9a0SAchim Leubner osGLOBAL void 1266*4e1bc9a0SAchim Leubner ttdssGetOperatingOptionParams( 1267*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1268*4e1bc9a0SAchim Leubner ttdssOperatingOption_t *OperatingOption 1269*4e1bc9a0SAchim Leubner ); 1270*4e1bc9a0SAchim Leubner 1271*4e1bc9a0SAchim Leubner osGLOBAL agBOOLEAN 1272*4e1bc9a0SAchim Leubner ttdsaXchgInit( 1273*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1274*4e1bc9a0SAchim Leubner ttdsaXchgData_t *ttdsaXchgData, 1275*4e1bc9a0SAchim Leubner tiTargetMem_t *tgtMem, 1276*4e1bc9a0SAchim Leubner bit32 maxNumXchgs 1277*4e1bc9a0SAchim Leubner ); 1278*4e1bc9a0SAchim Leubner 1279*4e1bc9a0SAchim Leubner osGLOBAL void 1280*4e1bc9a0SAchim Leubner ttdsaXchgLinkInit( 1281*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1282*4e1bc9a0SAchim Leubner ttdsaXchg_t *ttdsaXchg 1283*4e1bc9a0SAchim Leubner ); 1284*4e1bc9a0SAchim Leubner 1285*4e1bc9a0SAchim Leubner 1286*4e1bc9a0SAchim Leubner osGLOBAL void 1287*4e1bc9a0SAchim Leubner ttdsaXchgFreeStruct( 1288*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1289*4e1bc9a0SAchim Leubner ttdsaXchg_t *ttdsaXchg 1290*4e1bc9a0SAchim Leubner ); 1291*4e1bc9a0SAchim Leubner osGLOBAL void 1292*4e1bc9a0SAchim Leubner ttdsaSSPReqReceived( 1293*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1294*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 1295*4e1bc9a0SAchim Leubner agsaFrameHandle_t agFrameHandle, 1296*4e1bc9a0SAchim Leubner bit32 agInitiatorTag, 1297*4e1bc9a0SAchim Leubner bit32 parameter, 1298*4e1bc9a0SAchim Leubner bit32 agFrameLen 1299*4e1bc9a0SAchim Leubner ); 1300*4e1bc9a0SAchim Leubner 1301*4e1bc9a0SAchim Leubner osGLOBAL ttdsaXchg_t 1302*4e1bc9a0SAchim Leubner *ttdsaXchgGetStruct( 1303*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot 1304*4e1bc9a0SAchim Leubner ); 1305*4e1bc9a0SAchim Leubner osGLOBAL void 1306*4e1bc9a0SAchim Leubner ttdsaDumpallXchg(tiRoot_t *tiRoot); 1307*4e1bc9a0SAchim Leubner 1308*4e1bc9a0SAchim Leubner osGLOBAL void 1309*4e1bc9a0SAchim Leubner tdsaProcessCDB( 1310*4e1bc9a0SAchim Leubner agsaSSPCmdInfoUnit_t *cmdIU, 1311*4e1bc9a0SAchim Leubner ttdsaXchg_t *ttdsaXchg 1312*4e1bc9a0SAchim Leubner ); 1313*4e1bc9a0SAchim Leubner 1314*4e1bc9a0SAchim Leubner osGLOBAL bit32 1315*4e1bc9a0SAchim Leubner ttdssIOPrepareSGL( 1316*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1317*4e1bc9a0SAchim Leubner tdIORequestBody_t *tdIORequestBody, 1318*4e1bc9a0SAchim Leubner tiSgl_t *tiSgl1, 1319*4e1bc9a0SAchim Leubner tiSgl_t *tiSgl2, 1320*4e1bc9a0SAchim Leubner void *sglVirtualAddr); 1321*4e1bc9a0SAchim Leubner 1322*4e1bc9a0SAchim Leubner osGLOBAL void 1323*4e1bc9a0SAchim Leubner ttdsaIOCompleted( 1324*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1325*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1326*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1327*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1328*4e1bc9a0SAchim Leubner agsaFrameHandle_t agFrameHandle, 1329*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1330*4e1bc9a0SAchim Leubner ); 1331*4e1bc9a0SAchim Leubner 1332*4e1bc9a0SAchim Leubner osGLOBAL void 1333*4e1bc9a0SAchim Leubner ttdsaTMProcess( 1334*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1335*4e1bc9a0SAchim Leubner ttdsaXchg_t *ttdsaXchg 1336*4e1bc9a0SAchim Leubner ); 1337*4e1bc9a0SAchim Leubner 1338*4e1bc9a0SAchim Leubner osGLOBAL void 1339*4e1bc9a0SAchim Leubner ttdsaSMPReqReceived( 1340*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1341*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 1342*4e1bc9a0SAchim Leubner agsaSMPFrameHeader_t *agFrameHeader, 1343*4e1bc9a0SAchim Leubner agsaFrameHandle_t agFrameHandle, 1344*4e1bc9a0SAchim Leubner bit32 agFrameLength, 1345*4e1bc9a0SAchim Leubner bit32 phyId 1346*4e1bc9a0SAchim Leubner ); 1347*4e1bc9a0SAchim Leubner osGLOBAL void 1348*4e1bc9a0SAchim Leubner ttdsaSMPCompleted( 1349*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1350*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1351*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1352*4e1bc9a0SAchim Leubner //agsaSMPFrameHeader_t *agFrameHeader, (TP) 1353*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1354*4e1bc9a0SAchim Leubner agsaFrameHandle_t agFrameHandle 1355*4e1bc9a0SAchim Leubner ); 1356*4e1bc9a0SAchim Leubner osGLOBAL bit32 1357*4e1bc9a0SAchim Leubner ttdsaSendResp( 1358*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1359*4e1bc9a0SAchim Leubner ttdsaXchg_t *ttdsaXchg 1360*4e1bc9a0SAchim Leubner ); 1361*4e1bc9a0SAchim Leubner 1362*4e1bc9a0SAchim Leubner osGLOBAL void 1363*4e1bc9a0SAchim Leubner ttdssReportRemovals( 1364*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1365*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1366*4e1bc9a0SAchim Leubner bit32 flag 1367*4e1bc9a0SAchim Leubner ); 1368*4e1bc9a0SAchim Leubner 1369*4e1bc9a0SAchim Leubner 1370*4e1bc9a0SAchim Leubner osGLOBAL void 1371*4e1bc9a0SAchim Leubner ttdsaAbortAll( 1372*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1373*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1374*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1375*4e1bc9a0SAchim Leubner ); 1376*4e1bc9a0SAchim Leubner 1377*4e1bc9a0SAchim Leubner osGLOBAL void 1378*4e1bc9a0SAchim Leubner ttdssIOAbortedHandler( 1379*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1380*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1381*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1382*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1383*4e1bc9a0SAchim Leubner void *agParam, 1384*4e1bc9a0SAchim Leubner bit32 agOtherInfo 1385*4e1bc9a0SAchim Leubner ); 1386*4e1bc9a0SAchim Leubner 1387*4e1bc9a0SAchim Leubner #endif /* TARGET_DRIVER */ 1388*4e1bc9a0SAchim Leubner 1389*4e1bc9a0SAchim Leubner 1390*4e1bc9a0SAchim Leubner 1391*4e1bc9a0SAchim Leubner /***************************************************************************** 1392*4e1bc9a0SAchim Leubner * 1393*4e1bc9a0SAchim Leubner * For debugging only 1394*4e1bc9a0SAchim Leubner * 1395*4e1bc9a0SAchim Leubner *****************************************************************************/ 1396*4e1bc9a0SAchim Leubner osGLOBAL void 1397*4e1bc9a0SAchim Leubner tdsaPrintSwConfig( 1398*4e1bc9a0SAchim Leubner agsaSwConfig_t *SwConfig 1399*4e1bc9a0SAchim Leubner ); 1400*4e1bc9a0SAchim Leubner 1401*4e1bc9a0SAchim Leubner osGLOBAL void 1402*4e1bc9a0SAchim Leubner tdsaPrintHwConfig( 1403*4e1bc9a0SAchim Leubner agsaHwConfig_t *HwConfig 1404*4e1bc9a0SAchim Leubner ); 1405*4e1bc9a0SAchim Leubner osGLOBAL void 1406*4e1bc9a0SAchim Leubner tdssPrintSASIdentify( 1407*4e1bc9a0SAchim Leubner agsaSASIdentify_t *id 1408*4e1bc9a0SAchim Leubner ); 1409*4e1bc9a0SAchim Leubner osGLOBAL void 1410*4e1bc9a0SAchim Leubner print_tdlist_flink(tdList_t *hdr, int type, int flag); 1411*4e1bc9a0SAchim Leubner 1412*4e1bc9a0SAchim Leubner osGLOBAL void 1413*4e1bc9a0SAchim Leubner print_tdlist_blink(tdList_t *hdr, int flag); 1414*4e1bc9a0SAchim Leubner 1415*4e1bc9a0SAchim Leubner osGLOBAL void 1416*4e1bc9a0SAchim Leubner tdhexdump(const char *ptitle, bit8 *pbuf, int len); 1417*4e1bc9a0SAchim Leubner 1418*4e1bc9a0SAchim Leubner 1419*4e1bc9a0SAchim Leubner /***************************************************************************** 1420*4e1bc9a0SAchim Leubner * 1421*4e1bc9a0SAchim Leubner * SAT only PROTOTYPE 1422*4e1bc9a0SAchim Leubner * 1423*4e1bc9a0SAchim Leubner *****************************************************************************/ 1424*4e1bc9a0SAchim Leubner 1425*4e1bc9a0SAchim Leubner #ifdef SATA_ENABLE 1426*4e1bc9a0SAchim Leubner 1427*4e1bc9a0SAchim Leubner /***************************************************************************** 1428*4e1bc9a0SAchim Leubner *! \brief satIOStart 1429*4e1bc9a0SAchim Leubner * 1430*4e1bc9a0SAchim Leubner * This routine is called to initiate a new SCSI request to SATL. 1431*4e1bc9a0SAchim Leubner * 1432*4e1bc9a0SAchim Leubner * \param tiRoot: Pointer to TISA initiator driver/port instance. 1433*4e1bc9a0SAchim Leubner * \param tiIORequest: Pointer to TISA I/O request context for this I/O. 1434*4e1bc9a0SAchim Leubner * \param tiDeviceHandle: Pointer to TISA device handle for this I/O. 1435*4e1bc9a0SAchim Leubner * \param tiScsiRequest: Pointer to TISA SCSI I/O request and SGL list. 1436*4e1bc9a0SAchim Leubner * \param satIOContext_t: Pointer to the SAT IO Context 1437*4e1bc9a0SAchim Leubner * 1438*4e1bc9a0SAchim Leubner * \return: 1439*4e1bc9a0SAchim Leubner * 1440*4e1bc9a0SAchim Leubner * \e tiSuccess: I/O request successfully initiated. 1441*4e1bc9a0SAchim Leubner * \e tiBusy: No resources available, try again later. 1442*4e1bc9a0SAchim Leubner * \e tiIONoDevice: Invalid device handle. 1443*4e1bc9a0SAchim Leubner * \e tiError: Other errors that prevent the I/O request to be started. 1444*4e1bc9a0SAchim Leubner * 1445*4e1bc9a0SAchim Leubner * 1446*4e1bc9a0SAchim Leubner *****************************************************************************/ 1447*4e1bc9a0SAchim Leubner 1448*4e1bc9a0SAchim Leubner GLOBAL bit32 satIOStart( 1449*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1450*4e1bc9a0SAchim Leubner tiIORequest_t *tiIORequest, 1451*4e1bc9a0SAchim Leubner tiDeviceHandle_t *tiDeviceHandle, 1452*4e1bc9a0SAchim Leubner tiScsiInitiatorRequest_t *tiScsiRequest, 1453*4e1bc9a0SAchim Leubner satIOContext_t *satIOContext 1454*4e1bc9a0SAchim Leubner ); 1455*4e1bc9a0SAchim Leubner 1456*4e1bc9a0SAchim Leubner /***************************************************************************** 1457*4e1bc9a0SAchim Leubner *! \brief satIOAbort 1458*4e1bc9a0SAchim Leubner * 1459*4e1bc9a0SAchim Leubner * This routine is called to initiate a I/O abort to SATL. 1460*4e1bc9a0SAchim Leubner * This routine is independent of HW/LL API. 1461*4e1bc9a0SAchim Leubner * 1462*4e1bc9a0SAchim Leubner * \param tiRoot: Pointer to TISA initiator driver/port instance. 1463*4e1bc9a0SAchim Leubner * \param taskTag: Pointer to TISA I/O request context/tag to be aborted. 1464*4e1bc9a0SAchim Leubner * 1465*4e1bc9a0SAchim Leubner * \return: 1466*4e1bc9a0SAchim Leubner * 1467*4e1bc9a0SAchim Leubner * \e tiSuccess: I/O request successfully initiated. 1468*4e1bc9a0SAchim Leubner * \e tiBusy: No resources available, try again later. 1469*4e1bc9a0SAchim Leubner * \e tiError: Other errors that prevent the I/O request to be started. 1470*4e1bc9a0SAchim Leubner * 1471*4e1bc9a0SAchim Leubner * 1472*4e1bc9a0SAchim Leubner *****************************************************************************/ 1473*4e1bc9a0SAchim Leubner 1474*4e1bc9a0SAchim Leubner GLOBAL bit32 satIOAbort( 1475*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1476*4e1bc9a0SAchim Leubner tiIORequest_t *taskTag ); 1477*4e1bc9a0SAchim Leubner 1478*4e1bc9a0SAchim Leubner 1479*4e1bc9a0SAchim Leubner /***************************************************************************** 1480*4e1bc9a0SAchim Leubner *! \brief satTM 1481*4e1bc9a0SAchim Leubner * 1482*4e1bc9a0SAchim Leubner * This routine is called to initiate a TM request to SATL. 1483*4e1bc9a0SAchim Leubner * This routine is independent of HW/LL API. 1484*4e1bc9a0SAchim Leubner * 1485*4e1bc9a0SAchim Leubner * \param tiRoot: Pointer to TISA initiator driver/port instance. 1486*4e1bc9a0SAchim Leubner * \param tiDeviceHandle: Pointer to TISA device handle for this I/O. 1487*4e1bc9a0SAchim Leubner * \param task: SAM-3 task management request. 1488*4e1bc9a0SAchim Leubner * \param lun: Pointer to LUN. 1489*4e1bc9a0SAchim Leubner * \param taskTag: Pointer to the associated task where the TM 1490*4e1bc9a0SAchim Leubner * command is to be applied. 1491*4e1bc9a0SAchim Leubner * \param currentTaskTag: Pointer to tag/context for this TM request. 1492*4e1bc9a0SAchim Leubner * 1493*4e1bc9a0SAchim Leubner * \return: 1494*4e1bc9a0SAchim Leubner * 1495*4e1bc9a0SAchim Leubner * \e tiSuccess: I/O request successfully initiated. 1496*4e1bc9a0SAchim Leubner * \e tiBusy: No resources available, try again later. 1497*4e1bc9a0SAchim Leubner * \e tiIONoDevice: Invalid device handle. 1498*4e1bc9a0SAchim Leubner * \e tiError: Other errors that prevent the I/O request to be started. 1499*4e1bc9a0SAchim Leubner * 1500*4e1bc9a0SAchim Leubner * 1501*4e1bc9a0SAchim Leubner *****************************************************************************/ 1502*4e1bc9a0SAchim Leubner 1503*4e1bc9a0SAchim Leubner osGLOBAL bit32 satTM( 1504*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1505*4e1bc9a0SAchim Leubner tiDeviceHandle_t *tiDeviceHandle, 1506*4e1bc9a0SAchim Leubner bit32 task, 1507*4e1bc9a0SAchim Leubner tiLUN_t *lun, 1508*4e1bc9a0SAchim Leubner tiIORequest_t *taskTag, 1509*4e1bc9a0SAchim Leubner tiIORequest_t *currentTaskTag, 1510*4e1bc9a0SAchim Leubner tdIORequestBody_t *tiRequestBody, 1511*4e1bc9a0SAchim Leubner bit32 NotifyOS 1512*4e1bc9a0SAchim Leubner ); 1513*4e1bc9a0SAchim Leubner 1514*4e1bc9a0SAchim Leubner 1515*4e1bc9a0SAchim Leubner #endif /* SAT only */ 1516*4e1bc9a0SAchim Leubner 1517*4e1bc9a0SAchim Leubner #ifdef INITIATOR_DRIVER 1518*4e1bc9a0SAchim Leubner #ifdef TD_DISCOVER 1519*4e1bc9a0SAchim Leubner 1520*4e1bc9a0SAchim Leubner osGLOBAL void 1521*4e1bc9a0SAchim Leubner tdsaExpanderInit( 1522*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 1523*4e1bc9a0SAchim Leubner ); 1524*4e1bc9a0SAchim Leubner 1525*4e1bc9a0SAchim Leubner osGLOBAL bit32 1526*4e1bc9a0SAchim Leubner tdsaDiscover( 1527*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1528*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1529*4e1bc9a0SAchim Leubner bit32 type, 1530*4e1bc9a0SAchim Leubner bit32 option 1531*4e1bc9a0SAchim Leubner ); 1532*4e1bc9a0SAchim Leubner 1533*4e1bc9a0SAchim Leubner osGLOBAL bit32 1534*4e1bc9a0SAchim Leubner tdsaSASFullDiscover( 1535*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1536*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1537*4e1bc9a0SAchim Leubner ); 1538*4e1bc9a0SAchim Leubner 1539*4e1bc9a0SAchim Leubner osGLOBAL bit32 1540*4e1bc9a0SAchim Leubner tdsaSATAFullDiscover( 1541*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1542*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1543*4e1bc9a0SAchim Leubner ); 1544*4e1bc9a0SAchim Leubner osGLOBAL bit32 1545*4e1bc9a0SAchim Leubner tdsaSASIncrementalDiscover( 1546*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1547*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1548*4e1bc9a0SAchim Leubner ); 1549*4e1bc9a0SAchim Leubner 1550*4e1bc9a0SAchim Leubner osGLOBAL bit32 1551*4e1bc9a0SAchim Leubner tdsaSATAIncrementalDiscover( 1552*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1553*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1554*4e1bc9a0SAchim Leubner ); 1555*4e1bc9a0SAchim Leubner 1556*4e1bc9a0SAchim Leubner osGLOBAL void 1557*4e1bc9a0SAchim Leubner tdsaSASUpStreamDiscoverStart( 1558*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1559*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1560*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1561*4e1bc9a0SAchim Leubner ); 1562*4e1bc9a0SAchim Leubner 1563*4e1bc9a0SAchim Leubner osGLOBAL void 1564*4e1bc9a0SAchim Leubner tdsaSASUpStreamDiscovering( 1565*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1566*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1567*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1568*4e1bc9a0SAchim Leubner ); 1569*4e1bc9a0SAchim Leubner 1570*4e1bc9a0SAchim Leubner 1571*4e1bc9a0SAchim Leubner osGLOBAL void 1572*4e1bc9a0SAchim Leubner tdsaSASDownStreamDiscoverStart( 1573*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1574*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1575*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1576*4e1bc9a0SAchim Leubner ); 1577*4e1bc9a0SAchim Leubner 1578*4e1bc9a0SAchim Leubner osGLOBAL void 1579*4e1bc9a0SAchim Leubner tdsaSASDownStreamDiscovering( 1580*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1581*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1582*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1583*4e1bc9a0SAchim Leubner ); 1584*4e1bc9a0SAchim Leubner 1585*4e1bc9a0SAchim Leubner osGLOBAL void 1586*4e1bc9a0SAchim Leubner tdsaSASDiscoverDone( 1587*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1588*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1589*4e1bc9a0SAchim Leubner bit32 flag 1590*4e1bc9a0SAchim Leubner ); 1591*4e1bc9a0SAchim Leubner 1592*4e1bc9a0SAchim Leubner osGLOBAL void 1593*4e1bc9a0SAchim Leubner tdsaSATADiscoverDone( 1594*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1595*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1596*4e1bc9a0SAchim Leubner bit32 flag 1597*4e1bc9a0SAchim Leubner ); 1598*4e1bc9a0SAchim Leubner 1599*4e1bc9a0SAchim Leubner osGLOBAL void 1600*4e1bc9a0SAchim Leubner tdsaAckBC( 1601*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1602*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1603*4e1bc9a0SAchim Leubner ); 1604*4e1bc9a0SAchim Leubner 1605*4e1bc9a0SAchim Leubner osGLOBAL void 1606*4e1bc9a0SAchim Leubner tdsaDiscoveryResetProcessed( 1607*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1608*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1609*4e1bc9a0SAchim Leubner ); 1610*4e1bc9a0SAchim Leubner 1611*4e1bc9a0SAchim Leubner 1612*4e1bc9a0SAchim Leubner 1613*4e1bc9a0SAchim Leubner osGLOBAL void 1614*4e1bc9a0SAchim Leubner tdsaSASUpStreamDiscoverExpanderPhy( 1615*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1616*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1617*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 1618*4e1bc9a0SAchim Leubner smpRespDiscover_t *pDiscoverResp 1619*4e1bc9a0SAchim Leubner ); 1620*4e1bc9a0SAchim Leubner osGLOBAL tdsaExpander_t * 1621*4e1bc9a0SAchim Leubner tdsaFindUpStreamConfigurableExp(tiRoot_t *tiRoot, 1622*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander); 1623*4e1bc9a0SAchim Leubner 1624*4e1bc9a0SAchim Leubner osGLOBAL void 1625*4e1bc9a0SAchim Leubner tdsaSASDownStreamDiscoverExpanderPhy( 1626*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1627*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1628*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 1629*4e1bc9a0SAchim Leubner smpRespDiscover_t *pDiscoverResp 1630*4e1bc9a0SAchim Leubner ); 1631*4e1bc9a0SAchim Leubner osGLOBAL void 1632*4e1bc9a0SAchim Leubner tdsaSASUpStreamDiscoverExpanderPhySkip( 1633*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1634*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1635*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 1636*4e1bc9a0SAchim Leubner ); 1637*4e1bc9a0SAchim Leubner osGLOBAL tdsaExpander_t * 1638*4e1bc9a0SAchim Leubner tdsaFindDownStreamConfigurableExp(tiRoot_t *tiRoot, 1639*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander); 1640*4e1bc9a0SAchim Leubner 1641*4e1bc9a0SAchim Leubner osGLOBAL void 1642*4e1bc9a0SAchim Leubner tdsaSASDownStreamDiscoverExpanderPhySkip( 1643*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1644*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1645*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 1646*4e1bc9a0SAchim Leubner ); 1647*4e1bc9a0SAchim Leubner osGLOBAL void 1648*4e1bc9a0SAchim Leubner tdsaDiscoveringStpSATADevice( 1649*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1650*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1651*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1652*4e1bc9a0SAchim Leubner ); 1653*4e1bc9a0SAchim Leubner 1654*4e1bc9a0SAchim Leubner 1655*4e1bc9a0SAchim Leubner osGLOBAL void 1656*4e1bc9a0SAchim Leubner tdsaSASExpanderUpStreamPhyAdd( 1657*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1658*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 1659*4e1bc9a0SAchim Leubner bit8 phyId 1660*4e1bc9a0SAchim Leubner ); 1661*4e1bc9a0SAchim Leubner 1662*4e1bc9a0SAchim Leubner osGLOBAL void 1663*4e1bc9a0SAchim Leubner tdsaSASExpanderDownStreamPhyAdd( 1664*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1665*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 1666*4e1bc9a0SAchim Leubner bit8 phyId 1667*4e1bc9a0SAchim Leubner ); 1668*4e1bc9a0SAchim Leubner osGLOBAL bit16 1669*4e1bc9a0SAchim Leubner tdsaFindCurrentDownStreamPhyIndex( 1670*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1671*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 1672*4e1bc9a0SAchim Leubner ); 1673*4e1bc9a0SAchim Leubner 1674*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 1675*4e1bc9a0SAchim Leubner tdsaPortSASDeviceFind( 1676*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1677*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1678*4e1bc9a0SAchim Leubner bit32 sasAddrLo, 1679*4e1bc9a0SAchim Leubner bit32 sasAddrHi 1680*4e1bc9a0SAchim Leubner ); 1681*4e1bc9a0SAchim Leubner 1682*4e1bc9a0SAchim Leubner GLOBAL tdsaDeviceData_t * 1683*4e1bc9a0SAchim Leubner tdsaPortSASDeviceAdd( 1684*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1685*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1686*4e1bc9a0SAchim Leubner agsaSASIdentify_t sasIdentify, 1687*4e1bc9a0SAchim Leubner bit32 sasInitiator, 1688*4e1bc9a0SAchim Leubner bit8 connectionRate, 1689*4e1bc9a0SAchim Leubner bit32 itNexusTimeout, 1690*4e1bc9a0SAchim Leubner bit32 firstBurstSize, 1691*4e1bc9a0SAchim Leubner bit32 deviceType, 1692*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneExpDeviceData, 1693*4e1bc9a0SAchim Leubner bit8 phyID 1694*4e1bc9a0SAchim Leubner ); 1695*4e1bc9a0SAchim Leubner 1696*4e1bc9a0SAchim Leubner 1697*4e1bc9a0SAchim Leubner 1698*4e1bc9a0SAchim Leubner 1699*4e1bc9a0SAchim Leubner 1700*4e1bc9a0SAchim Leubner /* in tdport.c */ 1701*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 1702*4e1bc9a0SAchim Leubner tdssNewAddSASToSharedcontext( 1703*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1704*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1705*4e1bc9a0SAchim Leubner tdsaSASSubID_t *agSASSubID, 1706*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneExpDeviceData, 1707*4e1bc9a0SAchim Leubner bit8 phyID 1708*4e1bc9a0SAchim Leubner ); 1709*4e1bc9a0SAchim Leubner osGLOBAL void 1710*4e1bc9a0SAchim Leubner tdsaResetValidDeviceData( 1711*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1712*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1713*4e1bc9a0SAchim Leubner ); 1714*4e1bc9a0SAchim Leubner 1715*4e1bc9a0SAchim Leubner 1716*4e1bc9a0SAchim Leubner osGLOBAL void 1717*4e1bc9a0SAchim Leubner tdssReportChanges( 1718*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1719*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext ); 1720*4e1bc9a0SAchim Leubner 1721*4e1bc9a0SAchim Leubner osGLOBAL void 1722*4e1bc9a0SAchim Leubner tdssReportRemovals( 1723*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1724*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1725*4e1bc9a0SAchim Leubner bit32 flag 1726*4e1bc9a0SAchim Leubner ); 1727*4e1bc9a0SAchim Leubner osGLOBAL void 1728*4e1bc9a0SAchim Leubner tdssInternalRemovals( 1729*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1730*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1731*4e1bc9a0SAchim Leubner ); 1732*4e1bc9a0SAchim Leubner osGLOBAL void 1733*4e1bc9a0SAchim Leubner tdssDiscoveryErrorRemovals( 1734*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1735*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1736*4e1bc9a0SAchim Leubner ); 1737*4e1bc9a0SAchim Leubner 1738*4e1bc9a0SAchim Leubner osGLOBAL void 1739*4e1bc9a0SAchim Leubner tdsaSASDiscoverAbort( 1740*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1741*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1742*4e1bc9a0SAchim Leubner ); 1743*4e1bc9a0SAchim Leubner 1744*4e1bc9a0SAchim Leubner 1745*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 1746*4e1bc9a0SAchim Leubner tdsaFindRegNValid( 1747*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1748*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1749*4e1bc9a0SAchim Leubner tdsaSASSubID_t *agSASSubID 1750*4e1bc9a0SAchim Leubner ); 1751*4e1bc9a0SAchim Leubner bit32 1752*4e1bc9a0SAchim Leubner tdssNewSASorNot( 1753*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1754*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1755*4e1bc9a0SAchim Leubner tdsaSASSubID_t *agSASSubID 1756*4e1bc9a0SAchim Leubner ); 1757*4e1bc9a0SAchim Leubner 1758*4e1bc9a0SAchim Leubner 1759*4e1bc9a0SAchim Leubner osGLOBAL tdsaExpander_t * 1760*4e1bc9a0SAchim Leubner tdssSASDiscoveringExpanderAlloc( 1761*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1762*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1763*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1764*4e1bc9a0SAchim Leubner ); 1765*4e1bc9a0SAchim Leubner 1766*4e1bc9a0SAchim Leubner osGLOBAL void 1767*4e1bc9a0SAchim Leubner tdssSASDiscoveringExpanderAdd( 1768*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1769*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1770*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 1771*4e1bc9a0SAchim Leubner ); 1772*4e1bc9a0SAchim Leubner 1773*4e1bc9a0SAchim Leubner osGLOBAL void 1774*4e1bc9a0SAchim Leubner tdssSASDiscoveringExpanderRemove( 1775*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1776*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1777*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 1778*4e1bc9a0SAchim Leubner ); 1779*4e1bc9a0SAchim Leubner 1780*4e1bc9a0SAchim Leubner GLOBAL bit32 1781*4e1bc9a0SAchim Leubner tdssSATADeviceTypeDecode( 1782*4e1bc9a0SAchim Leubner bit8 *pSignature 1783*4e1bc9a0SAchim Leubner ); 1784*4e1bc9a0SAchim Leubner 1785*4e1bc9a0SAchim Leubner 1786*4e1bc9a0SAchim Leubner GLOBAL tdsaDeviceData_t * 1787*4e1bc9a0SAchim Leubner tdsaPortSATADeviceAdd( 1788*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1789*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1790*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneSTPBridge, 1791*4e1bc9a0SAchim Leubner bit8 *Signature, 1792*4e1bc9a0SAchim Leubner bit8 pm, 1793*4e1bc9a0SAchim Leubner bit8 pmField, 1794*4e1bc9a0SAchim Leubner bit8 connectionRate, 1795*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneExpDeviceData, 1796*4e1bc9a0SAchim Leubner bit8 phyID 1797*4e1bc9a0SAchim Leubner ); 1798*4e1bc9a0SAchim Leubner 1799*4e1bc9a0SAchim Leubner /* in tdport.c */ 1800*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 1801*4e1bc9a0SAchim Leubner tdssNewAddSATAToSharedcontext(tiRoot_t *tiRoot, 1802*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1803*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1804*4e1bc9a0SAchim Leubner agsaSATADeviceInfo_t *agSATADeviceInfo, 1805*4e1bc9a0SAchim Leubner bit8 *Signature, 1806*4e1bc9a0SAchim Leubner bit8 pm, 1807*4e1bc9a0SAchim Leubner bit8 pmField, 1808*4e1bc9a0SAchim Leubner bit32 connectionRate, 1809*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneExpDeviceData, 1810*4e1bc9a0SAchim Leubner bit8 phyID 1811*4e1bc9a0SAchim Leubner ); 1812*4e1bc9a0SAchim Leubner 1813*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 1814*4e1bc9a0SAchim Leubner tdsaFindRightDevice( 1815*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1816*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1817*4e1bc9a0SAchim Leubner tdsaDeviceData_t *tdsaDeviceData 1818*4e1bc9a0SAchim Leubner ); 1819*4e1bc9a0SAchim Leubner GLOBAL void 1820*4e1bc9a0SAchim Leubner ossaIDCDiscoverCompleted( 1821*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1822*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1823*4e1bc9a0SAchim Leubner bit32 agIOStatus, 1824*4e1bc9a0SAchim Leubner void *agFirstDword, 1825*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 1826*4e1bc9a0SAchim Leubner agsaFrameHandle_t agFrameHandle 1827*4e1bc9a0SAchim Leubner ); 1828*4e1bc9a0SAchim Leubner 1829*4e1bc9a0SAchim Leubner osGLOBAL bit8 1830*4e1bc9a0SAchim Leubner tdsaFindLocalLinkRate( 1831*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1832*4e1bc9a0SAchim Leubner tdsaPortStartInfo_t *tdsaPortStartInfo 1833*4e1bc9a0SAchim Leubner ); 1834*4e1bc9a0SAchim Leubner 1835*4e1bc9a0SAchim Leubner /* SMP related */ 1836*4e1bc9a0SAchim Leubner 1837*4e1bc9a0SAchim Leubner osGLOBAL bit32 1838*4e1bc9a0SAchim Leubner tdSMPStart( 1839*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1840*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1841*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1842*4e1bc9a0SAchim Leubner bit32 functionCode, 1843*4e1bc9a0SAchim Leubner bit8 *pSmpBody, 1844*4e1bc9a0SAchim Leubner bit32 smpBodySize, 1845*4e1bc9a0SAchim Leubner bit32 agRequestType, 1846*4e1bc9a0SAchim Leubner tiIORequest_t *CurrentTaskTag, 1847*4e1bc9a0SAchim Leubner bit32 queueNumber 1848*4e1bc9a0SAchim Leubner ); 1849*4e1bc9a0SAchim Leubner //temp for testing 1850*4e1bc9a0SAchim Leubner osGLOBAL void 1851*4e1bc9a0SAchim Leubner tdsaReportManInfoSend( 1852*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1853*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1854*4e1bc9a0SAchim Leubner ); 1855*4e1bc9a0SAchim Leubner 1856*4e1bc9a0SAchim Leubner osGLOBAL void 1857*4e1bc9a0SAchim Leubner tdsaReportManInfoRespRcvd( 1858*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1859*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1860*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1861*4e1bc9a0SAchim Leubner tdssSMPFrameHeader_t *frameHeader, 1862*4e1bc9a0SAchim Leubner agsaFrameHandle_t frameHandle 1863*4e1bc9a0SAchim Leubner ); 1864*4e1bc9a0SAchim Leubner 1865*4e1bc9a0SAchim Leubner //end temp for testing 1866*4e1bc9a0SAchim Leubner 1867*4e1bc9a0SAchim Leubner osGLOBAL void 1868*4e1bc9a0SAchim Leubner tdsaReportGeneralSend( 1869*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1870*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1871*4e1bc9a0SAchim Leubner ); 1872*4e1bc9a0SAchim Leubner 1873*4e1bc9a0SAchim Leubner osGLOBAL void 1874*4e1bc9a0SAchim Leubner tdsaReportGeneralRespRcvd( 1875*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1876*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1877*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1878*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1879*4e1bc9a0SAchim Leubner tdssSMPFrameHeader_t *frameHeader, 1880*4e1bc9a0SAchim Leubner agsaFrameHandle_t frameHandle 1881*4e1bc9a0SAchim Leubner ); 1882*4e1bc9a0SAchim Leubner osGLOBAL void 1883*4e1bc9a0SAchim Leubner tdsaDiscoverSend( 1884*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1885*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 1886*4e1bc9a0SAchim Leubner ); 1887*4e1bc9a0SAchim Leubner 1888*4e1bc9a0SAchim Leubner osGLOBAL void 1889*4e1bc9a0SAchim Leubner tdsaDiscoverRespRcvd( 1890*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1891*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1892*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1893*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1894*4e1bc9a0SAchim Leubner tdssSMPFrameHeader_t *frameHeader, 1895*4e1bc9a0SAchim Leubner agsaFrameHandle_t frameHandle 1896*4e1bc9a0SAchim Leubner ); 1897*4e1bc9a0SAchim Leubner 1898*4e1bc9a0SAchim Leubner 1899*4e1bc9a0SAchim Leubner osGLOBAL void 1900*4e1bc9a0SAchim Leubner tdsaReportPhySataSend( 1901*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1902*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1903*4e1bc9a0SAchim Leubner bit8 phyId 1904*4e1bc9a0SAchim Leubner ); 1905*4e1bc9a0SAchim Leubner 1906*4e1bc9a0SAchim Leubner 1907*4e1bc9a0SAchim Leubner 1908*4e1bc9a0SAchim Leubner osGLOBAL void 1909*4e1bc9a0SAchim Leubner tdsaReportPhySataRcvd( 1910*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1911*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1912*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1913*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1914*4e1bc9a0SAchim Leubner tdssSMPFrameHeader_t *frameHeader, 1915*4e1bc9a0SAchim Leubner agsaFrameHandle_t frameHandle 1916*4e1bc9a0SAchim Leubner ); 1917*4e1bc9a0SAchim Leubner 1918*4e1bc9a0SAchim Leubner osGLOBAL bit32 1919*4e1bc9a0SAchim Leubner tdsaSASRoutingEntryAdd( 1920*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1921*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 1922*4e1bc9a0SAchim Leubner bit32 phyId, 1923*4e1bc9a0SAchim Leubner bit32 configSASAddressHi, 1924*4e1bc9a0SAchim Leubner bit32 configSASAddressLo 1925*4e1bc9a0SAchim Leubner ); 1926*4e1bc9a0SAchim Leubner 1927*4e1bc9a0SAchim Leubner 1928*4e1bc9a0SAchim Leubner osGLOBAL void 1929*4e1bc9a0SAchim Leubner tdsaConfigRoutingInfoRespRcvd( 1930*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1931*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1932*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1933*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1934*4e1bc9a0SAchim Leubner tdssSMPFrameHeader_t *frameHeader, 1935*4e1bc9a0SAchim Leubner agsaFrameHandle_t frameHandle 1936*4e1bc9a0SAchim Leubner ); 1937*4e1bc9a0SAchim Leubner 1938*4e1bc9a0SAchim Leubner osGLOBAL bit32 1939*4e1bc9a0SAchim Leubner tdsaPhyControlSend( 1940*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1941*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1942*4e1bc9a0SAchim Leubner bit8 phyOp, 1943*4e1bc9a0SAchim Leubner tiIORequest_t *CurrentTaskTag, 1944*4e1bc9a0SAchim Leubner bit32 queueNumber 1945*4e1bc9a0SAchim Leubner ); 1946*4e1bc9a0SAchim Leubner 1947*4e1bc9a0SAchim Leubner osGLOBAL void 1948*4e1bc9a0SAchim Leubner tdsaPhyControlRespRcvd( 1949*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1950*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1951*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 1952*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1953*4e1bc9a0SAchim Leubner tdssSMPFrameHeader_t *frameHeader, 1954*4e1bc9a0SAchim Leubner agsaFrameHandle_t frameHandle, 1955*4e1bc9a0SAchim Leubner tiIORequest_t *CurrentTaskTag 1956*4e1bc9a0SAchim Leubner ); 1957*4e1bc9a0SAchim Leubner 1958*4e1bc9a0SAchim Leubner osGLOBAL void 1959*4e1bc9a0SAchim Leubner tdsaPhyControlFailureRespRcvd( 1960*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1961*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 1962*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 1963*4e1bc9a0SAchim Leubner tdssSMPFrameHeader_t *frameHeader, 1964*4e1bc9a0SAchim Leubner agsaFrameHandle_t frameHandle, 1965*4e1bc9a0SAchim Leubner tiIORequest_t *CurrentTaskTag 1966*4e1bc9a0SAchim Leubner ); 1967*4e1bc9a0SAchim Leubner 1968*4e1bc9a0SAchim Leubner 1969*4e1bc9a0SAchim Leubner osGLOBAL void 1970*4e1bc9a0SAchim Leubner tdsaDumpAllExp( 1971*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1972*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1973*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 1974*4e1bc9a0SAchim Leubner ); 1975*4e1bc9a0SAchim Leubner osGLOBAL void 1976*4e1bc9a0SAchim Leubner tdsaDumpAllUpExp( 1977*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1978*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1979*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 1980*4e1bc9a0SAchim Leubner ); 1981*4e1bc9a0SAchim Leubner osGLOBAL void 1982*4e1bc9a0SAchim Leubner tdsaCleanAllExp( 1983*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1984*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1985*4e1bc9a0SAchim Leubner ); 1986*4e1bc9a0SAchim Leubner osGLOBAL void 1987*4e1bc9a0SAchim Leubner tdsaFreeAllExp( 1988*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 1989*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 1990*4e1bc9a0SAchim Leubner ); 1991*4e1bc9a0SAchim Leubner osGLOBAL void 1992*4e1bc9a0SAchim Leubner tdsaDumpAllFreeExp( 1993*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot 1994*4e1bc9a0SAchim Leubner ); 1995*4e1bc9a0SAchim Leubner 1996*4e1bc9a0SAchim Leubner osGLOBAL void 1997*4e1bc9a0SAchim Leubner tdsaDiscoveryTimer(tiRoot_t *tiRoot, 1998*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 1999*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 2000*4e1bc9a0SAchim Leubner ); 2001*4e1bc9a0SAchim Leubner 2002*4e1bc9a0SAchim Leubner osGLOBAL void 2003*4e1bc9a0SAchim Leubner tdsaDiscoveryTimerCB( 2004*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2005*4e1bc9a0SAchim Leubner void * timerData1, 2006*4e1bc9a0SAchim Leubner void * timerData2, 2007*4e1bc9a0SAchim Leubner void * timerData3 2008*4e1bc9a0SAchim Leubner ); 2009*4e1bc9a0SAchim Leubner 2010*4e1bc9a0SAchim Leubner osGLOBAL void 2011*4e1bc9a0SAchim Leubner tdsaConfigureRouteTimer(tiRoot_t *tiRoot, 2012*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2013*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 2014*4e1bc9a0SAchim Leubner smpRespDiscover_t *ptdSMPDiscoverResp 2015*4e1bc9a0SAchim Leubner ); 2016*4e1bc9a0SAchim Leubner 2017*4e1bc9a0SAchim Leubner osGLOBAL void 2018*4e1bc9a0SAchim Leubner tdsaConfigureRouteTimerCB( 2019*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2020*4e1bc9a0SAchim Leubner void * timerData1, 2021*4e1bc9a0SAchim Leubner void * timerData2, 2022*4e1bc9a0SAchim Leubner void * timerData3 2023*4e1bc9a0SAchim Leubner ); 2024*4e1bc9a0SAchim Leubner 2025*4e1bc9a0SAchim Leubner osGLOBAL void 2026*4e1bc9a0SAchim Leubner tdsaDeviceRegistrationTimer(tiRoot_t *tiRoot, 2027*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2028*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 2029*4e1bc9a0SAchim Leubner ); 2030*4e1bc9a0SAchim Leubner 2031*4e1bc9a0SAchim Leubner osGLOBAL void 2032*4e1bc9a0SAchim Leubner tdsaDeviceRegistrationTimerCB( 2033*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2034*4e1bc9a0SAchim Leubner void * timerData1, 2035*4e1bc9a0SAchim Leubner void * timerData2, 2036*4e1bc9a0SAchim Leubner void * timerData3 2037*4e1bc9a0SAchim Leubner ); 2038*4e1bc9a0SAchim Leubner 2039*4e1bc9a0SAchim Leubner osGLOBAL void 2040*4e1bc9a0SAchim Leubner tdsaSMPBusyTimer(tiRoot_t *tiRoot, 2041*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2042*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 2043*4e1bc9a0SAchim Leubner tdssSMPRequestBody_t *tdSMPRequestBody 2044*4e1bc9a0SAchim Leubner ); 2045*4e1bc9a0SAchim Leubner 2046*4e1bc9a0SAchim Leubner osGLOBAL void 2047*4e1bc9a0SAchim Leubner tdsaSMPBusyTimerCB( 2048*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2049*4e1bc9a0SAchim Leubner void * timerData1, 2050*4e1bc9a0SAchim Leubner void * timerData2, 2051*4e1bc9a0SAchim Leubner void * timerData3 2052*4e1bc9a0SAchim Leubner ); 2053*4e1bc9a0SAchim Leubner 2054*4e1bc9a0SAchim Leubner osGLOBAL void 2055*4e1bc9a0SAchim Leubner tdsaSATAIDDeviceTimer(tiRoot_t *tiRoot, 2056*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 2057*4e1bc9a0SAchim Leubner ); 2058*4e1bc9a0SAchim Leubner #ifdef FDS_SM 2059*4e1bc9a0SAchim Leubner osGLOBAL void 2060*4e1bc9a0SAchim Leubner tdIDStartTimer(tiRoot_t *tiRoot, 2061*4e1bc9a0SAchim Leubner smIORequest_t *smIORequest, 2062*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 2063*4e1bc9a0SAchim Leubner ); 2064*4e1bc9a0SAchim Leubner osGLOBAL void 2065*4e1bc9a0SAchim Leubner tdIDStartTimerCB( 2066*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2067*4e1bc9a0SAchim Leubner void * timerData1, 2068*4e1bc9a0SAchim Leubner void * timerData2, 2069*4e1bc9a0SAchim Leubner void * timerData3 2070*4e1bc9a0SAchim Leubner ); 2071*4e1bc9a0SAchim Leubner #endif 2072*4e1bc9a0SAchim Leubner osGLOBAL void 2073*4e1bc9a0SAchim Leubner tdsaBCTimer(tiRoot_t *tiRoot, 2074*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 2075*4e1bc9a0SAchim Leubner ); 2076*4e1bc9a0SAchim Leubner 2077*4e1bc9a0SAchim Leubner osGLOBAL void 2078*4e1bc9a0SAchim Leubner tdsaBCTimerCB( 2079*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2080*4e1bc9a0SAchim Leubner void * timerData1, 2081*4e1bc9a0SAchim Leubner void * timerData2, 2082*4e1bc9a0SAchim Leubner void * timerData3 2083*4e1bc9a0SAchim Leubner ); 2084*4e1bc9a0SAchim Leubner 2085*4e1bc9a0SAchim Leubner osGLOBAL void 2086*4e1bc9a0SAchim Leubner tdsaSATAIDDeviceTimerCB( 2087*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2088*4e1bc9a0SAchim Leubner void * timerData1, 2089*4e1bc9a0SAchim Leubner void * timerData2, 2090*4e1bc9a0SAchim Leubner void * timerData3 2091*4e1bc9a0SAchim Leubner ); 2092*4e1bc9a0SAchim Leubner 2093*4e1bc9a0SAchim Leubner osGLOBAL void 2094*4e1bc9a0SAchim Leubner tdsaDiscoverySMPTimer(tiRoot_t *tiRoot, 2095*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2096*4e1bc9a0SAchim Leubner bit32 functionCode, 2097*4e1bc9a0SAchim Leubner tdssSMPRequestBody_t *tdSMPRequestBody 2098*4e1bc9a0SAchim Leubner ); 2099*4e1bc9a0SAchim Leubner 2100*4e1bc9a0SAchim Leubner osGLOBAL void 2101*4e1bc9a0SAchim Leubner tdsaDiscoverySMPTimerCB( 2102*4e1bc9a0SAchim Leubner tiRoot_t * tiRoot, 2103*4e1bc9a0SAchim Leubner void * timerData1, 2104*4e1bc9a0SAchim Leubner void * timerData2, 2105*4e1bc9a0SAchim Leubner void * timerData3 2106*4e1bc9a0SAchim Leubner ); 2107*4e1bc9a0SAchim Leubner 2108*4e1bc9a0SAchim Leubner osGLOBAL void 2109*4e1bc9a0SAchim Leubner dumpRoutingAttributes( 2110*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2111*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 2112*4e1bc9a0SAchim Leubner bit8 phyID 2113*4e1bc9a0SAchim Leubner ); 2114*4e1bc9a0SAchim Leubner 2115*4e1bc9a0SAchim Leubner osGLOBAL bit32 2116*4e1bc9a0SAchim Leubner tdsaDuplicateConfigSASAddr( 2117*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2118*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander, 2119*4e1bc9a0SAchim Leubner bit32 configSASAddressHi, 2120*4e1bc9a0SAchim Leubner bit32 configSASAddressLo 2121*4e1bc9a0SAchim Leubner ); 2122*4e1bc9a0SAchim Leubner 2123*4e1bc9a0SAchim Leubner osGLOBAL tdsaExpander_t * 2124*4e1bc9a0SAchim Leubner tdsaFindConfigurableExp( 2125*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2126*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2127*4e1bc9a0SAchim Leubner tdsaExpander_t *oneExpander 2128*4e1bc9a0SAchim Leubner ); 2129*4e1bc9a0SAchim Leubner 2130*4e1bc9a0SAchim Leubner GLOBAL bit32 2131*4e1bc9a0SAchim Leubner tdsaDiscoveryStartIDDev( 2132*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2133*4e1bc9a0SAchim Leubner tiIORequest_t *tiIORequest, 2134*4e1bc9a0SAchim Leubner tiDeviceHandle_t *tiDeviceHandle, 2135*4e1bc9a0SAchim Leubner tiScsiInitiatorRequest_t *tiScsiRequest, 2136*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData 2137*4e1bc9a0SAchim Leubner ); 2138*4e1bc9a0SAchim Leubner 2139*4e1bc9a0SAchim Leubner GLOBAL void satFreeIntIoResource( 2140*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2141*4e1bc9a0SAchim Leubner satDeviceData_t *satDevData, 2142*4e1bc9a0SAchim Leubner satInternalIo_t *satIntIo); 2143*4e1bc9a0SAchim Leubner osGLOBAL void 2144*4e1bc9a0SAchim Leubner tddmDeregisterDevicesInPort( 2145*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2146*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 2147*4e1bc9a0SAchim Leubner ); 2148*4e1bc9a0SAchim Leubner 2149*4e1bc9a0SAchim Leubner #ifdef AGTIAPI_CTL 2150*4e1bc9a0SAchim Leubner osGLOBAL void 2151*4e1bc9a0SAchim Leubner tdsaCTLSet( 2152*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2153*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2154*4e1bc9a0SAchim Leubner tiIntrEventType_t eventType, 2155*4e1bc9a0SAchim Leubner bit32 eventStatus); 2156*4e1bc9a0SAchim Leubner 2157*4e1bc9a0SAchim Leubner STATIC void 2158*4e1bc9a0SAchim Leubner tdsaCTLNextDevice( 2159*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2160*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2161*4e1bc9a0SAchim Leubner tdIORequest_t *tdIORequest, 2162*4e1bc9a0SAchim Leubner tdList_t *DeviceList); 2163*4e1bc9a0SAchim Leubner 2164*4e1bc9a0SAchim Leubner STATIC int 2165*4e1bc9a0SAchim Leubner tdsaCTLModeSelect( 2166*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2167*4e1bc9a0SAchim Leubner tiDeviceHandle_t *tiDeviceHandle, 2168*4e1bc9a0SAchim Leubner tdIORequest_t *tdIORequest); 2169*4e1bc9a0SAchim Leubner 2170*4e1bc9a0SAchim Leubner STATIC void 2171*4e1bc9a0SAchim Leubner tdsaCTLIOCompleted( 2172*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 2173*4e1bc9a0SAchim Leubner agsaIORequest_t *agIORequest, 2174*4e1bc9a0SAchim Leubner bit32 agIOStatus, 2175*4e1bc9a0SAchim Leubner bit32 agIOInfoLen, 2176*4e1bc9a0SAchim Leubner void *agParam, 2177*4e1bc9a0SAchim Leubner bit16 sspTag, 2178*4e1bc9a0SAchim Leubner bit32 agOtherInfo); 2179*4e1bc9a0SAchim Leubner #endif /* AGTIAPI_CTL */ 2180*4e1bc9a0SAchim Leubner 2181*4e1bc9a0SAchim Leubner #endif /* TD_DISCOVER */ 2182*4e1bc9a0SAchim Leubner #endif /* INITIATOR_DRIVER */ 2183*4e1bc9a0SAchim Leubner 2184*4e1bc9a0SAchim Leubner #ifdef FDS_DM 2185*4e1bc9a0SAchim Leubner /********** For DM *******/ 2186*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 2187*4e1bc9a0SAchim Leubner tddmPortDeviceAdd( 2188*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2189*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2190*4e1bc9a0SAchim Leubner dmDeviceInfo_t *dmDeviceInfo, 2191*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneExpDeviceData 2192*4e1bc9a0SAchim Leubner ); 2193*4e1bc9a0SAchim Leubner 2194*4e1bc9a0SAchim Leubner osGLOBAL void 2195*4e1bc9a0SAchim Leubner tddmInvalidateDevicesInPort( 2196*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2197*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 2198*4e1bc9a0SAchim Leubner ); 2199*4e1bc9a0SAchim Leubner 2200*4e1bc9a0SAchim Leubner osGLOBAL bit32 2201*4e1bc9a0SAchim Leubner tddmNewSASorNot( 2202*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2203*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2204*4e1bc9a0SAchim Leubner tdsaSASSubID_t *agSASSubID 2205*4e1bc9a0SAchim Leubner ); 2206*4e1bc9a0SAchim Leubner 2207*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 2208*4e1bc9a0SAchim Leubner tddmPortSASDeviceFind( 2209*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2210*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2211*4e1bc9a0SAchim Leubner bit32 sasAddrLo, 2212*4e1bc9a0SAchim Leubner bit32 sasAddrHi 2213*4e1bc9a0SAchim Leubner ); 2214*4e1bc9a0SAchim Leubner 2215*4e1bc9a0SAchim Leubner osGLOBAL tdsaDeviceData_t * 2216*4e1bc9a0SAchim Leubner tddmAddToSharedcontext( 2217*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 2218*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext, 2219*4e1bc9a0SAchim Leubner tdsaSASSubID_t *agSASSubID, 2220*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneExpDeviceData, 2221*4e1bc9a0SAchim Leubner bit8 phyID 2222*4e1bc9a0SAchim Leubner ); 2223*4e1bc9a0SAchim Leubner 2224*4e1bc9a0SAchim Leubner osGLOBAL void 2225*4e1bc9a0SAchim Leubner tdsaUpdateMCN( 2226*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 2227*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 2228*4e1bc9a0SAchim Leubner ); 2229*4e1bc9a0SAchim Leubner #endif 2230*4e1bc9a0SAchim Leubner 2231*4e1bc9a0SAchim Leubner GLOBAL void 2232*4e1bc9a0SAchim Leubner tdsaSingleThreadedEnter(tiRoot_t *ptiRoot, bit32 queueId); 2233*4e1bc9a0SAchim Leubner 2234*4e1bc9a0SAchim Leubner GLOBAL void 2235*4e1bc9a0SAchim Leubner tdsaSingleThreadedLeave(tiRoot_t *ptiRoot, bit32 queueId); 2236*4e1bc9a0SAchim Leubner 2237*4e1bc9a0SAchim Leubner #ifdef PERF_COUNT 2238*4e1bc9a0SAchim Leubner GLOBAL void 2239*4e1bc9a0SAchim Leubner tdsaEnter(tiRoot_t *ptiRoot, int io); 2240*4e1bc9a0SAchim Leubner 2241*4e1bc9a0SAchim Leubner GLOBAL void 2242*4e1bc9a0SAchim Leubner tdsaLeave(tiRoot_t *ptiRoot, int io); 2243*4e1bc9a0SAchim Leubner 2244*4e1bc9a0SAchim Leubner #define TDSA_INP_ENTER(root) tdsaEnter(root, 0) 2245*4e1bc9a0SAchim Leubner #define TDSA_INP_LEAVE(root) tdsaLeave(root, 0) 2246*4e1bc9a0SAchim Leubner #define TDSA_OUT_ENTER(root) tdsaEnter(root, 1) 2247*4e1bc9a0SAchim Leubner #define TDSA_OUT_LEAVE(root) tdsaLeave(root, 1) 2248*4e1bc9a0SAchim Leubner #else 2249*4e1bc9a0SAchim Leubner #define TDSA_INP_ENTER(root) 2250*4e1bc9a0SAchim Leubner #define TDSA_INP_LEAVE(root) 2251*4e1bc9a0SAchim Leubner #define TDSA_OUT_ENTER(root) 2252*4e1bc9a0SAchim Leubner #define TDSA_OUT_LEAVE(root) 2253*4e1bc9a0SAchim Leubner #endif 2254*4e1bc9a0SAchim Leubner 2255*4e1bc9a0SAchim Leubner #if defined(FDS_DM) && defined(FDS_SM) 2256*4e1bc9a0SAchim Leubner GLOBAL void 2257*4e1bc9a0SAchim Leubner tdIDStart( 2258*4e1bc9a0SAchim Leubner tiRoot_t *tiRoot, 2259*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 2260*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 2261*4e1bc9a0SAchim Leubner tdsaDeviceData_t *oneDeviceData, 2262*4e1bc9a0SAchim Leubner tdsaPortContext_t *onePortContext 2263*4e1bc9a0SAchim Leubner ); 2264*4e1bc9a0SAchim Leubner #endif 2265*4e1bc9a0SAchim Leubner 2266*4e1bc9a0SAchim Leubner void t_MacroCheck( agsaRoot_t *agRoot); 2267*4e1bc9a0SAchim Leubner 2268*4e1bc9a0SAchim Leubner #endif /* __TDPROTO_H__ */ 2269