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