11573Srgrimes/*******************************************************************************
214287Spst*Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved.
31573Srgrimes*
41573Srgrimes*Redistribution and use in source and binary forms, with or without modification, are permitted provided
51573Srgrimes*that the following conditions are met:
61573Srgrimes*1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
71573Srgrimes*following disclaimer.
81573Srgrimes*2. Redistributions in binary form must reproduce the above copyright notice,
91573Srgrimes*this list of conditions and the following disclaimer in the documentation and/or other materials provided
101573Srgrimes*with the distribution.
111573Srgrimes*
121573Srgrimes*THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
131573Srgrimes*WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
141573Srgrimes*FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
151573Srgrimes*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
161573Srgrimes*NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
171573Srgrimes*BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
181573Srgrimes*LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
191573Srgrimes*SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
201573Srgrimes*
211573Srgrimes* $FreeBSD: releng/11.0/sys/dev/pms/RefTisa/sallsdk/api/saosapi.h 285242 2015-07-07 13:17:02Z achim $
221573Srgrimes*
231573Srgrimes********************************************************************************/
241573Srgrimes/*******************************************************************************/
251573Srgrimes/*! \file saosapi.h
261573Srgrimes *  \brief The file defines the declaration of OS APIs
271573Srgrimes *
281573Srgrimes */
291573Srgrimes/*******************************************************************************/
301573Srgrimes
311573Srgrimes#ifndef  __SSDKOSAPI_H__
321573Srgrimes#define __SSDKOSAPI_H__
331573Srgrimes
3414287Spst#ifdef LINUX
351573Srgrimes#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
3692986Sobrien
3792986Sobrien#ifdef FORCEINLINE
381573Srgrimes#undef FORCEINLINE
391573Srgrimes#define FORCEINLINE
401573Srgrimes#endif
411573Srgrimes
421573Srgrimes#endif
431573Srgrimes#endif
441573Srgrimes
451573Srgrimes/***************************************************************************
461573Srgrimes * Definition of register access related functions start                   *
4771579Sdeischen ***************************************************************************/
481573Srgrimes#ifndef ossaHwRegRead
491573SrgrimesGLOBAL FORCEINLINE
501573Srgrimesbit32 ossaHwRegRead(
511573Srgrimes                          agsaRoot_t  *agRoot,
521573Srgrimes                          bit32       regOffset
531573Srgrimes                          );
541573Srgrimes#endif
551573Srgrimes
561573Srgrimes#ifndef ossaHwRegWrite
571573SrgrimesGLOBAL FORCEINLINE
581573Srgrimesvoid ossaHwRegWrite(
5971579Sdeischen                          agsaRoot_t  *agRoot,
601573Srgrimes                          bit32       regOffset,
611573Srgrimes                          bit32       regValue
621573Srgrimes                          );
631573Srgrimes#endif
6414287Spst
6514287Spst#ifndef ossaHwRegReadExt
6614287SpstGLOBAL FORCEINLINE
6714287Spstbit32 ossaHwRegReadExt(
6814287Spst                             agsaRoot_t  *agRoot,
6992905Sobrien                             bit32       busBaseNumber,
7092905Sobrien                             bit32       regOffset
7192905Sobrien                             );
721573Srgrimes#endif
731573Srgrimes
741573Srgrimes#ifndef ossaHwRegWriteExt
751573SrgrimesGLOBAL FORCEINLINE
761573Srgrimesvoid ossaHwRegWriteExt(
771573Srgrimes                             agsaRoot_t  *agRoot,
781573Srgrimes                             bit32       busBaseNumber,
791573Srgrimes                             bit32       regOffset,
801573Srgrimes                             bit32       regValue
811573Srgrimes                             );
821573Srgrimes#endif
831573Srgrimes
841573Srgrimes#ifndef ossaHwRegReadConfig32
851573SrgrimesosGLOBAL bit32 ossaHwRegReadConfig32(
861573Srgrimes              agsaRoot_t  *agRoot,
871573Srgrimes              bit32       regOffset
881573Srgrimes              );
891573Srgrimes#endif
90189291Sdelphij
911573Srgrimes
921573Srgrimes/***************************************************************************
931573Srgrimes * Definition of register access related functions end                     *
941573Srgrimes ***************************************************************************/
951573Srgrimes
961573Srgrimes/***************************************************************************
971573Srgrimes * Definition of thread related functions start                            *
981573Srgrimes ***************************************************************************/
99190344Sdelphij#ifndef ossaSingleThreadedEnter
1001573SrgrimesGLOBAL FORCEINLINE void ossaSingleThreadedEnter(
1011573Srgrimes                                    agsaRoot_t  *agRoot,
1021573Srgrimes                                    bit32       syncLockId
1031573Srgrimes                                   );
1041573Srgrimes#endif
1051573Srgrimes
1061573Srgrimes#ifndef ossaSingleThreadedLeave
1071573SrgrimesGLOBAL FORCEINLINE void ossaSingleThreadedLeave(
1081573Srgrimes                                    agsaRoot_t  *agRoot,
1091573Srgrimes                                    bit32       syncLockId
1101573Srgrimes                                   );
1111573Srgrimes#endif
1121573Srgrimes
1131573Srgrimes#ifndef ossaStallThread
1141573SrgrimesGLOBAL void ossaStallThread(
1151573Srgrimes                            agsaRoot_t  *agRoot,
1161573Srgrimes                            bit32       microseconds
1171573Srgrimes                            );
1181573Srgrimes#endif
1191573Srgrimes/***************************************************************************
1201573Srgrimes * Definition of thread related functions end                              *
1211573Srgrimes ***************************************************************************/
1221573Srgrimes
1231573Srgrimes/***************************************************************************
1241573Srgrimes * Definition of interrupt related functions start                         *
12517141Sjkh ***************************************************************************/
1261573Srgrimes#ifndef ossaDisableInterrupts
1271573Srgrimes#define ossaDisableInterrupts(agRoot, interruptVectorIndex) \
1281573Srgrimesdo                                                          \
1291573Srgrimes{                                                           \
1301573Srgrimes  agsaLLRoot_t  *saROOT = (agsaLLRoot_t *)(agRoot->sdkData);\
1311573Srgrimes  saROOT->DisableInterrupts(agRoot, interruptVectorIndex); \
1321573Srgrimes} while(0)
1331573Srgrimes#endif
1341573Srgrimes
1351573Srgrimes#ifndef ossaReenableInterrupts
1361573Srgrimes#define ossaReenableInterrupts(agRoot, interruptVectorIndex) \
1371573Srgrimesdo                                                           \
1381573Srgrimes{                                                            \
1391573Srgrimes  agsaLLRoot_t  *saROOT = (agsaLLRoot_t *)(agRoot->sdkData); \
1401573Srgrimes  saROOT->ReEnableInterrupts(agRoot, interruptVectorIndex); \
1411573Srgrimes} while(0)
1421573Srgrimes#endif
1431573Srgrimes
1441573Srgrimes/***************************************************************************
1451573Srgrimes * Definition of interrupt related functions end                           *
1461573Srgrimes ***************************************************************************/
1471573Srgrimes
1481573Srgrimes/***************************************************************************
1491573Srgrimes * Definition of cache related functions start                             *
1501573Srgrimes ***************************************************************************/
1511573Srgrimes#ifndef ossaCacheInvalidate
1521573SrgrimesGLOBAL FORCEINLINE void ossaCacheInvalidate(
1531573Srgrimes                                agsaRoot_t  *agRoot,
1541573Srgrimes                                void        *osMemHandle,
1551573Srgrimes                                void        *virtPtr,
1561573Srgrimes                                bit32       length
1571573Srgrimes                                );
1581573Srgrimes#endif
1591573Srgrimes
1601573Srgrimes#ifndef ossaCacheFlush
1611573SrgrimesGLOBAL FORCEINLINE void ossaCacheFlush(
1621573Srgrimes                          agsaRoot_t  *agRoot,
1631573Srgrimes                          void        *osMemHandle,
1641573Srgrimes                          void        *virtPtr,
1651573Srgrimes                          bit32       length
1661573Srgrimes                          );
1671573Srgrimes#endif
1681573Srgrimes
1691573Srgrimes#ifndef ossaCachePreFlush
1701573SrgrimesGLOBAL FORCEINLINE void ossaCachePreFlush(
17114287Spst                              agsaRoot_t  *agRoot,
1721573Srgrimes                              void        *osMemHandle,
17314287Spst                              void        *virtPtr,
1741573Srgrimes                              bit32       length
1751573Srgrimes                              );
1761573Srgrimes#endif
1771573Srgrimes
1781573Srgrimes/***************************************************************************
1791573Srgrimes * Definition of cache related functions end                               *
1801573Srgrimes ***************************************************************************/
1811573Srgrimes
1821573Srgrimes/***************************************************************************
1831573Srgrimes * Definition of hardware related functions start                          *
1841573Srgrimes ***************************************************************************/
1851573Srgrimes#ifndef ossaHwCB
1861573SrgrimesGLOBAL void ossaHwCB(
1871573Srgrimes                    agsaRoot_t        *agRoot,
1881573Srgrimes                    agsaPortContext_t *agPortContext,
1891573Srgrimes                    bit32             event,
19014287Spst                    bit32             eventParm1,
1911573Srgrimes                    void              *eventParm2,
19214287Spst                    void              *eventParm3
1931573Srgrimes                    );
1941573Srgrimes#endif
1951573Srgrimes
1961573Srgrimes#ifndef ossaHwEventAckCB
1971573SrgrimesGLOBAL void ossaHwEventAckCB(
1981573Srgrimes                            agsaRoot_t    *agRoot,
1991573Srgrimes                            agsaContext_t *agContext,
200189327Sdelphij                            bit32         status
20156698Sjasone                            );
2021573Srgrimes#endif
2031573Srgrimes/***************************************************************************
2041573Srgrimes * Definition of hardware related functions end                            *
2051573Srgrimes ***************************************************************************/
2061573Srgrimes
2071573Srgrimes/***************************************************************************
2081573Srgrimes * Definition of SATA related functions start                              *
20914287Spst ***************************************************************************/
2101573Srgrimes#ifndef ossaSATACompleted
2111573SrgrimesGLOBAL void ossaSATACompleted(
21256698Sjasone                              agsaRoot_t        *agRoot,
2131573Srgrimes                              agsaIORequest_t   *agIORequest,
2141573Srgrimes                              bit32             agIOStatus,
21571579Sdeischen                              void              *agFirstDword,
2161573Srgrimes                              bit32             agIOInfoLen,
2171573Srgrimes                              void              *agParam
21856698Sjasone                              );
2191573Srgrimes
2201573Srgrimes#endif
2211573Srgrimes
2221573Srgrimes#ifndef ossaSATAEvent
2231573SrgrimesGLOBAL void ossaSATAEvent(
2241573Srgrimes                        agsaRoot_t              *agRoot,
2251573Srgrimes                        agsaIORequest_t         *agIORequest,
2261573Srgrimes                        agsaPortContext_t       *agPortContext,
2271573Srgrimes                        agsaDevHandle_t         *agDevHandle,
2281573Srgrimes                        bit32                   event,
2291573Srgrimes                        bit32                   agIOInfoLen,
2301573Srgrimes                        void                    *agParam
23114287Spst                        );
23214287Spst#endif
2331573Srgrimes
23414287Spst#ifndef ossaSATAAbortCB
23514287Spst GLOBAL void  ossaSATAAbortCB(
23614287Spst                        agsaRoot_t               *agRoot,
23714287Spst                        agsaIORequest_t          *agIORequest,
23814287Spst                        bit32                    flag,
23914287Spst                        bit32                    status
24014287Spst                        );
2411573Srgrimes#endif
24214287Spst
2431573Srgrimes/***************************************************************************
24414287Spst * Definition of SATA related functions end                                *
24517141Sjkh ***************************************************************************/
2461573Srgrimes
24714287Spst
2481573Srgrimes/***************************************************************************
24914287Spst * Definition of SAS related functions start                               *
25014287Spst ***************************************************************************/
25114287Spst#ifndef ossaSSPEvent
25214287SpstGLOBAL void ossaSSPEvent(
2531573Srgrimes                  agsaRoot_t        *agRoot,
2541573Srgrimes                  agsaIORequest_t   *agIORequest,
2551573Srgrimes                  agsaPortContext_t *agPortContext,
2561573Srgrimes                  agsaDevHandle_t   *agDevHandle,
2571573Srgrimes                  bit32             event,
2581573Srgrimes                  bit16             sspTag,
2591573Srgrimes                  bit32             agIOInfoLen,
2601573Srgrimes                  void              *agParam
2611573Srgrimes                  );
2621573Srgrimes#endif
2631573Srgrimes
2641573SrgrimesosGLOBAL void
2651573SrgrimesossaSMPIoctlCompleted(
2661573Srgrimes				 agsaRoot_t            *agRoot,
2671573Srgrimes                 agsaIORequest_t       *agIORequest,
26814287Spst                 bit32                 agIOStatus,
2691573Srgrimes                 bit32                 agIOInfoLen,
2701573Srgrimes                 agsaFrameHandle_t     agFrameHandle
2711573Srgrimes                 );
27214287Spst
2731573Srgrimes#ifndef ossaSMPCompleted
2741573SrgrimesGLOBAL void ossaSMPCompleted(
2751573Srgrimes                            agsaRoot_t            *agRoot,
2761573Srgrimes                            agsaIORequest_t       *agIORequest,
2771573Srgrimes                            bit32                 agIOStatus,
27817141Sjkh                            bit32                 agIOInfoLen,
27917141Sjkh                            agsaFrameHandle_t     agFrameHandle
2801573Srgrimes                            );
2811573Srgrimes#endif
2821573Srgrimes
2831573Srgrimes#ifndef ossaSMPReqReceived
2841573SrgrimesGLOBAL void ossaSMPReqReceived(
2851573Srgrimes                              agsaRoot_t            *agRoot,
2861573Srgrimes                              agsaDevHandle_t       *agDevHandle,
2871573Srgrimes                              agsaFrameHandle_t     agFrameHandle,
2881573Srgrimes                              bit32                 agFrameLength,
2891573Srgrimes                              bit32                 phyId
2901573Srgrimes                              );
2911573Srgrimes#endif
2921573Srgrimes
2931573Srgrimes#ifndef ossaSSPCompleted
2941573SrgrimesGLOBAL FORCEINLINE void ossaSSPCompleted(
2951573Srgrimes                            agsaRoot_t          *agRoot,
2961573Srgrimes                            agsaIORequest_t     *agIORequest,
2971573Srgrimes                            bit32               agIOStatus,
2981573Srgrimes                            bit32               agIOInfoLen,
2991573Srgrimes                            void                *agParam,
3001573Srgrimes                            bit16               sspTag,
3011573Srgrimes                            bit32               agOtherInfo
3021573Srgrimes                            );
3031573Srgrimes#endif
3041573Srgrimes
3051573Srgrimes#ifdef FAST_IO_TEST
3061573SrgrimesGLOBAL void ossaFastSSPCompleted(
30714287Spst                            agsaRoot_t          *agRoot,
3081573Srgrimes                            agsaIORequest_t     *cbArg,
3091573Srgrimes                            bit32               agIOStatus,
3101573Srgrimes                            bit32               agIOInfoLen,
3111573Srgrimes                            void                *agParam,
3121573Srgrimes                            bit16               sspTag,
3131573Srgrimes                            bit32               agOtherInfo
3141573Srgrimes                            );
3151573Srgrimes#endif
31614287Spst
3171573Srgrimes#ifndef ossaSSPReqReceived
31814287SpstGLOBAL void ossaSSPReqReceived(
3191573Srgrimes                              agsaRoot_t        *agRoot,
32014287Spst                              agsaDevHandle_t   *agDevHandle,
3211573Srgrimes                              agsaFrameHandle_t agFrameHandle,
3221573Srgrimes                              bit16             agInitiatorTag,
3231573Srgrimes                              bit32             parameter,
3241573Srgrimes                              bit32             agFrameLen
3251573Srgrimes                              );
3261573Srgrimes#endif
3271573Srgrimes
3281573SrgrimesosGLOBAL void
3291573SrgrimesossaSSPIoctlCompleted(
330190344Sdelphij                agsaRoot_t                        *agRoot,
331190344Sdelphij                agsaIORequest_t           *agIORequest,
3321573Srgrimes                bit32                             agIOStatus,
3331573Srgrimes                bit32                             agIOInfoLen,
3341573Srgrimes                void                              *agParam,
33556698Sjasone                bit16                             sspTag,
3361573Srgrimes                bit32                             agOtherInfo
3371573Srgrimes                );
338190344Sdelphij
3391573Srgrimes
3401573Srgrimes#ifndef ossaSSPAbortCB
3411573SrgrimesGLOBAL void ossaSSPAbortCB(
3421573Srgrimes                        agsaRoot_t              *agRoot,
3431573Srgrimes                        agsaIORequest_t         *agIORequest,
3441573Srgrimes                        bit32                   flag,
3451573Srgrimes                        bit32                   status
3461573Srgrimes                        );
3471573Srgrimes#endif
3481573Srgrimes
3491573Srgrimes#ifndef ossaSMPAbortCB
3501573SrgrimesGLOBAL void ossaSMPAbortCB(
3511573Srgrimes                        agsaRoot_t              *agRoot,
352189291Sdelphij                        agsaIORequest_t         *agIORequest,
3531573Srgrimes                        bit32                   flag,
3541573Srgrimes                        bit32                   status
3551573Srgrimes                        );
3561573Srgrimes#endif
3571573Srgrimes
3581573Srgrimes#ifndef ossaReconfigSASParamsCB
3591573SrgrimesGLOBAL void ossaReconfigSASParamsCB(
3601573Srgrimes                        agsaRoot_t        *agRoot,
36114287Spst                        agsaContext_t     *agContext,
3621573Srgrimes                        bit32             status,
36314287Spst                        agsaSASReconfig_t *agSASConfig
3641573Srgrimes);
3651573Srgrimes#endif
3661573Srgrimes
3671573Srgrimes/***************************************************************************
3681573Srgrimes * Definition of SAS related functions end                                 *
3691573Srgrimes ***************************************************************************/
3701573Srgrimes
3711573Srgrimes/***************************************************************************
3721573Srgrimes * Definition of Discovery related functions start                         *
3731573Srgrimes ***************************************************************************/
3741573Srgrimes#ifndef ossaDiscoverSataCB
3751573SrgrimesGLOBAL void ossaDiscoverSataCB(
3761573Srgrimes                              agsaRoot_t          *agRoot,
3771573Srgrimes                              agsaPortContext_t   *agPortContext,
3781573Srgrimes                              bit32               event,
3791573Srgrimes                              void                *pParm1,
3801573Srgrimes                              void                *pParm2
3811573Srgrimes                              );
3821573Srgrimes#endif
3831573Srgrimes
3841573Srgrimes#ifndef ossaDiscoverSasCB
385189291SdelphijGLOBAL void ossaDiscoverSasCB(
3861573Srgrimes                              agsaRoot_t          *agRoot,
3871573Srgrimes                              agsaPortContext_t   *agPortContext,
3881573Srgrimes                              bit32               event,
38939058Simp                              void                *pParm1,
3901573Srgrimes                              void                *pParm2
3911573Srgrimes                              );
39239058Simp#endif
39339058Simp
3941573Srgrimes#ifndef ossaDeviceHandleAccept
39568234SkrisGLOBAL bit32 ossaDeviceHandleAccept(
3961573Srgrimes                                    agsaRoot_t          *agRoot,
3971573Srgrimes                                    agsaDevHandle_t     *agDevHandle,
39871579Sdeischen                                    agsaSASDeviceInfo_t *agDeviceInfo,
3991573Srgrimes                                    agsaPortContext_t   *agPortContext,
4001573Srgrimes                                    bit32               *hostAssignedDeviceId
40171579Sdeischen                                    );
4021573Srgrimes#endif
4031573Srgrimes
4041573Srgrimes#ifndef ossaGetDeviceHandlesCB
4051573SrgrimesGLOBAL void ossaGetDeviceHandlesCB(
406189291Sdelphij                                agsaRoot_t        *agRoot,
4071573Srgrimes                                agsaContext_t     *agContext,
4081573Srgrimes                                agsaPortContext_t *agPortContext,
4091573Srgrimes                                agsaDevHandle_t   *agDev[],
4101573Srgrimes                                bit32             validDevs
4111573Srgrimes                                );
4121573Srgrimes#endif
4131573Srgrimes
4141573Srgrimes#ifndef ossaGetDeviceInfoCB
4151573SrgrimesGLOBAL void ossaGetDeviceInfoCB(
4161573Srgrimes                                agsaRoot_t        *agRoot,
4171573Srgrimes                                agsaContext_t     *agContext,
4181573Srgrimes                                agsaDevHandle_t   *agDevHandle,
4191573Srgrimes                                bit32             status,
4201573Srgrimes                                void              *agInfo
4211573Srgrimes                                );
4221573Srgrimes#endif
4231573Srgrimes
424189291Sdelphij#ifndef ossaDeviceHandleRemovedEvent
4251573SrgrimesGLOBAL void ossaDeviceHandleRemovedEvent (
4261573Srgrimes                                agsaRoot_t        *agRoot,
4271573Srgrimes                                agsaDevHandle_t   *agDevHandle,
4281573Srgrimes                                agsaPortContext_t *agPortContext
4291573Srgrimes                                );
4301573Srgrimes#endif
4311573Srgrimes
4321573Srgrimes#ifndef ossaGetDeviceStateCB
4331573SrgrimesGLOBAL void ossaGetDeviceStateCB(
4341573Srgrimes                                agsaRoot_t        *agRoot,
4351573Srgrimes                                agsaContext_t     *agContext,
4361573Srgrimes                                agsaDevHandle_t   *agDevHandle,
43714287Spst                                bit32             status,
4381573Srgrimes                                bit32             deviceState
4391573Srgrimes                                );
4401573Srgrimes#endif
4411573Srgrimes
4421573Srgrimes#ifndef ossaSetDeviceInfoCB
443GLOBAL void ossaSetDeviceInfoCB(
444                                agsaRoot_t        *agRoot,
445                                agsaContext_t     *agContext,
446                                agsaDevHandle_t   *agDevHandle,
447                                bit32             status,
448                                bit32             option,
449                                bit32             param
450                                );
451#endif
452
453#ifndef ossaSetDeviceStateCB
454GLOBAL void ossaSetDeviceStateCB(
455                                agsaRoot_t        *agRoot,
456                                agsaContext_t     *agContext,
457                                agsaDevHandle_t   *agDevHandle,
458                                bit32             status,
459                                bit32             newDeviceState,
460                                bit32             previousDeviceState
461                                );
462#endif
463
464/***************************************************************************
465 * Definition of Discovery related functions end                           *
466 ***************************************************************************/
467
468/***************************************************************************
469 * Definition of Misc. related functions start                             *
470 ***************************************************************************/
471
472#ifndef ossaTimeStamp
473GLOBAL bit32 ossaTimeStamp(agsaRoot_t     *agRoot);
474#endif /* ossaTimeStamp */
475
476#ifndef ossaTimeStamp64
477GLOBAL bit64 ossaTimeStamp64(agsaRoot_t     *agRoot);
478#endif /* ossaTimeStamp64 */
479
480
481#ifndef ossaLocalPhyControlCB
482GLOBAL void ossaLocalPhyControlCB(
483                      agsaRoot_t     *agRoot,
484                      agsaContext_t  *agContext,
485                      bit32          phyId,
486                      bit32          phyOperation,
487                      bit32          status,
488                      void           *parm);
489#endif
490
491#ifndef ossaGetPhyProfileCB
492GLOBAL void   ossaGetPhyProfileCB(
493                      agsaRoot_t    *agRoot,
494                      agsaContext_t *agContext,
495                      bit32         status,
496                      bit32         ppc,
497                      bit32         phyID,
498                      void          *parm );
499#endif
500
501#ifndef ossaSetPhyProfileCB
502GLOBAL void ossaSetPhyProfileCB(
503                     agsaRoot_t    *agRoot,
504                     agsaContext_t *agContext,
505                     bit32         status,
506                     bit32         ppc,
507                     bit32         phyID,
508                     void          *parm );
509#endif
510
511#ifndef ossaFwFlashUpdateCB
512GLOBAL void ossaFwFlashUpdateCB(
513                      agsaRoot_t    *agRoot,
514                      agsaContext_t *agContext,
515                      bit32         status);
516#endif
517
518#ifndef ossaFlashExtExecuteCB
519GLOBAL void   ossaFlashExtExecuteCB(
520                      agsaRoot_t               *agRoot,
521                      agsaContext_t            *agContext,
522                      bit32                    status,
523                      bit32                    command,
524                      agsaFlashExtResponse_t  *agFlashExtRsp);
525
526#endif
527
528#ifdef SPC_ENABLE_PROFILE
529GLOBAL void ossaFwProfileCB(
530                      agsaRoot_t    *agRoot,
531                      agsaContext_t *agContext,
532                      bit32         status,
533                      bit32         len
534                      );
535
536#endif
537#ifndef ossaEchoCB
538GLOBAL void ossaEchoCB(
539                      agsaRoot_t    *agRoot,
540                      agsaContext_t *agContext,
541                      void          *echoPayload);
542#endif
543
544#ifndef ossaGpioResponseCB
545GLOBAL void ossaGpioResponseCB(
546                      agsaRoot_t               *agRoot,
547                      agsaContext_t            *agContext,
548                      bit32                    status,
549                      bit32                    gpioReadValue,
550                      agsaGpioPinSetupInfo_t   *gpioPinSetupInfo,
551                      agsaGpioEventSetupInfo_t *gpioEventSetupInfo);
552#endif
553
554#ifndef ossaGpioEvent
555GLOBAL void ossaGpioEvent(
556                      agsaRoot_t    *agRoot,
557                      bit32         gpioEvent);
558#endif
559
560#ifndef ossaSASDiagExecuteCB
561GLOBAL void ossaSASDiagExecuteCB(
562                      agsaRoot_t      *agRoot,
563                      agsaContext_t   *agContext,
564                      bit32           status,
565                      bit32           command,
566                      bit32           reportData);
567#endif
568
569#ifndef ossaSASDiagStartEndCB
570GLOBAL void ossaSASDiagStartEndCB(
571                      agsaRoot_t      *agRoot,
572                      agsaContext_t   *agContext,
573                      bit32           status);
574#endif
575
576#ifndef ossaGetTimeStampCB
577GLOBAL void ossaGetTimeStampCB(
578                      agsaRoot_t      *agRoot,
579                      agsaContext_t   *agContext,
580                      bit32           timeStampLower,
581                      bit32           timeStampUpper);
582#endif
583
584#ifndef ossaPortControlCB
585GLOBAL void ossaPortControlCB(
586                      agsaRoot_t        *agRoot,
587                      agsaContext_t     *agContext,
588                      agsaPortContext_t *agPortContext,
589                      bit32             portOperation,
590                      bit32             status);
591#endif
592
593#ifndef ossaGeneralEvent
594GLOBAL void ossaGeneralEvent(
595                      agsaRoot_t        *agRoot,
596                      bit32             status,
597                      agsaContext_t     *agContext,
598                      bit32             *msg);
599#endif
600
601#ifndef ossaGetRegisterDumpCB
602void ossaGetRegisterDumpCB(
603                      agsaRoot_t        *agRoot,
604                      agsaContext_t     *agContext,
605                      bit32             status);
606#endif
607
608GLOBAL void ossaGetForensicDataCB (
609        agsaRoot_t          *agRoot,
610        agsaContext_t       *agContext,
611        bit32                status,
612        agsaForensicData_t  *forensicData
613        );
614
615
616#ifndef ossaGetNVMDResponseCB
617GLOBAL void ossaGetNVMDResponseCB(
618                      agsaRoot_t        *agRoot,
619                      agsaContext_t     *agContext,
620                      bit32             status,
621                      bit8              indirectPayload,
622                      bit32             agInfoLen,
623                      agsaFrameHandle_t agFrameHandle );
624#endif
625
626#ifndef ossaSetNVMDResponseCB
627GLOBAL void ossaSetNVMDResponseCB(
628                      agsaRoot_t        *agRoot,
629                      agsaContext_t     *agContext,
630                      bit32             status );
631#endif
632
633#ifndef ossaQueueProcessed
634#ifdef SALLSDK_TEST_SET_OB_QUEUE
635GLOBAL void ossaQueueProcessed(agsaRoot_t *agRoot,
636                                          bit32 queue,
637                                          bit32 obpi,
638                                          bit32 obci);
639#else
640#define ossaQueueProcessed(agRoot, queue, obpi, obci)
641#endif
642#endif
643
644#ifndef ossaSGpioCB
645GLOBAL void ossaSGpioCB(
646                    agsaRoot_t              *agRoot,
647                    agsaContext_t           *agContext,
648                    agsaSGpioReqResponse_t  *pSgpioResponse
649                    );
650#endif
651
652#ifndef ossaPCIeDiagExecuteCB
653GLOBAL void ossaPCIeDiagExecuteCB(
654            agsaRoot_t             *agRoot,
655            agsaContext_t         *agContext,
656            bit32                  status,
657            bit32                  command,
658            agsaPCIeDiagResponse_t *resp );
659#endif
660
661#ifndef ossaGetDFEDataCB
662GLOBAL void ossaGetDFEDataCB(
663                             agsaRoot_t     *agRoot,
664                             agsaContext_t  *agContext,
665                             bit32           status,
666                             bit32           agInfoLen
667                             );
668#endif
669
670#ifndef ossaVhistCaptureCB
671GLOBAL void ossaVhistCaptureCB(
672                            agsaRoot_t    *agRoot,
673                            agsaContext_t *agContext,
674                            bit32         status,
675                            bit32         len);
676#endif
677
678#ifndef ossaGetIOErrorStatsCB
679GLOBAL void ossaGetIOErrorStatsCB (
680                      agsaRoot_t               *agRoot,
681                      agsaContext_t            *agContext,
682                      bit32                     status,
683                      agsaIOErrorEventStats_t  *stats
684                      );
685#endif
686
687#ifndef ossaGetIOEventStatsCB
688GLOBAL void ossaGetIOEventStatsCB (
689                      agsaRoot_t               *agRoot,
690                      agsaContext_t            *agContext,
691                      bit32                     status,
692                      agsaIOErrorEventStats_t  *stats
693                      );
694#endif
695
696#ifndef ossaOperatorManagementCB
697GLOBAL void ossaOperatorManagementCB(
698                  agsaRoot_t    *agRoot,
699                  agsaContext_t *agContext,
700                  bit32          status,
701                  bit32          eq
702                  );
703#endif
704
705
706#ifndef ossaEncryptSelftestExecuteCB
707GLOBAL void ossaEncryptSelftestExecuteCB (
708                        agsaRoot_t    *agRoot,
709                        agsaContext_t *agContext,
710                        bit32          status,
711                        bit32          type,
712                        bit32          length,
713                        void          *TestResult
714                        );
715
716#endif
717
718#ifndef ossaGetOperatorCB
719GLOBAL void ossaGetOperatorCB(
720               agsaRoot_t    *agRoot,
721               agsaContext_t *agContext,
722               bit32          status,
723               bit32          option,
724               bit32          num,
725               bit32          role,
726               agsaID_t      *id
727               );
728
729#endif
730
731#ifndef ossaSetOperatorCB
732GLOBAL void ossaSetOperatorCB(
733              agsaRoot_t    *agRoot,
734              agsaContext_t *agContext,
735              bit32          status,
736              bit32          eq
737              );
738
739#endif
740
741#ifndef ossaDIFEncryptionOffloadStartCB
742GLOBAL void ossaDIFEncryptionOffloadStartCB(
743              agsaRoot_t    *agRoot,
744              agsaContext_t *agContext,
745              bit32          status,
746              agsaOffloadDifDetails_t *agsaOffloadDifDetails
747              );
748#endif
749
750/***************************************************************************
751 * Definition of Misc related functions end                                *
752 ***************************************************************************/
753
754/***************************************************************************
755 * Definition of Debug related functions start                             *
756 ***************************************************************************/
757#ifndef ossaLogTrace0
758GLOBAL void ossaLogTrace0(
759                          agsaRoot_t  *agRoot,
760                          bit32       traceCode
761                          );
762#endif
763
764#ifndef ossaLogTrace1
765GLOBAL void ossaLogTrace1(
766                          agsaRoot_t  *agRoot,
767                          bit32       traceCode,
768                          bit32       value1
769                          );
770#endif
771
772#ifndef ossaLogTrace2
773GLOBAL void ossaLogTrace2(
774                          agsaRoot_t  *agRoot,
775                          bit32       traceCode,
776                          bit32       value1,
777                          bit32       value2
778                          );
779#endif
780
781#ifndef ossaLogTrace3
782GLOBAL void ossaLogTrace3(
783                          agsaRoot_t  *agRoot,
784                          bit32       traceCode,
785                          bit32       value1,
786                          bit32       value2,
787                          bit32       value3
788                          );
789#endif
790
791#ifndef ossaLogTrace4
792GLOBAL void ossaLogTrace4(
793                          agsaRoot_t  *agRoot,
794                          bit32       traceCode,
795                          bit32       value1,
796                          bit32       value2,
797                          bit32       value3,
798                          bit32       value4
799                          );
800#endif
801
802#ifndef ossaLogDebugString
803GLOBAL void ossaLogDebugString(
804                         agsaRoot_t   *agRoot,
805                         bit32        level,
806                         char         *string,
807                         void         *ptr1,
808                         void         *ptr2,
809                         bit32        value1,
810                         bit32        value2
811                         );
812#endif
813
814#ifdef SALLSDK_OS_IOMB_LOG_ENABLE
815GLOBAL void ossaLogIomb(agsaRoot_t  *agRoot,
816                        bit32        queueNum,
817                        agBOOLEAN      isInbound,
818                        void        *pMsg,
819                        bit32        msgLength);
820#else
821#define ossaLogIomb(a, b,c,d,e )
822#endif
823
824osGLOBAL void ossaPCI_TRIGGER(agsaRoot_t  *agRoot );
825
826#ifdef PERF_COUNT
827osGLOBAL void ossaEnter(agsaRoot_t *agRoot, int io);
828osGLOBAL void ossaLeave(agsaRoot_t *agRoot, int io);
829#define OSSA_INP_ENTER(root) ossaEnter(root, 0)
830#define OSSA_INP_LEAVE(root) ossaLeave(root, 0)
831#define OSSA_OUT_ENTER(root) ossaEnter(root, 1)
832#define OSSA_OUT_LEAVE(root) ossaLeave(root, 1)
833#else
834#define OSSA_INP_ENTER(root)
835#define OSSA_INP_LEAVE(root)
836#define OSSA_OUT_ENTER(root)
837#define OSSA_OUT_LEAVE(root)
838#endif
839/***************************************************************************
840 * Definition of Debug related functions end                               *
841 ***************************************************************************/
842
843#endif  /*__SSDKOSAPI_H__ */
844