xref: /freebsd/sys/dev/pms/RefTisa/discovery/api/tddmapi.h (revision 4e1bc9a039df516be13abb902ab76677fef81b1d)
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