31#ifndef __SSDKOSAPI_H__
32#define __SSDKOSAPI_H__
35#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
65#ifndef ossaHwRegReadExt
74#ifndef ossaHwRegWriteExt
84#ifndef ossaHwRegReadConfig32
99#ifndef ossaSingleThreadedEnter
106#ifndef ossaSingleThreadedLeave
113#ifndef ossaStallThread
126#ifndef ossaDisableInterrupts
127#define ossaDisableInterrupts(agRoot, interruptVectorIndex) \
130 agsaLLRoot_t *saROOT = (agsaLLRoot_t *)(agRoot->sdkData);\
131 saROOT->DisableInterrupts(agRoot, interruptVectorIndex); \
135#ifndef ossaReenableInterrupts
136#define ossaReenableInterrupts(agRoot, interruptVectorIndex) \
139 agsaLLRoot_t *saROOT = (agsaLLRoot_t *)(agRoot->sdkData); \
140 saROOT->ReEnableInterrupts(agRoot, interruptVectorIndex); \
151#ifndef ossaCacheInvalidate
160#ifndef ossaCacheFlush
169#ifndef ossaCachePreFlush
196#ifndef ossaHwEventAckCB
210#ifndef ossaSATACompleted
234#ifndef ossaSATAAbortCB
273#ifndef ossaSMPCompleted
283#ifndef ossaSMPReqReceived
293#ifndef ossaSSPCompleted
306GLOBAL void ossaFastSSPCompleted(
317#ifndef ossaSSPReqReceived
322 bit16 agInitiatorTag,
340#ifndef ossaSSPAbortCB
349#ifndef ossaSMPAbortCB
358#ifndef ossaReconfigSASParamsCB
374#ifndef ossaDiscoverSataCB
384#ifndef ossaDiscoverSasCB
394#ifndef ossaDeviceHandleAccept
400 bit32 *hostAssignedDeviceId
404#ifndef ossaGetDeviceHandlesCB
414#ifndef ossaGetDeviceInfoCB
424#ifndef ossaDeviceHandleRemovedEvent
432#ifndef ossaGetDeviceStateCB
442#ifndef ossaSetDeviceInfoCB
453#ifndef ossaSetDeviceStateCB
459 bit32 newDeviceState,
460 bit32 previousDeviceState
476#ifndef ossaTimeStamp64
481#ifndef ossaLocalPhyControlCB
491#ifndef ossaGetPhyProfileCB
501#ifndef ossaSetPhyProfileCB
511#ifndef ossaFwFlashUpdateCB
518#ifndef ossaFlashExtExecuteCB
528#ifdef SPC_ENABLE_PROFILE
529GLOBAL void ossaFwProfileCB(
544#ifndef ossaGpioResponseCB
560#ifndef ossaSASDiagExecuteCB
569#ifndef ossaSASDiagStartEndCB
576#ifndef ossaGetTimeStampCB
580 bit32 timeStampLower,
581 bit32 timeStampUpper);
584#ifndef ossaPortControlCB
593#ifndef ossaGeneralEvent
601#ifndef ossaGetRegisterDumpCB
616#ifndef ossaGetNVMDResponseCB
621 bit8 indirectPayload,
626#ifndef ossaSetNVMDResponseCB
633#ifndef ossaQueueProcessed
634#ifdef SALLSDK_TEST_SET_OB_QUEUE
640#define ossaQueueProcessed(agRoot, queue, obpi, obci)
652#ifndef ossaPCIeDiagExecuteCB
661#ifndef ossaGetDFEDataCB
670#ifndef ossaVhistCaptureCB
678#ifndef ossaGetIOErrorStatsCB
687#ifndef ossaGetIOEventStatsCB
696#ifndef ossaOperatorManagementCB
706#ifndef ossaEncryptSelftestExecuteCB
718#ifndef ossaGetOperatorCB
731#ifndef ossaSetOperatorCB
741#ifndef ossaDIFEncryptionOffloadStartCB
802#ifndef ossaLogDebugString
814#ifdef SALLSDK_OS_IOMB_LOG_ENABLE
821#define ossaLogIomb(a, b,c,d,e )
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)
834#define OSSA_INP_ENTER(root)
835#define OSSA_INP_LEAVE(root)
836#define OSSA_OUT_ENTER(root)
837#define OSSA_OUT_LEAVE(root)
void * agsaFrameHandle_t
handle to access frame
GLOBAL void ossaPortControlCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaPortContext_t *agPortContext, bit32 portOperation, bit32 status)
GLOBAL void ossaGetNVMDResponseCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit8 indirectPayload, bit32 agInfoLen, agsaFrameHandle_t agFrameHandle)
ossaGetNVMDResponseCB
GLOBAL void ossaGetIOErrorStatsCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaIOErrorEventStats_t *stats)
GLOBAL void ossaGetIOEventStatsCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaIOErrorEventStats_t *stats)
GLOBAL void ossaGpioResponseCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 gpioReadValue, agsaGpioPinSetupInfo_t *gpioPinSetupInfo, agsaGpioEventSetupInfo_t *gpioEventSetupInfo)
ossaGpioResponseCB
osGLOBAL void ossaSMPIoctlCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
GLOBAL FORCEINLINE void ossaSingleThreadedEnter(agsaRoot_t *agRoot, bit32 syncLockId)
ossaSingleThreadedEnter
GLOBAL void ossaSetPhyProfileCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 ppc, bit32 phyID, void *parm)
GLOBAL void ossaLogTrace0(agsaRoot_t *agRoot, bit32 traceCode)
GLOBAL void ossaGetForensicDataCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaForensicData_t *forensicData)
GLOBAL void ossaGetDFEDataCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 agInfoLen)
ossaGetDFEDataCB
GLOBAL FORCEINLINE void ossaCacheInvalidate(agsaRoot_t *agRoot, void *osMemHandle, void *virtPtr, bit32 length)
GLOBAL FORCEINLINE bit32 ossaHwRegReadExt(agsaRoot_t *agRoot, bit32 busBaseNumber, bit32 regOffset)
GLOBAL void ossaLocalPhyControlCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 phyId, bit32 phyOperation, bit32 status, void *parm)
ossaLocalPhyControlCB
GLOBAL bit32 ossaTimeStamp(agsaRoot_t *agRoot)
GLOBAL void ossaLogTrace4(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1, bit32 value2, bit32 value3, bit32 value4)
GLOBAL void ossaHwCB(agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 event, bit32 eventParm1, void *eventParm2, void *eventParm3)
GLOBAL void ossaSATAAbortCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 flag, bit32 status)
GLOBAL void ossaSMPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
ossaSMPCompleted
GLOBAL void ossaEncryptSelftestExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 type, bit32 length, void *TestResult)
osGLOBAL void ossaPCI_TRIGGER(agsaRoot_t *agRoot)
GLOBAL void ossaGetDeviceHandlesCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaPortContext_t *agPortContext, agsaDevHandle_t *agDev[], bit32 validDevs)
ossaGetDeviceHandlesCB
GLOBAL void ossaDiscoverSataCB(agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 event, void *pParm1, void *pParm2)
GLOBAL void ossaDIFEncryptionOffloadStartCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaOffloadDifDetails_t *agsaOffloadDifDetails)
void ossaGetRegisterDumpCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaGetRegisterDumpCB
GLOBAL void ossaSASDiagStartEndCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaSASDiagStartEndCB
#define ossaLogIomb(a, b, c, d, e)
GLOBAL bit32 ossaDeviceHandleAccept(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaSASDeviceInfo_t *agDeviceInfo, agsaPortContext_t *agPortContext, bit32 *hostAssignedDeviceId)
GLOBAL void ossaLogTrace3(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1, bit32 value2, bit32 value3)
GLOBAL void ossaSSPReqReceived(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaFrameHandle_t agFrameHandle, bit16 agInitiatorTag, bit32 parameter, bit32 agFrameLen)
ossaSSPReqReceived
GLOBAL void ossaDeviceHandleRemovedEvent(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaPortContext_t *agPortContext)
ossaDeviceHandleRemovedEvent
GLOBAL void ossaSATACompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, void *agFirstDword, bit32 agIOInfoLen, void *agParam)
GLOBAL void ossaSetNVMDResponseCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaSetNVMDResponseCB
GLOBAL void ossaOperatorManagementCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 eq)
GLOBAL FORCEINLINE void ossaCacheFlush(agsaRoot_t *agRoot, void *osMemHandle, void *virtPtr, bit32 length)
GLOBAL void ossaSetOperatorCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 eq)
GLOBAL void ossaGetDeviceInfoCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, void *agInfo)
ossaGetDeviceInfoCB
GLOBAL void ossaPCIeDiagExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 command, agsaPCIeDiagResponse_t *resp)
GLOBAL void ossaLogTrace2(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1, bit32 value2)
GLOBAL void ossaGpioEvent(agsaRoot_t *agRoot, bit32 gpioEvent)
ossaGpioEvent
GLOBAL void ossaDiscoverSasCB(agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 event, void *pParm1, void *pParm2)
GLOBAL void ossaFwFlashUpdateCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaFwFlashUpdateCB
GLOBAL FORCEINLINE void ossaSingleThreadedLeave(agsaRoot_t *agRoot, bit32 syncLockId)
ossaSingleThreadedLeave
GLOBAL FORCEINLINE void ossaHwRegWriteExt(agsaRoot_t *agRoot, bit32 busBaseNumber, bit32 regOffset, bit32 regValue)
GLOBAL void ossaReconfigSASParamsCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaSASReconfig_t *agSASConfig)
ossaReconfigSASParamsCB
GLOBAL void ossaSATAEvent(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, agsaPortContext_t *agPortContext, agsaDevHandle_t *agDevHandle, bit32 event, bit32 agIOInfoLen, void *agParam)
GLOBAL void ossaStallThread(agsaRoot_t *agRoot, bit32 microseconds)
ossaStallThread
GLOBAL void ossaGetPhyProfileCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 ppc, bit32 phyID, void *parm)
osGLOBAL bit32 ossaHwRegReadConfig32(agsaRoot_t *agRoot, bit32 regOffset)
GLOBAL FORCEINLINE void ossaSSPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit16 sspTag, bit32 agOtherInfo)
ossaSSPCompleted
GLOBAL void ossaFlashExtExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 command, agsaFlashExtResponse_t *agFlashExtRsp)
GLOBAL void ossaSMPAbortCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 flag, bit32 status)
ossaSMPAbortCB
GLOBAL void ossaSetDeviceStateCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, bit32 newDeviceState, bit32 previousDeviceState)
ossaSetDeviceStateCB
GLOBAL void ossaHwEventAckCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaHwEventAckCB
GLOBAL void ossaSetDeviceInfoCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, bit32 option, bit32 param)
ossaSetDeviceInfoCB
GLOBAL void ossaVhistCaptureCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 len)
ossaVhistCaptureCB
GLOBAL void ossaSGpioCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaSGpioReqResponse_t *pSgpioResponse)
osGLOBAL void ossaSSPIoctlCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit16 sspTag, bit32 agOtherInfo)
GLOBAL void ossaSMPReqReceived(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaFrameHandle_t agFrameHandle, bit32 agFrameLength, bit32 phyId)
GLOBAL void ossaGetDeviceStateCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, bit32 deviceState)
ossaGetDeviceStateCB
GLOBAL bit64 ossaTimeStamp64(agsaRoot_t *agRoot)
GLOBAL void ossaGetTimeStampCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 timeStampLower, bit32 timeStampUpper)
ossaGetTimeStampCB
GLOBAL void ossaGeneralEvent(agsaRoot_t *agRoot, bit32 status, agsaContext_t *agContext, bit32 *msg)
ossaGeneralEvent
#define ossaQueueProcessed(agRoot, queue, obpi, obci)
GLOBAL void ossaLogDebugString(agsaRoot_t *agRoot, bit32 level, char *string, void *ptr1, void *ptr2, bit32 value1, bit32 value2)
ossaLogDebugString
GLOBAL void ossaSSPEvent(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, agsaPortContext_t *agPortContext, agsaDevHandle_t *agDevHandle, bit32 event, bit16 sspTag, bit32 agIOInfoLen, void *agParam)
GLOBAL void ossaEchoCB(agsaRoot_t *agRoot, agsaContext_t *agContext, void *echoPayload)
ossaEchoCB
GLOBAL void ossaGetOperatorCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 option, bit32 num, bit32 role, agsaID_t *id)
GLOBAL void ossaSSPAbortCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 flag, bit32 status)
GLOBAL void ossaLogTrace1(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1)
GLOBAL FORCEINLINE void ossaHwRegWrite(agsaRoot_t *agRoot, bit32 regOffset, bit32 regValue)
GLOBAL FORCEINLINE void ossaCachePreFlush(agsaRoot_t *agRoot, void *osMemHandle, void *virtPtr, bit32 length)
GLOBAL FORCEINLINE bit32 ossaHwRegRead(agsaRoot_t *agRoot, bit32 regOffset)
GLOBAL void ossaSASDiagExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 command, bit32 reportData)
ossaSASDiagExecuteCB
data structure stores OS specific and LL specific context