1285242Sachim/******************************************************************************* 2285242Sachim*Copyright (c) 2014 PMC-Sierra, Inc. All rights reserved. 3285242Sachim* 4285242Sachim*Redistribution and use in source and binary forms, with or without modification, are permitted provided 5285242Sachim*that the following conditions are met: 6285242Sachim*1. Redistributions of source code must retain the above copyright notice, this list of conditions and the 7285242Sachim*following disclaimer. 8285242Sachim*2. Redistributions in binary form must reproduce the above copyright notice, 9285242Sachim*this list of conditions and the following disclaimer in the documentation and/or other materials provided 10285242Sachim*with the distribution. 11285242Sachim* 12285242Sachim*THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 13285242Sachim*WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 14285242Sachim*FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15285242Sachim*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16285242Sachim*NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 17285242Sachim*BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18285242Sachim*LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 19285242Sachim*SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 20285242Sachim* 21285242Sachim* $FreeBSD$ 22285242Sachim* 23285242Sachim********************************************************************************/ 24285242Sachim/******************************************************************************** 25285242Sachim* tiapi.h 26285242Sachim* 27285242Sachim* Abstract: This module contains function prototype of the Transport 28285242Sachim* Independent API (TIAPI) Layer for both initiator and target. 29285242Sachim** Version Control Information: 30285242Sachim** 31285242Sachim** 32285242Sachim*******************************************************************************/ 33285242Sachim 34285242Sachim 35285242Sachim#ifndef TIAPI_H 36285242Sachim#define TIAPI_H 37285242Sachim 38285242Sachim#include <dev/pms/RefTisa/tisa/api/tiglobal.h> 39285242Sachim#include <dev/pms/RefTisa/tisa/api/titypes.h> 40285242Sachim 41285242Sachim/***************************************************************************** 42285242Sachim * INITIATOR/TARGET SHARED APIs 43285242Sachim *****************************************************************************/ 44285242Sachim 45285242SachimosGLOBAL void tiCOMGetResource ( 46285242Sachim tiRoot_t *tiRoot, 47285242Sachim tiLoLevelResource_t *loResource, 48285242Sachim tiInitiatorResource_t *initiatorResource, 49285242Sachim tiTargetResource_t *targetResource, 50285242Sachim tiTdSharedMem_t *tdSharedMem 51285242Sachim ); 52285242Sachim 53285242SachimosGLOBAL bit32 tiCOMInit( 54285242Sachim tiRoot_t *tiRoot, 55285242Sachim tiLoLevelResource_t *loResource, 56285242Sachim tiInitiatorResource_t *initiatorResource, 57285242Sachim tiTargetResource_t *targetResource, 58285242Sachim tiTdSharedMem_t *tdSharedMem 59285242Sachim ); 60285242Sachim 61285242SachimosGLOBAL bit32 tiCOMPortInit( 62285242Sachim tiRoot_t *tiRoot, 63285242Sachim bit32 sysIntsActive 64285242Sachim ); 65285242Sachim 66285242SachimosGLOBAL bit32 tiCOMPortStart( 67285242Sachim tiRoot_t *tiRoot, 68285242Sachim bit32 portID, 69285242Sachim tiPortalContext_t *portalContext, 70285242Sachim bit32 option 71285242Sachim ); 72285242Sachim 73285242SachimosGLOBAL void tiCOMShutDown( tiRoot_t *tiRoot); 74285242Sachim 75285242SachimosGLOBAL bit32 tiCOMPortStop( 76285242Sachim tiRoot_t *tiRoot, 77285242Sachim tiPortalContext_t *portalContext 78285242Sachim ); 79285242Sachim 80285242SachimosGLOBAL void tiCOMReset ( 81285242Sachim tiRoot_t *tiRoot, 82285242Sachim bit32 option 83285242Sachim ); 84285242Sachim 85285242SachimosGLOBAL bit32 86285242SachimtdsaGetNumOfLUNIOCTL( 87285242Sachim tiRoot_t *tiRoot, 88285242Sachim tiIOCTLPayload_t *agIOCTLPayload, 89285242Sachim void *agParam1, 90285242Sachim void *agParam2, 91285242Sachim void *agParam3 92285242Sachim ); 93285242Sachim 94285242SachimosGLOBAL void ostiNumOfLUNIOCTLRsp( 95285242Sachim tiRoot_t *tiRoot, 96285242Sachim bit32 status 97285242Sachim ); 98285242SachimosGLOBAL bit32 99285242SachimtiNumOfLunIOCTLreq( 100285242Sachim tiRoot_t *tiRoot, 101285242Sachim tiIORequest_t *tiIORequest, 102285242Sachim tiDeviceHandle_t *tiDeviceHandle, 103285242Sachim void *tiRequestBody, 104285242Sachim tiIOCTLPayload_t *agIOCTLPayload, 105285242Sachim void *agParam1, 106285242Sachim void *agParam2 107285242Sachim ); 108285242Sachim 109285242Sachim 110285242SachimosGLOBAL FORCEINLINE bit32 tiCOMInterruptHandler( 111285242Sachim tiRoot_t *tiRoot, 112285242Sachim bit32 channelNum 113285242Sachim ); 114285242Sachim 115285242SachimosGLOBAL FORCEINLINE bit32 tiCOMDelayedInterruptHandler ( 116285242Sachim tiRoot_t *tiRoot, 117285242Sachim bit32 channelNum, 118285242Sachim bit32 count, 119285242Sachim bit32 context 120285242Sachim ); 121285242Sachim 122285242SachimosGLOBAL bit32 tiCOMLegacyInterruptHandler( 123285242Sachim tiRoot_t *tiRoot, 124285242Sachim bit32 channelNum 125285242Sachim ); 126285242Sachim 127285242Sachim 128285242SachimosGLOBAL void tiCOMLegacyDelayedInterruptHandler( 129285242Sachim tiRoot_t *tiRoot, 130285242Sachim bit32 channelNum, 131285242Sachim bit32 count, 132285242Sachim bit32 context 133285242Sachim ); 134285242SachimosGLOBAL void tiCOMTimerTick( tiRoot_t *tiRoot ); 135285242Sachim 136285242SachimosGLOBAL void tiCOMSystemInterruptsActive ( 137285242Sachim tiRoot_t *tiRoot , 138285242Sachim bit32 sysIntsActive 139285242Sachim ); 140285242Sachim 141285242Sachim 142285242SachimosGLOBAL FORCEINLINE void 143285242SachimtiCOMInterruptEnable( 144285242Sachim tiRoot_t * tiRoot, 145285242Sachim bit32 channelNum); 146285242Sachim 147285242SachimosGLOBAL void tiCOMFrameReadBlock( 148285242Sachim tiRoot_t *tiRoot, 149285242Sachim void *agFrame, 150285242Sachim bit32 FrameOffset, 151285242Sachim void *FrameBuffer, 152285242Sachim bit32 FrameBufLen ); 153285242SachimosGLOBAL bit32 tiCOMEncryptGetInfo( 154285242Sachim tiRoot_t *tiRoot); 155285242Sachim 156285242SachimosGLOBAL bit32 tiCOMEncryptSetMode( 157285242Sachim tiRoot_t *tiRoot, 158285242Sachim bit32 securityCipherMode 159285242Sachim ); 160285242Sachim 161285242SachimosGLOBAL bit32 tiCOMSetControllerConfig ( 162285242Sachim tiRoot_t *tiRoot, 163285242Sachim bit32 modePage, 164285242Sachim bit32 length, 165285242Sachim void *buffer, 166285242Sachim void *context 167285242Sachim ); 168285242Sachim 169285242SachimosGLOBAL bit32 tiCOMGetControllerConfig( 170285242Sachim tiRoot_t *tiRoot, 171285242Sachim bit32 modePage, 172285242Sachim bit32 flag, 173285242Sachim void *context 174285242Sachim ); 175285242Sachim 176285242Sachim 177285242SachimosGLOBAL bit32 tiCOMEncryptDekAdd( 178285242Sachim tiRoot_t *tiRoot, 179285242Sachim bit32 kekIndex, 180285242Sachim bit32 dekTableSelect, 181285242Sachim bit32 dekAddrHi, 182285242Sachim bit32 dekAddrLo, 183285242Sachim bit32 dekIndex, 184285242Sachim bit32 dekNumberOfEntries, 185285242Sachim bit32 dekBlobFormat, 186285242Sachim bit32 dekTableKeyEntrySize 187285242Sachim ); 188285242Sachim 189285242SachimosGLOBAL bit32 tiCOMEncryptDekInvalidate( 190285242Sachim tiRoot_t *tiRoot, 191285242Sachim bit32 dekTable, 192285242Sachim bit32 dekIndex 193285242Sachim ); 194285242Sachim 195285242Sachim 196285242SachimosGLOBAL bit32 tiCOMEncryptKekAdd( 197285242Sachim tiRoot_t *tiRoot, 198285242Sachim bit32 kekIndex, 199285242Sachim bit32 wrapperKekIndex, 200285242Sachim bit32 blobFormat, 201285242Sachim tiEncryptKekBlob_t *encryptKekBlob 202285242Sachim ); 203285242Sachim 204285242SachimosGLOBAL tiDeviceHandle_t * 205285242SachimtiINIGetExpDeviceHandleBySasAddress( 206285242Sachim tiRoot_t * tiRoot, 207285242Sachim tiPortalContext_t * tiPortalContext, 208285242Sachim bit32 sas_addr_hi, 209285242Sachim bit32 sas_addr_lo, 210285242Sachim bit32 maxDevs 211285242Sachim ); 212285242Sachim 213285242Sachim 214285242Sachim#ifdef HIALEAH_ENCRYPTION 215285242SachimosGLOBAL bit32 tiCOMEncryptHilSet(tiRoot_t *tiRoot ); 216285242Sachim#endif /* HIALEAH_ENCRYPTION */ 217285242Sachim 218285242SachimosGLOBAL bit32 tiCOMEncryptKekStore( 219285242Sachim tiRoot_t *tiRoot, 220285242Sachim bit32 kekIndex 221285242Sachim ); 222285242Sachim 223285242SachimosGLOBAL bit32 tiCOMEncryptKekLoad( 224285242Sachim tiRoot_t *tiRoot, 225285242Sachim bit32 kekIndex 226285242Sachim ); 227285242Sachim 228285242SachimosGLOBAL bit32 tiCOMEncryptSelfTest( 229285242Sachim tiRoot_t *tiRoot, 230285242Sachim bit32 type, 231285242Sachim bit32 length, 232285242Sachim void *TestDescriptor 233285242Sachim ); 234285242Sachim 235285242SachimosGLOBAL bit32 tiCOMSetOperator( 236285242Sachim tiRoot_t *tiRoot, 237285242Sachim bit32 flag, 238285242Sachim void *cert 239285242Sachim ); 240285242Sachim 241285242SachimosGLOBAL bit32 tiCOMGetOperator( 242285242Sachim tiRoot_t *tiRoot, 243285242Sachim bit32 option, 244285242Sachim bit32 AddrHi, 245285242Sachim bit32 AddrLo 246285242Sachim ); 247285242Sachim 248285242SachimosGLOBAL bit32 tiCOMOperatorManagement( 249285242Sachim tiRoot_t *tiRoot, 250285242Sachim bit32 flag, 251285242Sachim bit8 role, 252285242Sachim tiID_t *idString, 253285242Sachim tiEncryptKekBlob_t *kekBlob 254285242Sachim ); 255285242Sachim 256285242Sachim/* 257285242Sachim * PMC-Sierra Management IOCTL module 258285242Sachim */ 259285242SachimosGLOBAL bit32 tiCOMMgntIOCTL( 260285242Sachim tiRoot_t *tiRoot, 261285242Sachim tiIOCTLPayload_t *agIOCTLPayload, 262285242Sachim void *agParam1, 263285242Sachim void *agParam2, 264285242Sachim void *agParam3 265285242Sachim ); 266285242Sachim 267285242SachimosGLOBAL void ostiCOMMgntIOCTLRsp( 268285242Sachim tiRoot_t *tiRoot, 269285242Sachim bit32 status 270285242Sachim ); 271285242Sachim 272285242SachimosGLOBAL void ostiRegDumpIOCTLRsp( 273285242Sachim tiRoot_t *tiRoot, 274285242Sachim bit32 status 275285242Sachim ); 276285242Sachim 277285242SachimosGLOBAL void ostiSetNVMDIOCTLRsp( 278285242Sachim tiRoot_t *tiRoot, 279285242Sachim bit32 status 280285242Sachim ); 281285242Sachim 282285242SachimosGLOBAL void ostiGetPhyProfileIOCTLRsp( 283285242Sachim tiRoot_t *tiRoot, 284285242Sachim bit32 status 285285242Sachim ); 286285242Sachim 287285242SachimosGLOBAL void ostiGetNVMDIOCTLRsp( 288285242Sachim tiRoot_t *tiRoot, 289285242Sachim bit32 status 290285242Sachim ); 291285242SachimosGLOBAL bit32 tiCOMGetPortInfo( 292285242Sachim tiRoot_t *tiRoot, 293285242Sachim tiPortalContext_t *portalContext, 294285242Sachim tiPortInfo_t *tiPortInfo 295285242Sachim ); 296285242Sachim 297285242SachimosGLOBAL void ostiSendSMPIOCTLRsp( 298285242Sachim tiRoot_t *tiRoot, 299285242Sachim bit32 status 300285242Sachim ); 301285242Sachim 302285242SachimosGLOBAL void ostiGenEventIOCTLRsp( 303285242Sachim tiRoot_t *tiRoot, 304285242Sachim bit32 status 305285242Sachim ); 306285242Sachim 307285242SachimosGLOBAL void 308285242SachimostiGetDeviceInfoIOCTLRsp( 309285242Sachim tiRoot_t *tiRoot, 310285242Sachim bit32 status, 311285242Sachim void *param 312285242Sachim ); 313285242Sachim 314285242SachimosGLOBAL void 315285242SachimostiGetIoErrorStatsIOCTLRsp( 316285242Sachim tiRoot_t *tiRoot, 317285242Sachim bit32 status, 318285242Sachim void *param 319285242Sachim ); 320285242Sachim 321285242SachimosGLOBAL void 322285242SachimostiGetIoEventStatsIOCTLRsp( 323285242Sachim tiRoot_t *tiRoot, 324285242Sachim bit32 status, 325285242Sachim void *param 326285242Sachim ); 327285242Sachim 328285242SachimosGLOBAL void 329285242SachimostiGetForensicDataIOCTLRsp( 330285242Sachim tiRoot_t *tiRoot, 331285242Sachim bit32 status, 332285242Sachim void *param 333285242Sachim ); 334285242Sachim 335285242Sachim 336285242Sachim#ifdef SPC_ENABLE_PROFILE 337285242SachimosGLOBAL void ostiFWProfileIOCTLRsp( 338285242Sachim tiRoot_t *tiRoot, 339285242Sachim bit32 status, 340285242Sachim bit32 len 341285242Sachim ); 342285242Sachim#endif 343285242Sachim 344285242Sachim/***************************************************************************** 345285242Sachim * INITIATOR SPECIFIC APIs 346285242Sachim *****************************************************************************/ 347285242Sachim 348285242Sachim/* 349285242Sachim * Session management module. 350285242Sachim */ 351285242SachimosGLOBAL bit32 tiINIGetExpander( 352285242Sachim tiRoot_t * tiRoot, 353285242Sachim tiPortalContext_t * tiPortalContext, 354285242Sachim tiDeviceHandle_t * tiDev, 355285242Sachim tiDeviceHandle_t ** tiExp 356285242Sachim ); 357285242SachimosGLOBAL bit32 tiINIGetDeviceHandles( 358285242Sachim tiRoot_t *tiRoot, 359285242Sachim tiPortalContext_t *portalContext, 360285242Sachim tiDeviceHandle_t *agDev[], 361285242Sachim bit32 maxDevs 362285242Sachim ); 363285242Sachim 364285242SachimosGLOBAL bit32 tiINIGetDeviceHandlesForWinIOCTL( 365285242Sachim tiRoot_t *tiRoot, 366285242Sachim tiPortalContext_t *portalContext, 367285242Sachim tiDeviceHandle_t *agDev[], 368285242Sachim bit32 maxDevs 369285242Sachim ); 370285242Sachim 371285242SachimosGLOBAL void tiIniGetDirectSataSasAddr(tiRoot_t * tiRoot, bit32 phyId, bit8 **sasAddressHi, bit8 **sasAddressLo); 372285242SachimosGLOBAL bit32 tiINIDiscoverTargets( 373285242Sachim tiRoot_t *tiRoot, 374285242Sachim tiPortalContext_t *portalContext, 375285242Sachim bit32 option 376285242Sachim ); 377285242Sachim 378285242SachimosGLOBAL bit32 tiINILogin( 379285242Sachim tiRoot_t *tiRoot, 380285242Sachim tiDeviceHandle_t *tiDeviceHandle 381285242Sachim ); 382285242Sachim 383285242SachimosGLOBAL bit32 tiINILogout( 384285242Sachim tiRoot_t *tiRoot, 385285242Sachim tiDeviceHandle_t *tiDeviceHandle 386285242Sachim ); 387285242Sachim 388285242SachimosGLOBAL bit32 tiINIGetDeviceInfo( 389285242Sachim tiRoot_t *tiRoot, 390285242Sachim tiDeviceHandle_t *tiDeviceHandle, 391285242Sachim tiDeviceInfo_t *tiDeviceInfo); 392285242Sachim 393285242Sachim/* 394285242Sachim * Transport recovery module. 395285242Sachim */ 396285242SachimosGLOBAL void tiINITransportRecovery( 397285242Sachim tiRoot_t *tiRoot, 398285242Sachim tiDeviceHandle_t *tiDeviceHandle 399285242Sachim ); 400285242Sachim 401285242SachimosGLOBAL bit32 tiINITaskManagement ( 402285242Sachim tiRoot_t *tiRoot, 403285242Sachim tiDeviceHandle_t *tiDeviceHandle, 404285242Sachim bit32 task, 405285242Sachim tiLUN_t *lun, 406285242Sachim tiIORequest_t *taskTag, 407285242Sachim tiIORequest_t *currentTaskTag 408285242Sachim ); 409285242SachimosGLOBAL bit32 tiINISMPStart( 410285242Sachim tiRoot_t *tiRoot, 411285242Sachim tiIORequest_t *tiIORequest, 412285242Sachim tiDeviceHandle_t *tiDeviceHandle, 413285242Sachim tiSMPFrame_t *tiScsiRequest, 414285242Sachim void *tiSMPBody, 415285242Sachim bit32 interruptContext 416285242Sachim ); 417285242Sachim/* 418285242Sachim * I/O module. 419285242Sachim */ 420285242SachimosGLOBAL bit32 tiINIIOStart( 421285242Sachim tiRoot_t *tiRoot, 422285242Sachim tiIORequest_t *tiIORequest, 423285242Sachim tiDeviceHandle_t *tiDeviceHandle, 424285242Sachim tiScsiInitiatorRequest_t *tiScsiRequest, 425285242Sachim void *tiRequestBody, 426285242Sachim bit32 interruptContext 427285242Sachim ); 428285242Sachim 429285242SachimosGLOBAL void tiINIDebugDumpIO( 430285242Sachim tiRoot_t *tiRoot, 431285242Sachim tiIORequest_t *tiIORequest 432285242Sachim ); 433285242Sachim 434285242SachimosGLOBAL bit32 tiINIIOStartDif( 435285242Sachim tiRoot_t *tiRoot, 436285242Sachim tiIORequest_t *tiIORequest, 437285242Sachim tiDeviceHandle_t *tiDeviceHandle, 438285242Sachim tiScsiInitiatorRequest_t *tiScsiRequest, 439285242Sachim void *tiRequestBody, 440285242Sachim bit32 interruptContext, 441285242Sachim tiDif_t *difOption 442285242Sachim ); 443285242SachimosGLOBAL bit32 tiINISuperIOStart ( 444285242Sachim tiRoot_t *tiRoot, 445285242Sachim tiIORequest_t *tiIORequest, 446285242Sachim tiDeviceHandle_t *tiDeviceHandle, 447285242Sachim tiSuperScsiInitiatorRequest_t *tiScsiRequest, 448285242Sachim void *tiRequestBody, 449285242Sachim bit32 interruptContext 450285242Sachim ); 451285242Sachim 452285242Sachim#ifdef FAST_IO_TEST 453285242SachimosGLOBAL void *tiINIFastIOPrepare( 454285242Sachim tiRoot_t *tiRoot, 455285242Sachim void *ioHandle, 456285242Sachim agsaFastCommand_t *fc); 457285242Sachim 458285242SachimosGLOBAL void* 459285242SachimtiINIFastIOPrepare2( 460285242Sachim tiRoot_t *tiRoot, 461285242Sachim void *ioHandle, 462285242Sachim agsaFastCommand_t *fc, 463285242Sachim void *pMessage, 464285242Sachim void *pRequest); 465285242Sachim 466285242SachimosGLOBAL bit32 tiINIFastIOSend(void *ioHandle); 467285242SachimosGLOBAL bit32 tiINIFastIOCancel(void *ioHandle); 468285242Sachim#endif 469285242Sachim 470285242SachimosGLOBAL bit32 tiCOMEncryptGetMode(tiRoot_t *tiRoot); 471285242SachimosGLOBAL bit32 tiCOMEncryptSetOn_Off(tiRoot_t *tiRoot, bit32 On); 472285242Sachim 473285242SachimosGLOBAL bit32 tiInitDevEncrypt( 474285242Sachim tiRoot_t *tiRoot, 475285242Sachim void *tideviceptr ); 476285242Sachim 477285242SachimosGLOBAL bit32 tiTGTSuperIOStart ( 478285242Sachim tiRoot_t *tiRoot, 479285242Sachim tiIORequest_t *tiIORequest, 480285242Sachim tiSuperScsiTargetRequest_t *tiScsiRequest 481285242Sachim ); 482285242Sachim 483285242SachimosGLOBAL void tiINITimerTick( 484285242Sachim tiRoot_t *tiRoot 485285242Sachim ); 486285242Sachim 487285242Sachim 488285242SachimosGLOBAL bit32 tiINIIOAbort( 489285242Sachim tiRoot_t *tiRoot, 490285242Sachim tiIORequest_t *taskTag 491285242Sachim ); 492285242Sachim 493285242SachimosGLOBAL bit32 tiINIIOAbortAll( 494285242Sachim tiRoot_t *tiRoot, 495285242Sachim tiDeviceHandle_t *tiDeviceHandle 496285242Sachim ); 497285242Sachim/* 498285242Sachim * Event Logging module 499285242Sachim */ 500285242SachimosGLOBAL bit32 tiINIReportErrorToEventLog( 501285242Sachim tiRoot_t *tiRoot, 502285242Sachim tiEVTData_t *agEventData 503285242Sachim ); 504285242Sachim 505285242Sachim 506285242Sachim/***************************************************************************** 507285242Sachim * TARGET SPECIFIC APIs 508285242Sachim *****************************************************************************/ 509285242Sachim 510285242SachimosGLOBAL void tiTGTTimerTick( 511285242Sachim tiRoot_t *tiRoot 512285242Sachim ); 513285242Sachim 514285242SachimosGLOBAL void *tiTGTSenseBufferGet( 515285242Sachim tiRoot_t *tiRoot, 516285242Sachim tiIORequest_t *tiIORequest, 517285242Sachim bit32 length 518285242Sachim ); 519285242Sachim 520285242SachimosGLOBAL void tiTGTSetResp( 521285242Sachim tiRoot_t *tiRoot, 522285242Sachim tiIORequest_t *tiIORequest, 523285242Sachim bit32 dataSentLength, 524285242Sachim bit8 ScsiStatus, 525285242Sachim bit32 senseLength 526285242Sachim ); 527285242Sachim 528285242SachimosGLOBAL bit32 tiTGTIOStart ( 529285242Sachim tiRoot_t *tiRoot, 530285242Sachim tiIORequest_t *tiIORequest, 531285242Sachim bit32 dataOffset, 532285242Sachim bit32 dataLength, 533285242Sachim tiSgl_t *dataSGL, 534285242Sachim void *sglVirtualAddr 535285242Sachim ); 536285242Sachim 537285242SachimosGLOBAL bit32 tiTGTIOStartMirror ( 538285242Sachim tiRoot_t *tiRoot, 539285242Sachim tiIORequest_t *tiIORequest, 540285242Sachim bit32 dataOffset, 541285242Sachim bit32 dataLength, 542285242Sachim tiSgl_t *dataSGL, 543285242Sachim void *sglVirtualAddr, 544285242Sachim tiSgl_t *dataSGLMirror, 545285242Sachim void *sglVirtualAddrMirror 546285242Sachim ); 547285242Sachim 548285242SachimosGLOBAL bit32 tiTGTIOStartDif ( 549285242Sachim tiRoot_t *tiRoot, 550285242Sachim tiIORequest_t *tiIORequest, 551285242Sachim bit32 dataOffset, 552285242Sachim bit32 dataLength, 553285242Sachim tiSgl_t *dataSGL, 554285242Sachim void *sglVirtualAddr, 555285242Sachim tiDif_t *difOption 556285242Sachim ); 557285242Sachim 558285242Sachim 559285242SachimosGLOBAL bit32 tiTGTGetDeviceHandles( 560285242Sachim tiRoot_t *tiRoot, 561285242Sachim tiPortalContext_t *portalContext, 562285242Sachim tiDeviceHandle_t *agDev[], 563285242Sachim bit32 maxDevs 564285242Sachim ); 565285242Sachim 566285242SachimosGLOBAL bit32 tiTGTGetDeviceInfo( 567285242Sachim tiRoot_t *tiRoot, 568285242Sachim tiDeviceHandle_t *tiDeviceHandle, 569285242Sachim tiDeviceInfo_t *tiDeviceInfo); 570285242Sachim 571285242SachimosGLOBAL bit32 tiTGTIOAbort( 572285242Sachim tiRoot_t *tiRoot, 573285242Sachim tiIORequest_t *taskTag 574285242Sachim ); 575285242Sachim 576285242SachimosGLOBAL bit32 tiTGTSendTmResp ( 577285242Sachim tiRoot_t *tiRoot, 578285242Sachim tiIORequest_t *tiTMRequest, 579285242Sachim bit32 status 580285242Sachim ); 581285242Sachim 582285242Sachimvoid tiPCI_TRIGGER( tiRoot_t *tiRoot); 583285242Sachim 584285242Sachimvoid tiComCountActiveIORequests( tiRoot_t *tiRoot); 585285242Sachim 586285242Sachim#endif /* TIAPI_H */ 587