The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/pms/RefTisa/sat/src/smproto.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*******************************************************************************
    2 *Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved. 
    3 *
    4 *Redistribution and use in source and binary forms, with or without modification, are permitted provided 
    5 *that the following conditions are met: 
    6 *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
    7 *following disclaimer. 
    8 *2. Redistributions in binary form must reproduce the above copyright notice, 
    9 *this list of conditions and the following disclaimer in the documentation and/or other materials provided
   10 *with the distribution. 
   11 *
   12 *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 
   13 *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
   14 *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   15 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
   16 *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
   17 *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
   18 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
   19 *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
   20 *
   21 * $FreeBSD$
   22 *
   23 ********************************************************************************/
   24 #ifndef __SMPROTO_H__
   25 #define __SMPROTO_H__
   26 
   27 #include <dev/pms/RefTisa/sat/src/smtypes.h>
   28 
   29 /***************** start of util ****************************************/
   30 osGLOBAL FORCEINLINE void*
   31 sm_memset(void *s, int c, bit32 n);
   32 
   33 osGLOBAL FORCEINLINE void *
   34 sm_memcpy(void *dst, const void *src, bit32 count);
   35 
   36 osGLOBAL char 
   37 *sm_strncpy(char *dst, const char *src, bit32 len);
   38 
   39 
   40 osGLOBAL void 
   41 smhexdump(const char *ptitle, bit8 *pbuf, size_t len);
   42 /***************** end of util ****************************************/
   43 
   44 /***************** start of timer fns ****************************************/
   45 osGLOBAL void   
   46 smTimerTick(smRoot_t            *smRoot );
   47 
   48 osGLOBAL void
   49 smInitTimerRequest(
   50                    smRoot_t                *smRoot, 
   51                    smTimerRequest_t        *timerRequest
   52                   );
   53 osGLOBAL void
   54 smSetTimerRequest(
   55                   smRoot_t            *smRoot,
   56                   smTimerRequest_t    *timerRequest,
   57                   bit32               timeout,
   58                   smTimerCBFunc_t     CBFunc,
   59                   void                *timerData1,
   60                   void                *timerData2,
   61                   void                *timerData3
   62                   );
   63 
   64 osGLOBAL void
   65 smAddTimer(
   66            smRoot_t            *smRoot,
   67            smList_t            *timerListHdr, 
   68            smTimerRequest_t    *timerRequest
   69           );
   70 
   71 osGLOBAL void
   72 smKillTimer(
   73             smRoot_t            *smRoot,
   74             smTimerRequest_t    *timerRequest
   75            );
   76 
   77 osGLOBAL void 
   78 smProcessTimers(
   79                 smRoot_t *smRoot
   80                );
   81                                                                                                                                   
   82 
   83 /***************** end of timer fns ****************************************/
   84 
   85 osGLOBAL void
   86 smInitTimers(
   87              smRoot_t *smRoot 
   88             );
   89 
   90 osGLOBAL void
   91 smDeviceDataInit(
   92                  smRoot_t *smRoot,
   93                  bit32    max_dev                 
   94                 );
   95 
   96 osGLOBAL void
   97 smIOInit(
   98          smRoot_t *smRoot 
   99         );
  100 
  101 osGLOBAL FORCEINLINE void
  102 smIOReInit(
  103           smRoot_t          *smRoot,
  104           smIORequestBody_t *smIORequestBody
  105           );
  106 
  107 osGLOBAL void
  108 smDeviceDataReInit(
  109                    smRoot_t        *smRoot,
  110                    smDeviceData_t  *oneDeviceData       
  111                   );
  112 
  113 osGLOBAL void  
  114 smEnqueueIO(
  115              smRoot_t           *smRoot,
  116              smSatIOContext_t   *satIOContext
  117              );
  118 
  119 osGLOBAL FORCEINLINE void  
  120 smsatFreeIntIoResource(
  121              smRoot_t           *smRoot,
  122              smDeviceData_t     *satDevData,
  123              smSatInternalIo_t  *satIntIo
  124              );
  125 
  126 osGLOBAL smSatInternalIo_t * 
  127 smsatAllocIntIoResource(
  128                         smRoot_t              *smRoot,
  129                         smIORequest_t         *smIORequest,
  130                         smDeviceData_t        *satDevData,
  131                         bit32                 dmaAllocLength,
  132                         smSatInternalIo_t     *satIntIo);
  133 
  134 
  135 
  136 osGLOBAL smDeviceData_t *
  137 smAddToSharedcontext(
  138                      smRoot_t                   *smRoot,
  139                      agsaDevHandle_t            *agDevHandle,
  140                      smDeviceHandle_t           *smDeviceHandle,
  141                      agsaDevHandle_t            *agExpDevHandle,
  142                      bit32                      phyID
  143                     );
  144 
  145 osGLOBAL bit32
  146 smRemoveFromSharedcontext(
  147                           smRoot_t                      *smRoot,
  148                           agsaDevHandle_t               *agDevHandle,
  149                           smDeviceHandle_t              *smDeviceHandle
  150                          );
  151 
  152 osGLOBAL smDeviceData_t *
  153 smFindInSharedcontext(
  154                       smRoot_t                  *smRoot,
  155                       agsaDevHandle_t           *agDevHandle
  156                       );
  157 
  158 osGLOBAL bit32  
  159 smsatLogSenseAllocate(
  160                       smRoot_t                  *smRoot,
  161                       smIORequest_t             *smIORequest,
  162                       smDeviceHandle_t          *smDeviceHandle,
  163                       smScsiInitiatorRequest_t  *smSCSIRequest,
  164                       smSatIOContext_t            *satIOContext,
  165                       bit32                     payloadSize,
  166                       bit32                     flag
  167                      );
  168 
  169 osGLOBAL bit32  
  170 smsatIDSubStart(
  171                  smRoot_t                 *smRoot,
  172                  smIORequest_t            *smIORequest,
  173                  smDeviceHandle_t         *smDeviceHandle,
  174                  smScsiInitiatorRequest_t *smSCSIRequest,
  175                  smSatIOContext_t           *satIOContext
  176                );
  177 
  178 
  179 osGLOBAL bit32  
  180 smsatIDStart(
  181               smRoot_t                  *smRoot,
  182               smIORequest_t             *smIORequest,
  183               smDeviceHandle_t          *smDeviceHandle,
  184               smScsiInitiatorRequest_t  *smSCSIRequest,
  185               smSatIOContext_t            *satIOContext
  186              );
  187 
  188 
  189 osGLOBAL FORCEINLINE bit32  
  190 smsatIOStart(
  191               smRoot_t                  *smRoot,
  192               smIORequest_t             *smIORequest,
  193               smDeviceHandle_t          *smDeviceHandle,
  194               smScsiInitiatorRequest_t  *smSCSIRequest,
  195               smSatIOContext_t            *satIOContext
  196              );
  197 
  198 osGLOBAL void 
  199 smsatSetSensePayload( 
  200                      smScsiRspSense_t   *pSense,
  201                      bit8               SnsKey,
  202                      bit32              SnsInfo,
  203                      bit16              SnsCode,
  204                      smSatIOContext_t     *satIOContext
  205                     );
  206 
  207 osGLOBAL void 
  208 smsatSetDeferredSensePayload( 
  209                              smScsiRspSense_t *pSense,
  210                              bit8             SnsKey,
  211                              bit32            SnsInfo,
  212                              bit16            SnsCode,
  213                              smSatIOContext_t   *satIOContext                         
  214                             );
  215 
  216 osGLOBAL FORCEINLINE bit32 
  217 smsatIOPrepareSGL(
  218                   smRoot_t                 *smRoot,
  219                   smIORequestBody_t        *smIORequestBody,
  220                   smSgl_t                  *smSgl1,
  221                   void                     *sglVirtualAddr
  222                   );
  223 osGLOBAL FORCEINLINE void 
  224 smsatBitSet(smRoot_t *smRoot,bit8 *data, bit32 index);
  225 
  226 osGLOBAL FORCEINLINE void 
  227 smsatBitClear(smRoot_t *smRoot,bit8 *data, bit32 index);
  228 
  229 osGLOBAL FORCEINLINE BOOLEAN
  230 smsatBitTest(smRoot_t *smRoot,bit8 *data, bit32 index);
  231 
  232 osGLOBAL FORCEINLINE bit32 
  233 smsatTagAlloc(
  234                smRoot_t         *smRoot,
  235                smDeviceData_t   *pSatDevData,
  236                bit8             *pTag
  237              );
  238 
  239 osGLOBAL FORCEINLINE bit32 
  240 smsatTagRelease(
  241                 smRoot_t         *smRoot,
  242                 smDeviceData_t   *pSatDevData,
  243                 bit8              tag
  244                );
  245 
  246 osGLOBAL FORCEINLINE void 
  247 smsatDecrementPendingIO(
  248                         smRoot_t                *smRoot,
  249                         smIntContext_t          *smAllShared,
  250                         smSatIOContext_t        *satIOContext
  251                         );
  252 
  253 osGLOBAL smSatIOContext_t * 
  254 smsatPrepareNewIO(
  255                   smSatInternalIo_t       *satNewIntIo,
  256                   smIORequest_t           *smOrgIORequest,
  257                   smDeviceData_t          *satDevData,
  258                   smIniScsiCmnd_t         *scsiCmnd,
  259                   smSatIOContext_t        *satOrgIOContext
  260                  );
  261 
  262 osGLOBAL void 
  263 smsatSetDevInfo(
  264                  smDeviceData_t            *oneDeviceData,
  265                  agsaSATAIdentifyData_t    *SATAIdData
  266                );
  267 
  268 osGLOBAL void 
  269 smsatInquiryStandard(
  270                      bit8                    *pInquiry, 
  271                      agsaSATAIdentifyData_t  *pSATAIdData,
  272                      smIniScsiCmnd_t         *scsiCmnd
  273                     );
  274 
  275 osGLOBAL void 
  276 smsatInquiryPage0(
  277                    bit8                    *pInquiry, 
  278                    agsaSATAIdentifyData_t  *pSATAIdData
  279                  );
  280 
  281 osGLOBAL void 
  282 smsatInquiryPage83(
  283                     bit8                    *pInquiry, 
  284                     agsaSATAIdentifyData_t  *pSATAIdData,
  285                     smDeviceData_t          *oneDeviceData
  286                   );
  287 
  288 
  289 osGLOBAL void 
  290 smsatInquiryPage89(
  291                     bit8                    *pInquiry, 
  292                     agsaSATAIdentifyData_t  *pSATAIdData,
  293                     smDeviceData_t          *oneDeviceData,
  294                     bit32                   len
  295                   );
  296 
  297 osGLOBAL void 
  298 smsatInquiryPage80(
  299                     bit8                    *pInquiry, 
  300                     agsaSATAIdentifyData_t  *pSATAIdData
  301                    );
  302 
  303 osGLOBAL void 
  304 smsatInquiryPageB1(
  305                     bit8                    *pInquiry, 
  306                     agsaSATAIdentifyData_t  *pSATAIdData
  307                    );
  308 
  309 osGLOBAL void 
  310 smsatDefaultTranslation(
  311                         smRoot_t                  *smRoot, 
  312                         smIORequest_t             *smIORequest,
  313                         smSatIOContext_t            *satIOContext,
  314                         smScsiRspSense_t          *pSense,
  315                         bit8                      ataStatus,
  316                         bit8                      ataError,
  317                         bit32                     interruptContext 
  318                        );
  319                        
  320 osGLOBAL bit32
  321 smPhyControlSend(
  322                   smRoot_t             *smRoot, 
  323                   smDeviceData_t       *oneDeviceData,
  324                   bit8                 phyOp,
  325                   smIORequest_t        *CurrentTaskTag,
  326                   bit32                queueNumber                
  327                 );
  328 
  329 osGLOBAL bit32 
  330 smsatTaskManagement(
  331                     smRoot_t          *smRoot, 
  332                     smDeviceHandle_t  *smDeviceHandle,
  333                     bit32             task,
  334                     smLUN_t           *lun,
  335                     smIORequest_t     *taskTag,
  336                     smIORequest_t     *currentTaskTag,
  337                     smIORequestBody_t *smIORequestBody
  338                    );
  339                        
  340 osGLOBAL bit32 
  341 smsatTmAbortTask(
  342                   smRoot_t                  *smRoot, 
  343                   smIORequest_t             *currentTaskTag, 
  344                   smDeviceHandle_t          *smDeviceHandle,
  345                   smScsiInitiatorRequest_t  *tiScsiRequest,
  346                   smSatIOContext_t            *satIOContext,
  347                   smIORequest_t             *taskTag);
  348 
  349 osGLOBAL bit32  
  350 smsatStartCheckPowerMode(
  351                          smRoot_t                  *smRoot, 
  352                          smIORequest_t             *currentTaskTag, 
  353                          smDeviceHandle_t          *smDeviceHandle,
  354                          smScsiInitiatorRequest_t  *smScsiRequest,
  355                          smSatIOContext_t            *satIOContext
  356                         );
  357 osGLOBAL bit32  
  358 smsatStartResetDevice(
  359                        smRoot_t                  *smRoot, 
  360                        smIORequest_t             *currentTaskTag, 
  361                        smDeviceHandle_t          *smDeviceHandle,
  362                        smScsiInitiatorRequest_t  *smScsiRequest,
  363                        smSatIOContext_t            *satIOContext
  364                      );
  365 osGLOBAL void 
  366 smsatAbort(
  367            smRoot_t          *smRoot,
  368            agsaRoot_t        *agRoot,
  369            smSatIOContext_t    *satIOContext
  370           );
  371 
  372 osGLOBAL smIORequestBody_t *
  373 smDequeueIO(smRoot_t          *smRoot);
  374 
  375 osGLOBAL bit32
  376 smsatDecodeSATADeviceType(bit8 * pSignature);
  377 
  378 /******************************** beginning of start ******************************************************/
  379 
  380 /*! \brief SAT implementation for ATAPI Packet Command.
  381  *
  382  *  SAT implementation for ATAPI Packet and send FIS request to LL layer.
  383  * 
  384  *  \param   smRoot:           Pointer to TISA initiator driver/port instance.
  385  *  \param   smIORequest:      Pointer to TISA I/O request context for this I/O.
  386  *  \param   smDeviceHandle:   Pointer to TISA device handle for this I/O.
  387  *  \param   smScsiRequest:    Pointer to TISA SCSI I/O request and SGL list. 
  388  *  \param   smSatIOContext_t:   Pointer to the SAT IO Context
  389  *
  390  *  \return If command is started successfully
  391  *    - \e smIOSuccess:           I/O request successfully initiated. 
  392  *    - \e smIOBusy:        No resources available, try again later. 
  393  *    - \e smIOIONoDevice:  Invalid device handle.
  394  *    - \e smIOError:       Other errors.
  395  */         
  396 /*****************************************************************************/
  397 osGLOBAL bit32
  398 smsatPacket(
  399             smRoot_t                  *smRoot, 
  400             smIORequest_t             *smIORequest,
  401             smDeviceHandle_t          *smDeviceHandle,
  402             smScsiInitiatorRequest_t  *smScsiRequest,
  403             smSatIOContext_t            *satIOContext
  404             );
  405 
  406 osGLOBAL void 
  407 smsatPacketCB(
  408             agsaRoot_t        *agRoot,
  409             agsaIORequest_t   *agIORequest,
  410             bit32             agIOStatus,
  411             agsaFisHeader_t   *agFirstDword,
  412             bit32             agIOInfoLen,
  413             void              *agParam,
  414             void              *ioContext
  415             );
  416 /*****************************************************************************/
  417 /*! \brief SAT implementation for smsatExecuteDeviceDiagnostic.
  418  *
  419  *  This function creates Execute Device Diagnostic fis and sends the request to LL layer
  420  * 
  421  *  \param   smRoot:           Pointer to TISA initiator driver/port instance.
  422  *  \param   smIORequest:      Pointer to TISA I/O request context for this I/O.
  423  *  \param   smDeviceHandle:   Pointer to TISA device handle for this I/O.
  424  *  \param   smScsiRequest:    Pointer to TISA SCSI I/O request and SGL list. 
  425  *  \param   smSatIOContext_t:   Pointer to the SAT IO Context
  426  *
  427  *  \return If command is started successfully
  428  *    - \e smIOSuccess:           I/O request successfully initiated. 
  429  *    - \e smIOBusy:        No resources available, try again later. 
  430  *    - \e smIOIONoDevice:  Invalid device handle.
  431  *    - \e smIOError:       Other errors.
  432 
  433  */         
  434 /*****************************************************************************/
  435 osGLOBAL bit32
  436 smsatExecuteDeviceDiagnostic(
  437        smRoot_t                  *smRoot, 
  438        smIORequest_t             *smIORequest,
  439        smDeviceHandle_t          *smDeviceHandle,
  440        smScsiInitiatorRequest_t  *smScsiRequest,
  441        smSatIOContext_t            *satIOContext
  442        );
  443 
  444 osGLOBAL void 
  445 smsatExecuteDeviceDiagnosticCB(
  446        agsaRoot_t        *agRoot,
  447        agsaIORequest_t   *agIORequest,
  448        bit32             agIOStatus,
  449        agsaFisHeader_t   *agFirstDword,
  450        bit32             agIOInfoLen,
  451        void              *agParam,
  452        void              *ioContext
  453        );
  454 /* set feature for auto activate */       
  455 osGLOBAL bit32
  456 smsatSetFeaturesAA(
  457            smRoot_t                  *smRoot, 
  458            smIORequest_t             *smIORequest,
  459            smDeviceHandle_t          *smDeviceHandle,
  460            smScsiInitiatorRequest_t  *smScsiRequest,
  461            smSatIOContext_t            *satIOContext
  462            );
  463 osGLOBAL void
  464 smsatSetFeaturesAACB(
  465          agsaRoot_t        *agRoot,
  466          agsaIORequest_t   *agIORequest,
  467          bit32             agIOStatus,
  468          agsaFisHeader_t   *agFirstDword,
  469          bit32             agIOInfoLen,
  470          void              *agParam,
  471          void              *ioContext
  472          );
  473 
  474 /*****************************************************************************/
  475 /*! \brief SAT implementation for satSetFeatures.
  476  *
  477  *  This function creates SetFeatures fis and sends the request to LL layer
  478  * 
  479  *  \param   smRoot:           Pointer to TISA initiator driver/port instance.
  480  *  \param   smIORequest:      Pointer to TISA I/O request context for this I/O.
  481  *  \param   smDeviceHandle:   Pointer to TISA device handle for this I/O.
  482  *  \param   smScsiRequest:    Pointer to TISA SCSI I/O request and SGL list. 
  483  *  \param   smSatIOContext_t:   Pointer to the SAT IO Context
  484  *
  485  *  \return If command is started successfully
  486  *    - \e smIOSuccess:           I/O request successfully initiated. 
  487  *    - \e smIOBusy:        No resources available, try again later. 
  488  *    - \e smIOIONoDevice:  Invalid device handle.
  489  *    - \e smIOError:       Other errors.
  490  */         
  491 /*****************************************************************************/
  492 osGLOBAL bit32
  493 smsatSetFeaturesPIO(
  494            smRoot_t                  *smRoot, 
  495            smIORequest_t             *smIORequest,
  496            smDeviceHandle_t          *smDeviceHandle,
  497            smScsiInitiatorRequest_t  *smScsiRequest,
  498            smSatIOContext_t          *satIOContext
  499            );
  500 osGLOBAL void
  501 smsatSetFeaturesPIOCB(
  502           agsaRoot_t        *agRoot,
  503           agsaIORequest_t   *agIORequest,
  504           bit32             agIOStatus,
  505           agsaFisHeader_t   *agFirstDword,
  506           bit32             agIOInfoLen,
  507           void              *agParam,
  508           void              *ioContext
  509           );
  510 
  511 osGLOBAL bit32
  512 smsatSetFeaturesDMA(
  513            smRoot_t                  *smRoot, 
  514            smIORequest_t             *smIORequest,
  515            smDeviceHandle_t          *smDeviceHandle,
  516            smScsiInitiatorRequest_t  *smScsiRequest,
  517            smSatIOContext_t            *satIOContext
  518            );
  519 
  520 osGLOBAL void
  521 smsatSetFeaturesDMACB(
  522          agsaRoot_t        *agRoot,
  523          agsaIORequest_t   *agIORequest,
  524          bit32             agIOStatus,
  525          agsaFisHeader_t   *agFirstDword,
  526          bit32             agIOInfoLen,
  527          void              *agParam,
  528          void              *ioContext
  529          );
  530 
  531 osGLOBAL bit32
  532 smsatSetFeaturesReadLookAhead(
  533            smRoot_t                  *smRoot, 
  534            smIORequest_t             *smIORequest,
  535            smDeviceHandle_t          *smDeviceHandle,
  536            smScsiInitiatorRequest_t  *smScsiRequest,
  537            smSatIOContext_t            *satIOContext
  538            );
  539 
  540 osGLOBAL void
  541 smsatSetFeaturesReadLookAheadCB(
  542          agsaRoot_t        *agRoot,
  543          agsaIORequest_t   *agIORequest,
  544          bit32             agIOStatus,
  545          agsaFisHeader_t   *agFirstDword,
  546          bit32             agIOInfoLen,
  547          void              *agParam,
  548          void              *ioContext
  549          );
  550 
  551 osGLOBAL bit32
  552 smsatSetFeaturesVolatileWriteCache(
  553            smRoot_t                  *smRoot, 
  554            smIORequest_t             *smIORequest,
  555            smDeviceHandle_t          *smDeviceHandle,
  556            smScsiInitiatorRequest_t  *smScsiRequest,
  557            smSatIOContext_t            *satIOContext
  558            );
  559 
  560 osGLOBAL void
  561 smsatSetFeaturesVolatileWriteCacheCB(
  562          agsaRoot_t        *agRoot,
  563          agsaIORequest_t   *agIORequest,
  564          bit32             agIOStatus,
  565          agsaFisHeader_t   *agFirstDword,
  566          bit32             agIOInfoLen,
  567          void              *agParam,
  568          void              *ioContext
  569          );
  570 
  571 osGLOBAL void
  572 smsatSMARTEnablePassCB(
  573                      agsaRoot_t        *agRoot,
  574                      agsaIORequest_t   *agIORequest,
  575                      bit32             agIOStatus,
  576                      agsaFisHeader_t   *agFirstDword,
  577                      bit32             agIOInfoLen,
  578                      agsaFrameHandle_t agFrameHandle,
  579                      void              *ioContext
  580                     );
  581 
  582 osGLOBAL void 
  583 smsatSMARTRStatusPassCB(
  584                 agsaRoot_t        *agRoot,
  585                 agsaIORequest_t   *agIORequest,
  586                 bit32             agIOStatus,
  587                 agsaFisHeader_t   *agFirstDword,
  588                 bit32             agIOInfoLen,
  589                 void              *agParam,
  590                 void              *ioContext                   
  591                );
  592 osGLOBAL void 
  593 smsatSMARTReadLogCB(
  594                 agsaRoot_t        *agRoot,
  595                 agsaIORequest_t   *agIORequest,
  596                 bit32             agIOStatus,
  597                 agsaFisHeader_t   *agFirstDword,
  598                 bit32             agIOInfoLen,
  599                 void              *agParam,
  600                 void              *ioContext                   
  601                );
  602 
  603 
  604 /*****************************************************************************/
  605 /*! \brief SAT implementation for SCSI REQUEST SENSE to ATAPI device.
  606  *
  607  *  SAT implementation for SCSI REQUEST SENSE.
  608  * 
  609  *  \param   smRoot:           Pointer to TISA initiator driver/port instance.
  610  *  \param   smIORequest:      Pointer to TISA I/O request context for this I/O.
  611  *  \param   smDeviceHandle:   Pointer to TISA device handle for this I/O.
  612  *  \param   smScsiRequest:    Pointer to TISA SCSI I/O request and SGL list. 
  613  *  \param   smSatIOContext_t:   Pointer to the SAT IO Context
  614  *
  615  *  \return If command is started successfully
  616  *    - \e smIOSuccess:           I/O request successfully initiated. 
  617  *    - \e smIOBusy:        No resources available, try again later. 
  618  *    - \e smIOIONoDevice:  Invalid device handle.
  619  *    - \e smIOError:       Other errors.
  620  */         
  621 /*****************************************************************************/
  622 osGLOBAL bit32  
  623 smsatRequestSenseForATAPI(
  624         smRoot_t                  *smRoot, 
  625         smIORequest_t             *smIORequest,
  626         smDeviceHandle_t          *smDeviceHandle,
  627         smScsiInitiatorRequest_t  *smScsiRequest,
  628         smSatIOContext_t            *satIOContext
  629         );
  630 
  631 osGLOBAL void 
  632 smsatRequestSenseForATAPICB(
  633         agsaRoot_t        *agRoot,
  634         agsaIORequest_t   *agIORequest,
  635         bit32             agIOStatus,
  636         agsaFisHeader_t   *agFirstDword,
  637         bit32             agIOInfoLen,
  638         void              *agParam,
  639         void              *ioContext
  640         );
  641 
  642 /*****************************************************************************/
  643 /*! \brief SAT implementation for smsatDeviceReset.
  644  *
  645  *  This function creates DEVICE RESET fis and sends the request to LL layer
  646  * 
  647  *  \param   smRoot:           Pointer to TISA initiator driver/port instance.
  648  *  \param   smIORequest:      Pointer to TISA I/O request context for this I/O.
  649  *  \param   smDeviceHandle:   Pointer to TISA device handle for this I/O.
  650  *  \param   smScsiRequest:    Pointer to TISA SCSI I/O request and SGL list. 
  651  *  \param   smSatIOContext_t:   Pointer to the SAT IO Context
  652  *
  653  *  \return If command is started successfully
  654  *    - \e smIOSuccess:           I/O request successfully initiated. 
  655  *    - \e smIOBusy:        No resources available, try again later. 
  656  *    - \e smIONoDevice:  Invalid device handle.
  657  *    - \e smIOError:       Other errors.
  658  */          
  659 /*****************************************************************************/
  660 osGLOBAL bit32  
  661 smsatDeviceReset(
  662         smRoot_t                  *smRoot, 
  663         smIORequest_t             *smIORequest,
  664         smDeviceHandle_t          *smDeviceHandle,
  665         smScsiInitiatorRequest_t  *smScsiRequest,
  666         smSatIOContext_t            *satIOContext
  667         );
  668 
  669 osGLOBAL void
  670 smsatDeviceResetCB(
  671          agsaRoot_t        *agRoot,
  672          agsaIORequest_t   *agIORequest,
  673          bit32             agIOStatus,
  674          agsaFisHeader_t   *agFirstDword,
  675          bit32             agIOInfoLen,
  676          void              *agParam,
  677          void              *ioContext
  678          );
  679 
  680 
  681 osGLOBAL void 
  682 smsatTranslateATAPIErrorsToSCSIErrors(
  683         bit8   bCommand,
  684         bit8   bATAStatus,
  685         bit8   bATAError,
  686         bit8   *pSenseKey,
  687         bit16  *pSenseCodeInfo
  688         );
  689 
  690 GLOBAL void 
  691 smsatTranslateATAErrorsToSCSIErrors(
  692     bit8   bATAStatus,
  693     bit8   bATAError,
  694     bit8   *pSenseKey,
  695     bit16  *pSenseCodeInfo
  696     );
  697 
  698 /*****************************************************************************/
  699 
  700 osGLOBAL bit32  
  701 smsatRead6(
  702            smRoot_t                  *smRoot, 
  703            smIORequest_t             *smIORequest,
  704            smDeviceHandle_t          *smDeviceHandle,
  705            smScsiInitiatorRequest_t  *smScsiRequest,
  706            smSatIOContext_t            *satIOContext
  707           );
  708 
  709 osGLOBAL FORCEINLINE bit32  
  710 smsatRead10(
  711             smRoot_t                  *smRoot, 
  712             smIORequest_t             *smIORequest,
  713             smDeviceHandle_t          *smDeviceHandle,
  714             smScsiInitiatorRequest_t  *smScsiRequest,
  715             smSatIOContext_t            *satIOContext
  716            );
  717 
  718 osGLOBAL bit32  
  719 smsatRead12(
  720             smRoot_t                  *smRoot, 
  721             smIORequest_t             *smIORequest,
  722             smDeviceHandle_t          *smDeviceHandle,
  723             smScsiInitiatorRequest_t  *smScsiRequest,
  724             smSatIOContext_t            *satIOContext
  725            );
  726 
  727 osGLOBAL bit32  
  728 smsatRead16(
  729             smRoot_t                  *smRoot, 
  730             smIORequest_t             *smIORequest,
  731             smDeviceHandle_t          *smDeviceHandle,
  732             smScsiInitiatorRequest_t  *smScsiRequest,
  733             smSatIOContext_t            *satIOContext
  734            );
  735 
  736 osGLOBAL bit32  
  737 smsatWrite6(
  738             smRoot_t                  *smRoot, 
  739             smIORequest_t             *smIORequest,
  740             smDeviceHandle_t          *smDeviceHandle,
  741             smScsiInitiatorRequest_t  *smScsiRequest,
  742             smSatIOContext_t            *satIOContext
  743            );
  744 
  745 osGLOBAL FORCEINLINE bit32  
  746 smsatWrite10(
  747              smRoot_t                  *smRoot, 
  748              smIORequest_t             *smIORequest,
  749              smDeviceHandle_t          *smDeviceHandle,
  750              smScsiInitiatorRequest_t  *smScsiRequest,
  751              smSatIOContext_t            *satIOContext
  752             );
  753 
  754 osGLOBAL bit32  
  755 smsatWrite12(
  756              smRoot_t                  *smRoot, 
  757              smIORequest_t             *smIORequest,
  758              smDeviceHandle_t          *smDeviceHandle,
  759              smScsiInitiatorRequest_t  *smScsiRequest,
  760              smSatIOContext_t            *satIOContext
  761             );
  762 
  763 osGLOBAL bit32  
  764 smsatWrite16(
  765              smRoot_t                  *smRoot, 
  766              smIORequest_t             *smIORequest,
  767              smDeviceHandle_t          *smDeviceHandle,
  768              smScsiInitiatorRequest_t  *smScsiRequest,
  769              smSatIOContext_t            *satIOContext
  770             );
  771 
  772 osGLOBAL bit32  
  773 smsatVerify10(
  774               smRoot_t                  *smRoot, 
  775               smIORequest_t             *smIORequest,
  776               smDeviceHandle_t          *smDeviceHandle,
  777               smScsiInitiatorRequest_t  *smScsiRequest,
  778               smSatIOContext_t            *satIOContext
  779              );
  780 
  781 osGLOBAL bit32  
  782 smsatVerify12(
  783               smRoot_t                  *smRoot, 
  784               smIORequest_t             *smIORequest,
  785               smDeviceHandle_t          *smDeviceHandle,
  786               smScsiInitiatorRequest_t  *smScsiRequest,
  787               smSatIOContext_t            *satIOContext
  788              );
  789 
  790 osGLOBAL bit32  
  791 smsatVerify16(
  792               smRoot_t                  *smRoot, 
  793               smIORequest_t             *smIORequest,
  794               smDeviceHandle_t          *smDeviceHandle,
  795               smScsiInitiatorRequest_t  *smScsiRequest,
  796               smSatIOContext_t            *satIOContext
  797              );
  798 
  799 osGLOBAL bit32  
  800 smsatTestUnitReady(
  801                    smRoot_t                  *smRoot, 
  802                    smIORequest_t             *smIORequest,
  803                    smDeviceHandle_t          *smDeviceHandle,
  804                    smScsiInitiatorRequest_t  *smScsiRequest,
  805                    smSatIOContext_t            *satIOContext
  806                   );
  807 
  808 osGLOBAL bit32  
  809 smsatInquiry(
  810              smRoot_t                  *smRoot, 
  811              smIORequest_t             *smIORequest,
  812              smDeviceHandle_t          *smDeviceHandle,
  813              smScsiInitiatorRequest_t  *smScsiRequest,
  814              smSatIOContext_t            *satIOContext
  815             );
  816 
  817 osGLOBAL bit32  
  818 smsatRequestSense(
  819                   smRoot_t                  *smRoot, 
  820                   smIORequest_t             *smIORequest,
  821                   smDeviceHandle_t          *smDeviceHandle,
  822                   smScsiInitiatorRequest_t  *smScsiRequest,
  823                   smSatIOContext_t            *satIOContext
  824                  );
  825 
  826 osGLOBAL bit32  
  827 smsatModeSense6(
  828                 smRoot_t                  *smRoot, 
  829                 smIORequest_t             *smIORequest,
  830                 smDeviceHandle_t          *smDeviceHandle,
  831                 smScsiInitiatorRequest_t  *smScsiRequest,
  832                 smSatIOContext_t            *satIOContext
  833                );
  834 
  835 osGLOBAL bit32  
  836 smsatModeSense10(
  837                   smRoot_t                  *smRoot, 
  838                   smIORequest_t             *smIORequest,
  839                   smDeviceHandle_t          *smDeviceHandle,
  840                   smScsiInitiatorRequest_t  *smScsiRequest,
  841                   smSatIOContext_t            *satIOContext
  842                  );
  843 
  844 osGLOBAL bit32  
  845 smsatReadCapacity10(
  846                     smRoot_t                  *smRoot, 
  847                     smIORequest_t             *smIORequest,
  848                     smDeviceHandle_t          *smDeviceHandle,
  849                     smScsiInitiatorRequest_t  *smScsiRequest,
  850                     smSatIOContext_t            *satIOContext
  851                    );
  852 
  853 osGLOBAL bit32  
  854 smsatReadCapacity16(
  855                     smRoot_t                  *smRoot, 
  856                     smIORequest_t             *smIORequest,
  857                     smDeviceHandle_t          *smDeviceHandle,
  858                     smScsiInitiatorRequest_t  *smScsiRequest,
  859                     smSatIOContext_t            *satIOContext
  860                    );
  861 
  862 osGLOBAL bit32  
  863 smsatReportLun(
  864                smRoot_t                  *smRoot, 
  865                smIORequest_t             *smIORequest,
  866                smDeviceHandle_t          *smDeviceHandle,
  867                smScsiInitiatorRequest_t  *smScsiRequest,
  868                smSatIOContext_t            *satIOContext
  869               );
  870 
  871 osGLOBAL bit32  
  872 smsatFormatUnit(
  873                 smRoot_t                  *smRoot, 
  874                 smIORequest_t             *smIORequest,
  875                 smDeviceHandle_t          *smDeviceHandle,
  876                 smScsiInitiatorRequest_t  *smScsiRequest,
  877                 smSatIOContext_t            *satIOContext
  878                );
  879 
  880 osGLOBAL bit32  
  881 smsatSendDiagnostic(
  882                     smRoot_t                  *smRoot, 
  883                     smIORequest_t             *smIORequest,
  884                     smDeviceHandle_t          *smDeviceHandle,
  885                     smScsiInitiatorRequest_t  *smScsiRequest,
  886                     smSatIOContext_t            *satIOContext
  887                    );
  888 
  889 osGLOBAL bit32  
  890 smsatStartStopUnit(
  891                    smRoot_t                  *smRoot, 
  892                    smIORequest_t             *smIORequest,
  893                    smDeviceHandle_t          *smDeviceHandle,
  894                    smScsiInitiatorRequest_t  *smScsiRequest,
  895                    smSatIOContext_t            *satIOContext
  896                   );
  897 
  898 osGLOBAL bit32  
  899 smsatWriteSame10(
  900                   smRoot_t                  *smRoot, 
  901                   smIORequest_t             *smIORequest,
  902                   smDeviceHandle_t          *smDeviceHandle,
  903                   smScsiInitiatorRequest_t  *smScsiRequest,
  904                   smSatIOContext_t            *satIOContext
  905                  );
  906 
  907 osGLOBAL bit32  
  908 smsatWriteSame16(
  909                   smRoot_t                  *smRoot, 
  910                   smIORequest_t             *smIORequest,
  911                   smDeviceHandle_t          *smDeviceHandle,
  912                   smScsiInitiatorRequest_t  *smScsiRequest,
  913                   smSatIOContext_t            *satIOContext
  914                  );
  915 
  916 osGLOBAL bit32  
  917 smsatLogSense(
  918               smRoot_t                  *smRoot, 
  919               smIORequest_t             *smIORequest,
  920               smDeviceHandle_t          *smDeviceHandle,
  921               smScsiInitiatorRequest_t  *smScsiRequest,
  922               smSatIOContext_t            *satIOContext
  923              );
  924 
  925 osGLOBAL bit32  
  926 smsatModeSelect6(
  927                  smRoot_t                  *smRoot, 
  928                  smIORequest_t             *smIORequest,
  929                  smDeviceHandle_t          *smDeviceHandle,
  930                  smScsiInitiatorRequest_t  *smScsiRequest,
  931                  smSatIOContext_t            *satIOContext
  932                 );
  933 
  934 
  935 osGLOBAL bit32  
  936 smsatModeSelect10(
  937                   smRoot_t                  *smRoot, 
  938                   smIORequest_t             *smIORequest,
  939                   smDeviceHandle_t          *smDeviceHandle,
  940                   smScsiInitiatorRequest_t  *smScsiRequest,
  941                   smSatIOContext_t            *satIOContext
  942                  );
  943 
  944 osGLOBAL bit32  
  945 smsatSynchronizeCache10(
  946                         smRoot_t                  *smRoot, 
  947                         smIORequest_t             *smIORequest,
  948                         smDeviceHandle_t          *smDeviceHandle,
  949                         smScsiInitiatorRequest_t  *smScsiRequest,
  950                         smSatIOContext_t            *satIOContext
  951                        );
  952 
  953 osGLOBAL bit32  
  954 smsatSynchronizeCache16(
  955                         smRoot_t                  *smRoot, 
  956                         smIORequest_t             *smIORequest,
  957                         smDeviceHandle_t          *smDeviceHandle,
  958                         smScsiInitiatorRequest_t  *smScsiRequest,
  959                         smSatIOContext_t            *satIOContext
  960                        );
  961 
  962 osGLOBAL bit32  
  963 smsatWriteAndVerify10(
  964                       smRoot_t                  *smRoot, 
  965                       smIORequest_t             *smIORequest,
  966                       smDeviceHandle_t          *smDeviceHandle,
  967                       smScsiInitiatorRequest_t  *smScsiRequest,
  968                       smSatIOContext_t            *satIOContext
  969                      );
  970 
  971 osGLOBAL bit32  
  972 smsatWriteAndVerify12(
  973                       smRoot_t                  *smRoot, 
  974                       smIORequest_t             *smIORequest,
  975                       smDeviceHandle_t          *smDeviceHandle,
  976                       smScsiInitiatorRequest_t  *smScsiRequest,
  977                       smSatIOContext_t            *satIOContext
  978                      );
  979 
  980 osGLOBAL bit32  
  981 smsatWriteAndVerify16(
  982                       smRoot_t                  *smRoot, 
  983                       smIORequest_t             *smIORequest,
  984                       smDeviceHandle_t          *smDeviceHandle,
  985                       smScsiInitiatorRequest_t  *smScsiRequest,
  986                       smSatIOContext_t            *satIOContext
  987                      );
  988 
  989 osGLOBAL bit32  
  990 smsatReadMediaSerialNumber(
  991                            smRoot_t                  *smRoot, 
  992                            smIORequest_t             *smIORequest,
  993                            smDeviceHandle_t          *smDeviceHandle,
  994                            smScsiInitiatorRequest_t  *smScsiRequest,
  995                            smSatIOContext_t            *satIOContext
  996                           );
  997 
  998 osGLOBAL bit32  
  999 smsatReadBuffer(
 1000                 smRoot_t                  *smRoot, 
 1001                 smIORequest_t             *smIORequest,
 1002                 smDeviceHandle_t          *smDeviceHandle,
 1003                 smScsiInitiatorRequest_t  *smScsiRequest,
 1004                 smSatIOContext_t            *satIOContext
 1005                );
 1006 
 1007 osGLOBAL bit32  
 1008 smsatWriteBuffer(
 1009                  smRoot_t                  *smRoot, 
 1010                  smIORequest_t             *smIORequest,
 1011                  smDeviceHandle_t          *smDeviceHandle,
 1012                  smScsiInitiatorRequest_t  *smScsiRequest,
 1013                  smSatIOContext_t            *satIOContext
 1014                 );
 1015 
 1016 osGLOBAL bit32  
 1017 smsatReassignBlocks(
 1018                     smRoot_t                  *smRoot, 
 1019                     smIORequest_t             *smIORequest,
 1020                     smDeviceHandle_t          *smDeviceHandle,
 1021                     smScsiInitiatorRequest_t  *smScsiRequest,
 1022                     smSatIOContext_t            *satIOContext
 1023                    );
 1024 
 1025 osGLOBAL bit32  
 1026 smsatPassthrough(
 1027                     smRoot_t                  *smRoot, 
 1028                     smIORequest_t             *smIORequest,
 1029                     smDeviceHandle_t          *smDeviceHandle,
 1030                     smScsiInitiatorRequest_t  *smScsiRequest,
 1031                     smSatIOContext_t            *satIOContext
 1032                    );
 1033 
 1034 osGLOBAL FORCEINLINE bit32  
 1035 smsataLLIOStart(
 1036                 smRoot_t                  *smRoot, 
 1037                 smIORequest_t             *smIORequest,
 1038                 smDeviceHandle_t          *smDeviceHandle,
 1039                 smScsiInitiatorRequest_t  *smScsiRequest,
 1040                 smSatIOContext_t            *satIOContext
 1041                );
 1042 osGLOBAL bit32  
 1043 smsatTestUnitReady_1(
 1044                      smRoot_t                  *smRoot, 
 1045                      smIORequest_t             *smIORequest,
 1046                      smDeviceHandle_t          *smDeviceHandle,
 1047                      smScsiInitiatorRequest_t  *smScsiRequest,
 1048                      smSatIOContext_t            *satIOContext
 1049                     );
 1050 osGLOBAL bit32
 1051 smsatStartIDDev(
 1052                 smRoot_t                  *smRoot, 
 1053                 smIORequest_t             *smIORequest,
 1054                 smDeviceHandle_t          *smDeviceHandle,
 1055                 smScsiInitiatorRequest_t  *smScsiRequest,
 1056                 smSatIOContext_t            *satIOContext
 1057                );
 1058 
 1059 osGLOBAL bit32
 1060 smsatSendIDDev(
 1061                 smRoot_t                  *smRoot, 
 1062                 smIORequest_t             *smIORequest,
 1063                 smDeviceHandle_t          *smDeviceHandle,
 1064                 smScsiInitiatorRequest_t  *smScsiRequest,
 1065                 smSatIOContext_t            *satIOContext
 1066                );
 1067 
 1068 osGLOBAL bit32
 1069 smsatRequestSense_1(
 1070                     smRoot_t                  *smRoot, 
 1071                     smIORequest_t             *smIORequest,
 1072                     smDeviceHandle_t          *smDeviceHandle,
 1073                     smScsiInitiatorRequest_t  *smScsiRequest,
 1074                     smSatIOContext_t            *satIOContext
 1075                    );
 1076 
 1077 osGLOBAL bit32
 1078 smsatSMARTEnable(
 1079                  smRoot_t                  *smRoot, 
 1080                  smIORequest_t             *smIORequest,
 1081                  smDeviceHandle_t          *smDeviceHandle,
 1082                  smScsiInitiatorRequest_t  *smScsiRequest,
 1083                  smSatIOContext_t            *satIOContext
 1084                );
 1085 
 1086 osGLOBAL bit32
 1087 smsatLogSense_2(
 1088                 smRoot_t                  *smRoot, 
 1089                 smIORequest_t             *smIORequest,
 1090                 smDeviceHandle_t          *smDeviceHandle,
 1091                 smScsiInitiatorRequest_t  *smScsiRequest,
 1092                 smSatIOContext_t            *satIOContext
 1093                );
 1094 
 1095 osGLOBAL bit32
 1096 smsatLogSense_3(
 1097                 smRoot_t                  *smRoot, 
 1098                 smIORequest_t             *smIORequest,
 1099                 smDeviceHandle_t          *smDeviceHandle,
 1100                 smScsiInitiatorRequest_t  *smScsiRequest,
 1101                 smSatIOContext_t            *satIOContext
 1102                );
 1103 
 1104 osGLOBAL bit32
 1105 smsatRead_1(
 1106             smRoot_t                  *smRoot, 
 1107             smIORequest_t             *smIORequest,
 1108             smDeviceHandle_t          *smDeviceHandle,
 1109             smScsiInitiatorRequest_t  *smScsiRequest,
 1110             smSatIOContext_t            *satIOContext
 1111           );
 1112 
 1113 osGLOBAL bit32
 1114 smsatWrite_1(
 1115              smRoot_t                  *smRoot, 
 1116              smIORequest_t             *smIORequest,
 1117              smDeviceHandle_t          *smDeviceHandle,
 1118              smScsiInitiatorRequest_t  *smScsiRequest,
 1119              smSatIOContext_t            *satIOContext
 1120            );
 1121 
 1122 osGLOBAL bit32
 1123 smsatNonChainedWriteNVerify_Verify(
 1124                                    smRoot_t                  *smRoot, 
 1125                                    smIORequest_t             *smIORequest,
 1126                                    smDeviceHandle_t          *smDeviceHandle,
 1127                                    smScsiInitiatorRequest_t  *smScsiRequest,
 1128                                    smSatIOContext_t            *satIOContext
 1129                                   );
 1130 
 1131 osGLOBAL bit32
 1132 smsatChainedWriteNVerify_Start_Verify(
 1133                                       smRoot_t                  *smRoot, 
 1134                                       smIORequest_t             *smIORequest,
 1135                                       smDeviceHandle_t          *smDeviceHandle,
 1136                                       smScsiInitiatorRequest_t  *smScsiRequest,
 1137                                       smSatIOContext_t            *satIOContext
 1138                                      );
 1139 
 1140 osGLOBAL bit32
 1141 smsatChainedWriteNVerify_Write(
 1142                                smRoot_t                  *smRoot, 
 1143                                smIORequest_t             *smIORequest,
 1144                                smDeviceHandle_t          *smDeviceHandle,
 1145                                smScsiInitiatorRequest_t  *smScsiRequest,
 1146                                smSatIOContext_t            *satIOContext
 1147                               );
 1148                                    
 1149 osGLOBAL bit32
 1150 smsatChainedWriteNVerify_Verify(
 1151                                 smRoot_t                  *smRoot, 
 1152                                 smIORequest_t             *smIORequest,
 1153                                 smDeviceHandle_t          *smDeviceHandle,
 1154                                 smScsiInitiatorRequest_t  *smScsiRequest,
 1155                                 smSatIOContext_t            *satIOContext
 1156                                );
 1157 osGLOBAL bit32 
 1158 smsatChainedVerify(
 1159                     smRoot_t                  *smRoot, 
 1160                     smIORequest_t             *smIORequest,
 1161                     smDeviceHandle_t          *smDeviceHandle,
 1162                     smScsiInitiatorRequest_t  *smScsiRequest,
 1163                     smSatIOContext_t            *satIOContext
 1164                    );
 1165 
 1166 osGLOBAL bit32 
 1167 smsatWriteSame10_1(
 1168                     smRoot_t                  *smRoot, 
 1169                     smIORequest_t             *smIORequest,
 1170                     smDeviceHandle_t          *smDeviceHandle,
 1171                     smScsiInitiatorRequest_t  *smScsiRequest,
 1172                     smSatIOContext_t            *satIOContext,
 1173                     bit32                     lba
 1174                   );
 1175 
 1176 osGLOBAL bit32 
 1177 smsatWriteSame10_2(
 1178                     smRoot_t                  *smRoot, 
 1179                     smIORequest_t             *smIORequest,
 1180                     smDeviceHandle_t          *smDeviceHandle,
 1181                     smScsiInitiatorRequest_t  *smScsiRequest,
 1182                     smSatIOContext_t            *satIOContext,
 1183                     bit32                     lba
 1184                   );
 1185 
 1186 osGLOBAL bit32 
 1187 smsatWriteSame10_3(
 1188                     smRoot_t                  *smRoot, 
 1189                     smIORequest_t             *smIORequest,
 1190                     smDeviceHandle_t          *smDeviceHandle,
 1191                     smScsiInitiatorRequest_t  *smScsiRequest,
 1192                     smSatIOContext_t            *satIOContext,
 1193                     bit32                     lba
 1194                   );
 1195 
 1196 osGLOBAL bit32 
 1197 smsatStartStopUnit_1(
 1198                      smRoot_t                  *smRoot, 
 1199                      smIORequest_t             *smIORequest,
 1200                      smDeviceHandle_t          *smDeviceHandle,
 1201                      smScsiInitiatorRequest_t  *smScsiRequest,
 1202                      smSatIOContext_t            *satIOContext
 1203                     );
 1204 
 1205 osGLOBAL bit32 
 1206 smsatSendDiagnostic_1(
 1207                       smRoot_t                  *smRoot, 
 1208                       smIORequest_t             *smIORequest,
 1209                       smDeviceHandle_t          *smDeviceHandle,
 1210                       smScsiInitiatorRequest_t  *smScsiRequest,
 1211                       smSatIOContext_t            *satIOContext
 1212                      );
 1213                      
 1214 osGLOBAL bit32 
 1215 smsatSendDiagnostic_2(
 1216                       smRoot_t                  *smRoot, 
 1217                       smIORequest_t             *smIORequest,
 1218                       smDeviceHandle_t          *smDeviceHandle,
 1219                       smScsiInitiatorRequest_t  *smScsiRequest,
 1220                       smSatIOContext_t            *satIOContext
 1221                      );
 1222 
 1223 osGLOBAL bit32 
 1224 smsatModeSelect6n10_1(
 1225                       smRoot_t                  *smRoot, 
 1226                       smIORequest_t             *smIORequest,
 1227                       smDeviceHandle_t          *smDeviceHandle,
 1228                       smScsiInitiatorRequest_t  *smScsiRequest,
 1229                       smSatIOContext_t            *satIOContext
 1230                      );
 1231 
 1232 osGLOBAL bit32 
 1233 smsatLogSense_1(
 1234                 smRoot_t                  *smRoot, 
 1235                 smIORequest_t             *smIORequest,
 1236                 smDeviceHandle_t          *smDeviceHandle,
 1237                 smScsiInitiatorRequest_t  *smScsiRequest,
 1238                 smSatIOContext_t            *satIOContext
 1239                );
 1240 
 1241 osGLOBAL bit32 
 1242 smsatReassignBlocks_2(
 1243                       smRoot_t                  *smRoot, 
 1244                       smIORequest_t             *smIORequest,
 1245                       smDeviceHandle_t          *smDeviceHandle,
 1246                       smScsiInitiatorRequest_t  *smScsiRequest,
 1247                       smSatIOContext_t            *satIOContext,
 1248                       bit8                      *LBA
 1249                      );
 1250 
 1251 osGLOBAL bit32 
 1252 smsatReassignBlocks_1(
 1253                       smRoot_t                  *smRoot, 
 1254                       smIORequest_t             *smIORequest,
 1255                       smDeviceHandle_t          *smDeviceHandle,
 1256                       smScsiInitiatorRequest_t  *smScsiRequest,
 1257                       smSatIOContext_t            *satIOContext,
 1258                       smSatIOContext_t            *satOrgIOContext
 1259                      );
 1260 
 1261 osGLOBAL bit32 
 1262 smsatSendReadLogExt(
 1263                      smRoot_t                  *smRoot, 
 1264                      smIORequest_t             *smIORequest,
 1265                      smDeviceHandle_t          *smDeviceHandle,
 1266                      smScsiInitiatorRequest_t  *smScsiRequest,
 1267                      smSatIOContext_t            *satIOContext
 1268                    );
 1269 
 1270 osGLOBAL bit32  
 1271 smsatCheckPowerMode(
 1272                      smRoot_t                  *smRoot, 
 1273                      smIORequest_t             *smIORequest,
 1274                      smDeviceHandle_t          *smDeviceHandle,
 1275                      smScsiInitiatorRequest_t  *smScsiRequest,
 1276                      smSatIOContext_t            *satIOContext
 1277                    );
 1278 
 1279 osGLOBAL bit32  
 1280 smsatResetDevice(
 1281                   smRoot_t                  *smRoot, 
 1282                   smIORequest_t             *smIORequest,
 1283                   smDeviceHandle_t          *smDeviceHandle,
 1284                   smScsiInitiatorRequest_t  *smScsiRequest,
 1285                   smSatIOContext_t            *satIOContext
 1286                 );
 1287                 
 1288 osGLOBAL bit32  
 1289 smsatDeResetDevice(
 1290                     smRoot_t                  *smRoot, 
 1291                     smIORequest_t             *smIORequest,
 1292                     smDeviceHandle_t          *smDeviceHandle,
 1293                     smScsiInitiatorRequest_t  *smScsiRequest,
 1294                     smSatIOContext_t            *satIOContext
 1295                    );
 1296 /******************************** beginning of completion ******************************************************/
 1297 osGLOBAL FORCEINLINE void 
 1298 smllSATACompleted(
 1299                   agsaRoot_t        *agRoot,
 1300                   agsaIORequest_t   *agIORequest,
 1301                   bit32             agIOStatus,
 1302                   void              *agFirstDword,
 1303                   bit32             agIOInfoLen,
 1304                   void              *agParam
 1305                  );
 1306 
 1307 
 1308 osGLOBAL FORCEINLINE void 
 1309 smsatNonChainedDataIOCB(
 1310                         agsaRoot_t        *agRoot,
 1311                         agsaIORequest_t   *agIORequest,
 1312                         bit32             agIOStatus,
 1313                         agsaFisHeader_t   *agFirstDword,
 1314                         bit32             agIOInfoLen,
 1315                         void              *agParam,
 1316                         void              *ioContext
 1317                        );
 1318 
 1319 osGLOBAL FORCEINLINE void 
 1320 smsatChainedDataIOCB(
 1321                      agsaRoot_t        *agRoot,
 1322                      agsaIORequest_t   *agIORequest,
 1323                      bit32             agIOStatus,
 1324                      agsaFisHeader_t   *agFirstDword,
 1325                      bit32             agIOInfoLen,
 1326                      void              *agParam,
 1327                      void              *ioContext
 1328                     );
 1329 
 1330 osGLOBAL void 
 1331 smsatNonChainedVerifyCB(
 1332                         agsaRoot_t        *agRoot,
 1333                         agsaIORequest_t   *agIORequest,
 1334                         bit32             agIOStatus,
 1335                         agsaFisHeader_t   *agFirstDword,
 1336                         bit32             agIOInfoLen,
 1337                         agsaFrameHandle_t agFrameHandle,
 1338                         void              *ioContext                          
 1339                        );
 1340 
 1341 osGLOBAL void 
 1342 smsatChainedVerifyCB(
 1343                      agsaRoot_t        *agRoot,
 1344                      agsaIORequest_t   *agIORequest,
 1345                      bit32             agIOStatus,
 1346                      agsaFisHeader_t   *agFirstDword,
 1347                      bit32             agIOInfoLen,
 1348                      agsaFrameHandle_t agFrameHandle,
 1349                      void              *ioContext                          
 1350                     );
 1351                     
 1352 osGLOBAL void 
 1353 smsatTestUnitReadyCB(
 1354                      agsaRoot_t        *agRoot,
 1355                      agsaIORequest_t   *agIORequest,
 1356                      bit32             agIOStatus,
 1357                      agsaFisHeader_t   *agFirstDword,
 1358                      bit32             agIOInfoLen,
 1359                      agsaFrameHandle_t agFrameHandle,
 1360                      void              *ioContext
 1361                     );
 1362 osGLOBAL void 
 1363 smsatRequestSenseCB(
 1364                     agsaRoot_t        *agRoot,
 1365                     agsaIORequest_t   *agIORequest,
 1366                     bit32             agIOStatus,
 1367                     agsaFisHeader_t   *agFirstDword,
 1368                     bit32             agIOInfoLen,
 1369                     void              *agParam,
 1370                     void              *ioContext
 1371                    );  
 1372 
 1373 osGLOBAL void 
 1374 smsatSendDiagnosticCB(
 1375                        agsaRoot_t        *agRoot,
 1376                        agsaIORequest_t   *agIORequest,
 1377                        bit32             agIOStatus,
 1378                        agsaFisHeader_t   *agFirstDword,
 1379                        bit32             agIOInfoLen,
 1380                        agsaFrameHandle_t agFrameHandle,
 1381                        void              *ioContext                     
 1382                      );
 1383 
 1384 osGLOBAL void 
 1385 smsatStartStopUnitCB(
 1386                      agsaRoot_t        *agRoot,
 1387                      agsaIORequest_t   *agIORequest,
 1388                      bit32             agIOStatus,
 1389                      agsaFisHeader_t   *agFirstDword,
 1390                      bit32             agIOInfoLen,
 1391                      agsaFrameHandle_t agFrameHandle,
 1392                      void              *ioContext
 1393                     );
 1394 
 1395 
 1396 osGLOBAL void 
 1397 smsatWriteSame10CB(
 1398                    agsaRoot_t        *agRoot,
 1399                    agsaIORequest_t   *agIORequest,
 1400                    bit32             agIOStatus,
 1401                    agsaFisHeader_t   *agFirstDword,
 1402                    bit32             agIOInfoLen,
 1403                    agsaFrameHandle_t agFrameHandle,
 1404                    void              *ioContext                     
 1405                   );
 1406 
 1407 
 1408 osGLOBAL void 
 1409 smsatLogSenseCB(
 1410                 agsaRoot_t        *agRoot,
 1411                 agsaIORequest_t   *agIORequest,
 1412                 bit32             agIOStatus,
 1413                 agsaFisHeader_t   *agFirstDword,
 1414                 bit32             agIOInfoLen,
 1415                 void              *agParam,
 1416                 void              *ioCotext                   
 1417                );
 1418 
 1419 osGLOBAL void 
 1420 smsatSMARTEnableCB(
 1421                    agsaRoot_t        *agRoot,
 1422                    agsaIORequest_t   *agIORequest,
 1423                    bit32             agIOStatus,
 1424                    agsaFisHeader_t   *agFirstDword,
 1425                    bit32             agIOInfoLen,
 1426                    agsaFrameHandle_t agFrameHandle,
 1427                    void              *ioContext
 1428                   ); 
 1429 
 1430 osGLOBAL void 
 1431 smsatModeSelect6n10CB(
 1432                       agsaRoot_t        *agRoot,
 1433                       agsaIORequest_t   *agIORequest,
 1434                       bit32             agIOStatus,
 1435                       agsaFisHeader_t   *agFirstDword,
 1436                       bit32             agIOInfoLen,
 1437                       agsaFrameHandle_t agFrameHandle,
 1438                       void              *ioContext
 1439                      );
 1440 
 1441 osGLOBAL void 
 1442 smsatSynchronizeCache10n16CB(
 1443                              agsaRoot_t        *agRoot,
 1444                              agsaIORequest_t   *agIORequest,
 1445                              bit32             agIOStatus,
 1446                              agsaFisHeader_t   *agFirstDword,
 1447                              bit32             agIOInfoLen,
 1448                              agsaFrameHandle_t agFrameHandle,
 1449                              void              *ioContext
 1450                             );
 1451 
 1452 osGLOBAL void 
 1453 smsatNonChainedWriteNVerifyCB(
 1454                               agsaRoot_t        *agRoot,
 1455                               agsaIORequest_t   *agIORequest,
 1456                               bit32             agIOStatus,
 1457                               agsaFisHeader_t   *agFirstDword,
 1458                               bit32             agIOInfoLen,
 1459                               void              *agParam,
 1460                               void              *ioContext
 1461                              );
 1462 
 1463 osGLOBAL void 
 1464 smsatChainedWriteNVerifyCB(
 1465                            agsaRoot_t        *agRoot,
 1466                            agsaIORequest_t   *agIORequest,
 1467                            bit32             agIOStatus,
 1468                            agsaFisHeader_t   *agFirstDword,
 1469                            bit32             agIOInfoLen,
 1470                            void              *agParam,
 1471                            void              *ioContext
 1472                           );
 1473 
 1474 osGLOBAL void 
 1475 smsatReadMediaSerialNumberCB(
 1476                              agsaRoot_t        *agRoot,
 1477                              agsaIORequest_t   *agIORequest,
 1478                              bit32             agIOStatus,
 1479                              agsaFisHeader_t   *agFirstDword,
 1480                              bit32             agIOInfoLen,
 1481                              agsaFrameHandle_t agFrameHandle,
 1482                              void              *ioContext
 1483                             );  
 1484 
 1485 osGLOBAL void 
 1486 smsatReadBufferCB(
 1487                   agsaRoot_t        *agRoot,
 1488                   agsaIORequest_t   *agIORequest,
 1489                   bit32             agIOStatus,
 1490                   agsaFisHeader_t   *agFirstDword,
 1491                   bit32             agIOInfoLen,
 1492                   agsaFrameHandle_t agFrameHandle,
 1493                   void              *ioContext
 1494                  );  
 1495 
 1496 osGLOBAL void 
 1497 smsatWriteBufferCB(
 1498                    agsaRoot_t        *agRoot,
 1499                    agsaIORequest_t   *agIORequest,
 1500                    bit32             agIOStatus,
 1501                    agsaFisHeader_t   *agFirstDword,
 1502                    bit32             agIOInfoLen,
 1503                    agsaFrameHandle_t agFrameHandle,
 1504                    void              *ioContext
 1505                   );  
 1506 
 1507 osGLOBAL void 
 1508 smsatReassignBlocksCB(
 1509                       agsaRoot_t        *agRoot,
 1510                       agsaIORequest_t   *agIORequest,
 1511                       bit32             agIOStatus,
 1512                       agsaFisHeader_t   *agFirstDword,
 1513                       bit32             agIOInfoLen,
 1514                       agsaFrameHandle_t agFrameHandle,
 1515                       void              *ioContext
 1516                      );  
 1517 
 1518 osGLOBAL void 
 1519 smsatProcessAbnormalCompletion(
 1520                                agsaRoot_t        *agRoot,
 1521                                agsaIORequest_t   *agIORequest,
 1522                                bit32             agIOStatus,
 1523                                agsaFisHeader_t   *agFirstDword,
 1524                                bit32             agIOInfoLen,
 1525                                void              *agParam,
 1526                                smSatIOContext_t    *satIOContext
 1527                               );
 1528 
 1529 osGLOBAL void 
 1530 smsatDelayedProcessAbnormalCompletion(
 1531                                       agsaRoot_t        *agRoot,
 1532                                       agsaIORequest_t   *agIORequest,
 1533                                       bit32             agIOStatus,
 1534                                       agsaFisHeader_t   *agFirstDword,
 1535                                       bit32             agIOInfoLen,
 1536                                       void              *agParam,
 1537                                       smSatIOContext_t    *satIOContext
 1538                                      );
 1539 
 1540 osGLOBAL void 
 1541 smsatIOCompleted(
 1542                  smRoot_t           *smRoot,
 1543                  smIORequest_t      *smIORequest,
 1544                  agsaFisHeader_t    *agFirstDword,
 1545                  bit32              respFisLen,
 1546                  agsaFrameHandle_t  agFrameHandle,
 1547                  smSatIOContext_t     *satIOContext,
 1548                  bit32              interruptContext
 1549                 );
 1550 
 1551 osGLOBAL void 
 1552 smsatEncryptionHandler(
 1553                        smRoot_t                *smRoot,
 1554                        agsaIORequest_t         *agIORequest, 
 1555                        bit32                   agIOStatus,  
 1556                        bit32                   agIOInfoLen,
 1557                        void                    *agParam,
 1558                        bit32                   agOtherInfo,
 1559                        bit32                   interruptContext
 1560                       );
 1561 
 1562 osGLOBAL void 
 1563 smsatDifHandler(
 1564                 smRoot_t                *smRoot,
 1565                 agsaIORequest_t         *agIORequest, 
 1566                 bit32                   agIOStatus,  
 1567                 bit32                   agIOInfoLen,
 1568                 void                    *agParam,
 1569                 bit32                   agOtherInfo,
 1570                 bit32                   interruptContext
 1571                );
 1572                
 1573 osGLOBAL void 
 1574 smsatProcessAbort(
 1575                   smRoot_t           *smRoot,
 1576                   smIORequest_t      *smIORequest,
 1577                   smSatIOContext_t     *satIOContext
 1578                  );
 1579 
 1580 osGLOBAL void 
 1581 smsatNonDataIOCB(
 1582                   agsaRoot_t        *agRoot,
 1583                   agsaIORequest_t   *agIORequest,
 1584                   bit32             agIOStatus,
 1585                   agsaFisHeader_t   *agFirstDword,
 1586                   bit32             agIOInfoLen,
 1587                   void              *agParam,
 1588                   void              *ioContext
 1589                  );
 1590 
 1591 osGLOBAL void 
 1592 smsatInquiryCB(
 1593                agsaRoot_t        *agRoot,
 1594                agsaIORequest_t   *agIORequest,
 1595                bit32             agIOStatus,
 1596                agsaFisHeader_t   *agFirstDword,
 1597                bit32             agIOInfoLen,
 1598                void              *agParam,
 1599                void              *ioContext
 1600               );
 1601 
 1602 
 1603 osGLOBAL void 
 1604 smsatInquiryIntCB(
 1605                    smRoot_t                  *smRoot, 
 1606                    smIORequest_t             *smIORequest,
 1607                    smDeviceHandle_t          *smDeviceHandle,
 1608                    smScsiInitiatorRequest_t  *smScsiRequest,
 1609                    smSatIOContext_t            *satIOContext
 1610                   );
 1611 
 1612 osGLOBAL void 
 1613 smsatVerify10CB(
 1614                 agsaRoot_t        *agRoot,
 1615                 agsaIORequest_t   *agIORequest,
 1616                 bit32             agIOStatus,
 1617                 agsaFisHeader_t   *agFirstDword,
 1618                 bit32             agIOInfoLen,
 1619                 void              *agParam,
 1620                 void              *ioContext
 1621                );
 1622 
 1623 osGLOBAL void 
 1624 smsatReadLogExtCB(
 1625                    agsaRoot_t        *agRoot,
 1626                    agsaIORequest_t   *agIORequest,
 1627                    bit32             agIOStatus,
 1628                    agsaFisHeader_t   *agFirstDword,
 1629                    bit32             agIOInfoLen,
 1630                    void              *agParam,
 1631                    void              *ioContext                     
 1632                  );
 1633 
 1634 
 1635 osGLOBAL void 
 1636 smsatIDStartCB(
 1637                 agsaRoot_t        *agRoot,
 1638                 agsaIORequest_t   *agIORequest,
 1639                 bit32             agIOStatus,
 1640                 agsaFisHeader_t   *agFirstDword,
 1641                 bit32             agIOInfoLen,
 1642                 void              *agParam,
 1643                 void              *ioContext
 1644                );
 1645 
 1646 osGLOBAL void
 1647 smSMPCompleted(
 1648                 agsaRoot_t            *agRoot,
 1649                 agsaIORequest_t       *agIORequest,
 1650                 bit32                 agIOStatus,
 1651                 bit32                 agIOInfoLen,
 1652                 agsaFrameHandle_t     agFrameHandle                   
 1653               );
 1654 
 1655 osGLOBAL void
 1656 smSMPCompletedCB(
 1657                   agsaRoot_t            *agRoot,
 1658                   agsaIORequest_t       *agIORequest,
 1659                   bit32                 agIOStatus,
 1660                   bit32                 agIOInfoLen,
 1661                   agsaFrameHandle_t     agFrameHandle                   
 1662                 );
 1663                 
 1664 osGLOBAL void
 1665 smPhyControlRespRcvd(
 1666                       smRoot_t              *smRoot,
 1667                       agsaRoot_t            *agRoot,
 1668                       agsaIORequest_t       *agIORequest,
 1669                       smDeviceData_t        *oneDeviceData,
 1670                       smSMPFrameHeader_t    *frameHeader,
 1671                       agsaFrameHandle_t     frameHandle,
 1672                       smIORequest_t         *CurrentTaskTag
 1673                      );
 1674 
 1675 osGLOBAL void 
 1676 smsatCheckPowerModeCB(
 1677                       agsaRoot_t        *agRoot,
 1678                       agsaIORequest_t   *agIORequest,
 1679                       bit32             agIOStatus,
 1680                       agsaFisHeader_t   *agFirstDword,
 1681                       bit32             agIOInfoLen,
 1682                       agsaFrameHandle_t agFrameHandle,
 1683                       void              *ioContext
 1684                      );
 1685 
 1686 osGLOBAL void 
 1687 smsatCheckPowerModePassCB(
 1688                       agsaRoot_t        *agRoot,
 1689                       agsaIORequest_t   *agIORequest,
 1690                       bit32             agIOStatus,
 1691                       agsaFisHeader_t   *agFirstDword,
 1692                       bit32             agIOInfoLen,
 1693                       agsaFrameHandle_t agFrameHandle,
 1694                       void              *ioContext
 1695                      );
 1696 
 1697 osGLOBAL void 
 1698 smsatIDDataPassCB(
 1699                   agsaRoot_t        *agRoot,
 1700                   agsaIORequest_t   *agIORequest,
 1701                   bit32             agIOStatus,
 1702                   agsaFisHeader_t   *agFirstDword,
 1703                   bit32             agIOInfoLen,
 1704                   agsaFrameHandle_t agFrameHandle,
 1705                   void              *ioContext
 1706                  );
 1707 
 1708 osGLOBAL void 
 1709 smsatResetDeviceCB(
 1710                     agsaRoot_t        *agRoot,
 1711                     agsaIORequest_t   *agIORequest,
 1712                     bit32             agIOStatus,
 1713                     agsaFisHeader_t   *agFirstDword,
 1714                     bit32             agIOInfoLen,
 1715                     agsaFrameHandle_t agFrameHandle,
 1716                     void              *ioContext
 1717                   );
 1718 
 1719 osGLOBAL void 
 1720 smsatDeResetDeviceCB(
 1721                       agsaRoot_t        *agRoot,
 1722                       agsaIORequest_t   *agIORequest,
 1723                       bit32             agIOStatus,
 1724                       agsaFisHeader_t   *agFirstDword,
 1725                       bit32             agIOInfoLen,
 1726                       agsaFrameHandle_t agFrameHandle,
 1727                       void              *ioContext
 1728                     );
 1729 osGLOBAL void 
 1730 smaSATAAbortCB(
 1731                 agsaRoot_t        *agRoot,
 1732                 agsaIORequest_t   *agIORequest,
 1733                 bit32             flag,
 1734                 bit32             status
 1735               );
 1736                     
 1737 osGLOBAL void 
 1738 smLocalPhyControlCB(
 1739                      agsaRoot_t     *agRoot,
 1740                      agsaContext_t  *agContext,
 1741                      bit32          phyId,
 1742                      bit32          phyOperation,
 1743                      bit32          status,
 1744                      void           *parm
 1745                     );
 1746 /******************************** end of completion ***********************************************************/
 1747 
 1748 /******************************** start of utils    ***********************************************************/
 1749 osGLOBAL bit32 smsatComputeCDB10LBA(smSatIOContext_t            *satIOContext);
 1750 osGLOBAL bit32 smsatComputeCDB10TL(smSatIOContext_t            *satIOContext);
 1751 osGLOBAL bit32 smsatComputeCDB12LBA(smSatIOContext_t            *satIOContext);
 1752 osGLOBAL bit32 smsatComputeCDB12TL(smSatIOContext_t            *satIOContext);
 1753 osGLOBAL bit32 smsatComputeCDB16LBA(smSatIOContext_t            *satIOContext);
 1754 osGLOBAL bit32 smsatComputeCDB16TL(smSatIOContext_t            *satIOContext);
 1755 osGLOBAL FORCEINLINE bit32 smsatComputeLoopNum(bit32 a, bit32 b);
 1756 osGLOBAL FORCEINLINE bit32 smsatCheckLimit(bit8 *lba, bit8 *tl, int flag, smDeviceData_t *pSatDevData);
 1757 
 1758 osGLOBAL void  
 1759 smsatSplitSGL(
 1760             smRoot_t                  *smRoot, 
 1761             smIORequest_t             *smIORequest,
 1762             smDeviceHandle_t          *smDeviceHandle,
 1763             smScsiInitiatorRequest_t  *smScsiRequest,
 1764             smSatIOContext_t            *satIOContext,
 1765             bit32                     split,
 1766             bit32                     tl,
 1767             bit32                     flag
 1768            );
 1769 
 1770 osGLOBAL void  
 1771 smsatPrintSgl(
 1772             smRoot_t                  *smRoot, 
 1773             agsaEsgl_t                *agEsgl,
 1774             bit32                     idx
 1775             );
 1776 /******************************** end   of utils    ***********************************************************/
 1777 
 1778 
 1779 osGLOBAL void 
 1780 smsatPassthroughCB(
 1781                 agsaRoot_t        *agRoot,
 1782                 agsaIORequest_t   *agIORequest,
 1783                 bit32             agIOStatus,
 1784                 agsaFisHeader_t   *agFirstDword,
 1785                 bit32             agIOInfoLen,
 1786                 void              *agParam,
 1787                 void              *ioContext                   
 1788                );
 1789 
 1790 
 1791 #endif                          /* __SMPROTO_H__ */
 1792 

Cache object: 5ffc60379ca7c7fe1a44f14f825742e0


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.