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/******************************************************************************** 25* smapi.h 26* 27* Abstract: This module contains function prototype of the SAT 28* Module (SM) API for initiator. 29*******************************************************************************/ 30 31#ifndef SMAPI_H 32#define SMAPI_H 33 34#include <dev/pms/RefTisa/sat/api/sm.h> 35#include <dev/pms/RefTisa/sallsdk/api/sa.h> 36 37osGLOBAL bit32 38smRegisterDevice( 39 smRoot_t *smRoot, 40 agsaDevHandle_t *agDevHandle, 41 smDeviceHandle_t *smDeviceHandle, 42 agsaDevHandle_t *agExpDevHandle, 43 bit32 phyID, 44 bit32 DeviceType 45 ); 46 47osGLOBAL bit32 48smDeregisterDevice( 49 smRoot_t *smRoot, 50 agsaDevHandle_t *agDevHandle, 51 smDeviceHandle_t *smDeviceHandle 52 ); 53 54osGLOBAL void 55smGetRequirements( 56 smRoot_t *smRoot, 57 smSwConfig_t *swConfig, 58 smMemoryRequirement_t *memoryRequirement, 59 bit32 *usecsPerTick, 60 bit32 *maxNumLocks 61 ); 62 63osGLOBAL bit32 64smIDStart( 65 smRoot_t *smRoot, 66 smIORequest_t *smIORequest, 67 smDeviceHandle_t *smDeviceHandle 68 ); 69 70osGLOBAL bit32 71smInitialize( 72 smRoot_t *smRoot, 73 agsaRoot_t *agRoot, 74 smMemoryRequirement_t *memoryAllocated, 75 smSwConfig_t *swConfig, 76 bit32 usecsPerTick 77 ); 78 79osGLOBAL bit32 80smIOAbort( 81 smRoot_t *smRoot, 82 smIORequest_t *tasktag 83 ); 84 85osGLOBAL bit32 86smIOAbortAll( 87 smRoot_t *smRoot, 88 smDeviceHandle_t *smDeviceHandle 89 ); 90 91osGLOBAL FORCEINLINE bit32 92smIOStart( 93 smRoot_t *smRoot, 94 smIORequest_t *smIORequest, 95 smDeviceHandle_t *smDeviceHandle, 96 smScsiInitiatorRequest_t *smSCSIRequest, 97 bit32 interruptContext 98 ); 99 100osGLOBAL bit32 101smSuperIOStart( 102 smRoot_t *smRoot, 103 smIORequest_t *smIORequest, 104 smDeviceHandle_t *smDeviceHandle, 105 smSuperScsiInitiatorRequest_t *smSCSIRequest, 106 bit32 AddrHi, 107 bit32 AddrLo, 108 bit32 interruptContext 109 ); 110 111osGLOBAL bit32 112smTaskManagement( 113 smRoot_t *smRoot, 114 smDeviceHandle_t *smDeviceHandle, 115 bit32 task, 116 smLUN_t *lun, 117 smIORequest_t *taskTag, 118 smIORequest_t *currentTaskTag 119 ); 120 121#endif /* SMAPI_H */ 122 123