1285242Sachim/******************************************************************************* 2285242Sachim*Copyright (c) 2014 PMC-Sierra, Inc. All rights reserved. 3285242Sachim* 4285242Sachim*Redistribution and use in source and binary forms, with or without modification, are permitted provided 5285242Sachim*that the following conditions are met: 6285242Sachim*1. Redistributions of source code must retain the above copyright notice, this list of conditions and the 7285242Sachim*following disclaimer. 8285242Sachim*2. Redistributions in binary form must reproduce the above copyright notice, 9285242Sachim*this list of conditions and the following disclaimer in the documentation and/or other materials provided 10285242Sachim*with the distribution. 11285242Sachim* 12285242Sachim*THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 13285242Sachim*WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 14285242Sachim*FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15285242Sachim*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16285242Sachim*NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 17285242Sachim*BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18285242Sachim*LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 19285242Sachim*SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 20285242Sachim* 21285242Sachim* $FreeBSD$ 22285242Sachim* 23285242Sachim********************************************************************************/ 24285242Sachim/******************************************************************************** 25285242Sachim* smapi.h 26285242Sachim* 27285242Sachim* Abstract: This module contains function prototype of the SAT 28285242Sachim* Module (SM) API for initiator. 29285242Sachim*******************************************************************************/ 30285242Sachim 31285242Sachim#ifndef SMAPI_H 32285242Sachim#define SMAPI_H 33285242Sachim 34285242Sachim#include <dev/pms/RefTisa/sat/api/sm.h> 35285242Sachim#include <dev/pms/RefTisa/sallsdk/api/sa.h> 36285242Sachim 37285242SachimosGLOBAL bit32 38285242SachimsmRegisterDevice( 39285242Sachim smRoot_t *smRoot, 40285242Sachim agsaDevHandle_t *agDevHandle, 41285242Sachim smDeviceHandle_t *smDeviceHandle, 42285242Sachim agsaDevHandle_t *agExpDevHandle, 43285242Sachim bit32 phyID, 44285242Sachim bit32 DeviceType 45285242Sachim ); 46285242Sachim 47285242SachimosGLOBAL bit32 48285242SachimsmDeregisterDevice( 49285242Sachim smRoot_t *smRoot, 50285242Sachim agsaDevHandle_t *agDevHandle, 51285242Sachim smDeviceHandle_t *smDeviceHandle 52285242Sachim ); 53285242Sachim 54285242SachimosGLOBAL void 55285242SachimsmGetRequirements( 56285242Sachim smRoot_t *smRoot, 57285242Sachim smSwConfig_t *swConfig, 58285242Sachim smMemoryRequirement_t *memoryRequirement, 59285242Sachim bit32 *usecsPerTick, 60285242Sachim bit32 *maxNumLocks 61285242Sachim ); 62285242Sachim 63285242SachimosGLOBAL bit32 64285242SachimsmIDStart( 65285242Sachim smRoot_t *smRoot, 66285242Sachim smIORequest_t *smIORequest, 67285242Sachim smDeviceHandle_t *smDeviceHandle 68285242Sachim ); 69285242Sachim 70285242SachimosGLOBAL bit32 71285242SachimsmInitialize( 72285242Sachim smRoot_t *smRoot, 73285242Sachim agsaRoot_t *agRoot, 74285242Sachim smMemoryRequirement_t *memoryAllocated, 75285242Sachim smSwConfig_t *swConfig, 76285242Sachim bit32 usecsPerTick 77285242Sachim ); 78285242Sachim 79285242SachimosGLOBAL bit32 80285242SachimsmIOAbort( 81285242Sachim smRoot_t *smRoot, 82285242Sachim smIORequest_t *tasktag 83285242Sachim ); 84285242Sachim 85285242SachimosGLOBAL bit32 86285242SachimsmIOAbortAll( 87285242Sachim smRoot_t *smRoot, 88285242Sachim smDeviceHandle_t *smDeviceHandle 89285242Sachim ); 90285242Sachim 91285242SachimosGLOBAL FORCEINLINE bit32 92285242SachimsmIOStart( 93285242Sachim smRoot_t *smRoot, 94285242Sachim smIORequest_t *smIORequest, 95285242Sachim smDeviceHandle_t *smDeviceHandle, 96285242Sachim smScsiInitiatorRequest_t *smSCSIRequest, 97285242Sachim bit32 interruptContext 98285242Sachim ); 99285242Sachim 100285242SachimosGLOBAL bit32 101285242SachimsmSuperIOStart( 102285242Sachim smRoot_t *smRoot, 103285242Sachim smIORequest_t *smIORequest, 104285242Sachim smDeviceHandle_t *smDeviceHandle, 105285242Sachim smSuperScsiInitiatorRequest_t *smSCSIRequest, 106285242Sachim bit32 AddrHi, 107285242Sachim bit32 AddrLo, 108285242Sachim bit32 interruptContext 109285242Sachim ); 110285242Sachim 111285242SachimosGLOBAL bit32 112285242SachimsmTaskManagement( 113285242Sachim smRoot_t *smRoot, 114285242Sachim smDeviceHandle_t *smDeviceHandle, 115285242Sachim bit32 task, 116285242Sachim smLUN_t *lun, 117285242Sachim smIORequest_t *taskTag, 118285242Sachim smIORequest_t *currentTaskTag 119285242Sachim ); 120285242Sachim 121285242Sachim#endif /* SMAPI_H */ 122285242Sachim 123