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