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 * $FreeBSD$ 22*4e1bc9a0SAchim Leubner * 23*4e1bc9a0SAchim Leubner ********************************************************************************/ 24*4e1bc9a0SAchim Leubner /******************************************************************************** 25*4e1bc9a0SAchim Leubner * tmdmapi.h 26*4e1bc9a0SAchim Leubner * 27*4e1bc9a0SAchim Leubner * Abstract: This module contains function prototype of the Discovery 28*4e1bc9a0SAchim Leubner * Module (DM) API callback for initiator. 29*4e1bc9a0SAchim Leubner *******************************************************************************/ 30*4e1bc9a0SAchim Leubner 31*4e1bc9a0SAchim Leubner #ifndef TDDMAPI_H 32*4e1bc9a0SAchim Leubner 33*4e1bc9a0SAchim Leubner #define TDDMAPI_H 34*4e1bc9a0SAchim Leubner 35*4e1bc9a0SAchim Leubner osGLOBAL void tddmCacheFlush( 36*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 37*4e1bc9a0SAchim Leubner void *tdMemHandle, 38*4e1bc9a0SAchim Leubner void *virtPtr, 39*4e1bc9a0SAchim Leubner bit32 length 40*4e1bc9a0SAchim Leubner ); 41*4e1bc9a0SAchim Leubner 42*4e1bc9a0SAchim Leubner osGLOBAL void tddmCacheInvalidate( 43*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 44*4e1bc9a0SAchim Leubner void *tdMemHandle, 45*4e1bc9a0SAchim Leubner void *virtPtr, 46*4e1bc9a0SAchim Leubner bit32 length 47*4e1bc9a0SAchim Leubner ); 48*4e1bc9a0SAchim Leubner 49*4e1bc9a0SAchim Leubner osGLOBAL void tddmCachePreFlush( 50*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 51*4e1bc9a0SAchim Leubner void *tdMemHandle, 52*4e1bc9a0SAchim Leubner void *virtPtr, 53*4e1bc9a0SAchim Leubner bit32 length 54*4e1bc9a0SAchim Leubner ); 55*4e1bc9a0SAchim Leubner 56*4e1bc9a0SAchim Leubner osGLOBAL void tddmDiscoverCB( 57*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 58*4e1bc9a0SAchim Leubner dmPortContext_t *dmPortContext, 59*4e1bc9a0SAchim Leubner bit32 eventStatus 60*4e1bc9a0SAchim Leubner ); 61*4e1bc9a0SAchim Leubner 62*4e1bc9a0SAchim Leubner osGLOBAL void tddmQueryDiscoveryCB( 63*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 64*4e1bc9a0SAchim Leubner dmPortContext_t *dmPortContext, 65*4e1bc9a0SAchim Leubner bit32 discType, 66*4e1bc9a0SAchim Leubner bit32 discState 67*4e1bc9a0SAchim Leubner ); 68*4e1bc9a0SAchim Leubner 69*4e1bc9a0SAchim Leubner osGLOBAL void tddmReportDevice( 70*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 71*4e1bc9a0SAchim Leubner dmPortContext_t *dmPortContext, 72*4e1bc9a0SAchim Leubner dmDeviceInfo_t *dmDeviceInfo, 73*4e1bc9a0SAchim Leubner dmDeviceInfo_t *dmExpDeviceInfo, 74*4e1bc9a0SAchim Leubner bit32 flag 75*4e1bc9a0SAchim Leubner ); 76*4e1bc9a0SAchim Leubner 77*4e1bc9a0SAchim Leubner osGLOBAL bit8 tddmSATADeviceTypeDecode(bit8 * pSignature); 78*4e1bc9a0SAchim Leubner 79*4e1bc9a0SAchim Leubner osGLOBAL void tddmSingleThreadedEnter( 80*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 81*4e1bc9a0SAchim Leubner bit32 syncLockId 82*4e1bc9a0SAchim Leubner ); 83*4e1bc9a0SAchim Leubner 84*4e1bc9a0SAchim Leubner osGLOBAL void tddmSingleThreadedLeave( 85*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 86*4e1bc9a0SAchim Leubner bit32 syncLockId 87*4e1bc9a0SAchim Leubner ); 88*4e1bc9a0SAchim Leubner osGLOBAL bit32 tddmGetTransportParam( 89*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 90*4e1bc9a0SAchim Leubner char *key, 91*4e1bc9a0SAchim Leubner char *subkey1, 92*4e1bc9a0SAchim Leubner char *subkey2, 93*4e1bc9a0SAchim Leubner char *subkey3, 94*4e1bc9a0SAchim Leubner char *subkey4, 95*4e1bc9a0SAchim Leubner char *subkey5, 96*4e1bc9a0SAchim Leubner char *valueName, 97*4e1bc9a0SAchim Leubner char *buffer, 98*4e1bc9a0SAchim Leubner bit32 bufferLen, 99*4e1bc9a0SAchim Leubner bit32 *lenReceived 100*4e1bc9a0SAchim Leubner ); 101*4e1bc9a0SAchim Leubner osGLOBAL bit32 102*4e1bc9a0SAchim Leubner tddmRotateQnumber( 103*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 104*4e1bc9a0SAchim Leubner agsaDevHandle_t *agDevHandle 105*4e1bc9a0SAchim Leubner ); 106*4e1bc9a0SAchim Leubner #ifndef tddmLogDebugString 107*4e1bc9a0SAchim Leubner GLOBAL void tddmLogDebugString( 108*4e1bc9a0SAchim Leubner dmRoot_t *dmRoot, 109*4e1bc9a0SAchim Leubner bit32 level, 110*4e1bc9a0SAchim Leubner char *string, 111*4e1bc9a0SAchim Leubner void *ptr1, 112*4e1bc9a0SAchim Leubner void *ptr2, 113*4e1bc9a0SAchim Leubner bit32 value1, 114*4e1bc9a0SAchim Leubner bit32 value2 115*4e1bc9a0SAchim Leubner ); 116*4e1bc9a0SAchim Leubner #endif 117*4e1bc9a0SAchim Leubner 118*4e1bc9a0SAchim Leubner 119*4e1bc9a0SAchim Leubner #endif /* TDDMAPI_H */ 120