1*4e1bc9a0SAchim Leubner /******************************************************************************* 2*4e1bc9a0SAchim Leubner *Copyright (c) 2014 PMC-Sierra, Inc. All rights reserved. 3*4e1bc9a0SAchim Leubner * 4*4e1bc9a0SAchim Leubner *Redistribution and use in source and binary forms, with or without modification, are permitted provided 5*4e1bc9a0SAchim Leubner *that the following conditions are met: 6*4e1bc9a0SAchim Leubner *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the 7*4e1bc9a0SAchim Leubner *following disclaimer. 8*4e1bc9a0SAchim Leubner *2. Redistributions in binary form must reproduce the above copyright notice, 9*4e1bc9a0SAchim Leubner *this list of conditions and the following disclaimer in the documentation and/or other materials provided 10*4e1bc9a0SAchim Leubner *with the distribution. 11*4e1bc9a0SAchim Leubner * 12*4e1bc9a0SAchim Leubner *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 13*4e1bc9a0SAchim Leubner *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 14*4e1bc9a0SAchim Leubner *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15*4e1bc9a0SAchim Leubner *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16*4e1bc9a0SAchim Leubner *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 17*4e1bc9a0SAchim Leubner *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18*4e1bc9a0SAchim Leubner *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 19*4e1bc9a0SAchim Leubner *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 20*4e1bc9a0SAchim Leubner * 21*4e1bc9a0SAchim Leubner * 22*4e1bc9a0SAchim Leubner ********************************************************************************/ 23*4e1bc9a0SAchim Leubner /******************************************************************************** 24*4e1bc9a0SAchim Leubner * smapi.h 25*4e1bc9a0SAchim Leubner * 26*4e1bc9a0SAchim Leubner * Abstract: This module contains function prototype of the SAT 27*4e1bc9a0SAchim Leubner * Module (SM) API for initiator. 28*4e1bc9a0SAchim Leubner *******************************************************************************/ 29*4e1bc9a0SAchim Leubner 30*4e1bc9a0SAchim Leubner #ifndef SMAPI_H 31*4e1bc9a0SAchim Leubner #define SMAPI_H 32*4e1bc9a0SAchim Leubner 33*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/sat/api/sm.h> 34*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/sallsdk/api/sa.h> 35*4e1bc9a0SAchim Leubner 36*4e1bc9a0SAchim Leubner osGLOBAL bit32 37*4e1bc9a0SAchim Leubner smRegisterDevice( 38*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 39*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 40*4e1bc9a0SAchim Leubner smDeviceHandle_t *smDeviceHandle, 41*4e1bc9a0SAchim Leubner agsaDevHandle_t *agExpDevHandle, 42*4e1bc9a0SAchim Leubner bit32 phyID, 43*4e1bc9a0SAchim Leubner bit32 DeviceType 44*4e1bc9a0SAchim Leubner ); 45*4e1bc9a0SAchim Leubner 46*4e1bc9a0SAchim Leubner osGLOBAL bit32 47*4e1bc9a0SAchim Leubner smDeregisterDevice( 48*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 49*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle, 50*4e1bc9a0SAchim Leubner smDeviceHandle_t *smDeviceHandle 51*4e1bc9a0SAchim Leubner ); 52*4e1bc9a0SAchim Leubner 53*4e1bc9a0SAchim Leubner osGLOBAL void 54*4e1bc9a0SAchim Leubner smGetRequirements( 55*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 56*4e1bc9a0SAchim Leubner smSwConfig_t *swConfig, 57*4e1bc9a0SAchim Leubner smMemoryRequirement_t *memoryRequirement, 58*4e1bc9a0SAchim Leubner bit32 *usecsPerTick, 59*4e1bc9a0SAchim Leubner bit32 *maxNumLocks 60*4e1bc9a0SAchim Leubner ); 61*4e1bc9a0SAchim Leubner 62*4e1bc9a0SAchim Leubner osGLOBAL bit32 63*4e1bc9a0SAchim Leubner smIDStart( 64*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 65*4e1bc9a0SAchim Leubner smIORequest_t *smIORequest, 66*4e1bc9a0SAchim Leubner smDeviceHandle_t *smDeviceHandle 67*4e1bc9a0SAchim Leubner ); 68*4e1bc9a0SAchim Leubner 69*4e1bc9a0SAchim Leubner osGLOBAL bit32 70*4e1bc9a0SAchim Leubner smInitialize( 71*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 72*4e1bc9a0SAchim Leubner agsaRoot_t *agRoot, 73*4e1bc9a0SAchim Leubner smMemoryRequirement_t *memoryAllocated, 74*4e1bc9a0SAchim Leubner smSwConfig_t *swConfig, 75*4e1bc9a0SAchim Leubner bit32 usecsPerTick 76*4e1bc9a0SAchim Leubner ); 77*4e1bc9a0SAchim Leubner 78*4e1bc9a0SAchim Leubner osGLOBAL bit32 79*4e1bc9a0SAchim Leubner smIOAbort( 80*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 81*4e1bc9a0SAchim Leubner smIORequest_t *tasktag 82*4e1bc9a0SAchim Leubner ); 83*4e1bc9a0SAchim Leubner 84*4e1bc9a0SAchim Leubner osGLOBAL bit32 85*4e1bc9a0SAchim Leubner smIOAbortAll( 86*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 87*4e1bc9a0SAchim Leubner smDeviceHandle_t *smDeviceHandle 88*4e1bc9a0SAchim Leubner ); 89*4e1bc9a0SAchim Leubner 90*4e1bc9a0SAchim Leubner osGLOBAL FORCEINLINE bit32 91*4e1bc9a0SAchim Leubner smIOStart( 92*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 93*4e1bc9a0SAchim Leubner smIORequest_t *smIORequest, 94*4e1bc9a0SAchim Leubner smDeviceHandle_t *smDeviceHandle, 95*4e1bc9a0SAchim Leubner smScsiInitiatorRequest_t *smSCSIRequest, 96*4e1bc9a0SAchim Leubner bit32 interruptContext 97*4e1bc9a0SAchim Leubner ); 98*4e1bc9a0SAchim Leubner 99*4e1bc9a0SAchim Leubner osGLOBAL bit32 100*4e1bc9a0SAchim Leubner smSuperIOStart( 101*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 102*4e1bc9a0SAchim Leubner smIORequest_t *smIORequest, 103*4e1bc9a0SAchim Leubner smDeviceHandle_t *smDeviceHandle, 104*4e1bc9a0SAchim Leubner smSuperScsiInitiatorRequest_t *smSCSIRequest, 105*4e1bc9a0SAchim Leubner bit32 AddrHi, 106*4e1bc9a0SAchim Leubner bit32 AddrLo, 107*4e1bc9a0SAchim Leubner bit32 interruptContext 108*4e1bc9a0SAchim Leubner ); 109*4e1bc9a0SAchim Leubner 110*4e1bc9a0SAchim Leubner osGLOBAL bit32 111*4e1bc9a0SAchim Leubner smTaskManagement( 112*4e1bc9a0SAchim Leubner smRoot_t *smRoot, 113*4e1bc9a0SAchim Leubner smDeviceHandle_t *smDeviceHandle, 114*4e1bc9a0SAchim Leubner bit32 task, 115*4e1bc9a0SAchim Leubner smLUN_t *lun, 116*4e1bc9a0SAchim Leubner smIORequest_t *taskTag, 117*4e1bc9a0SAchim Leubner smIORequest_t *currentTaskTag 118*4e1bc9a0SAchim Leubner ); 119*4e1bc9a0SAchim Leubner 120*4e1bc9a0SAchim Leubner #endif /* SMAPI_H */ 121*4e1bc9a0SAchim Leubner 122