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 37 osGLOBAL bit32 38 smRegisterDevice( 39 smRoot_t *smRoot, 40 agsaDevHandle_t *agDevHandle, 41 smDeviceHandle_t *smDeviceHandle, 42 agsaDevHandle_t *agExpDevHandle, 43 bit32 phyID, 44 bit32 DeviceType 45 ); 46 47 osGLOBAL bit32 48 smDeregisterDevice( 49 smRoot_t *smRoot, 50 agsaDevHandle_t *agDevHandle, 51 smDeviceHandle_t *smDeviceHandle 52 ); 53 54 osGLOBAL void 55 smGetRequirements( 56 smRoot_t *smRoot, 57 smSwConfig_t *swConfig, 58 smMemoryRequirement_t *memoryRequirement, 59 bit32 *usecsPerTick, 60 bit32 *maxNumLocks 61 ); 62 63 osGLOBAL bit32 64 smIDStart( 65 smRoot_t *smRoot, 66 smIORequest_t *smIORequest, 67 smDeviceHandle_t *smDeviceHandle 68 ); 69 70 osGLOBAL bit32 71 smInitialize( 72 smRoot_t *smRoot, 73 agsaRoot_t *agRoot, 74 smMemoryRequirement_t *memoryAllocated, 75 smSwConfig_t *swConfig, 76 bit32 usecsPerTick 77 ); 78 79 osGLOBAL bit32 80 smIOAbort( 81 smRoot_t *smRoot, 82 smIORequest_t *tasktag 83 ); 84 85 osGLOBAL bit32 86 smIOAbortAll( 87 smRoot_t *smRoot, 88 smDeviceHandle_t *smDeviceHandle 89 ); 90 91 osGLOBAL FORCEINLINE bit32 92 smIOStart( 93 smRoot_t *smRoot, 94 smIORequest_t *smIORequest, 95 smDeviceHandle_t *smDeviceHandle, 96 smScsiInitiatorRequest_t *smSCSIRequest, 97 bit32 interruptContext 98 ); 99 100 osGLOBAL bit32 101 smSuperIOStart( 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 111 osGLOBAL bit32 112 smTaskManagement( 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