xref: /freebsd/sys/dev/pms/RefTisa/discovery/dm/dmproto.h (revision 2ff63af9b88c7413b7d71715b5532625752a248e)
1*4e1bc9a0SAchim Leubner /*******************************************************************************
2*4e1bc9a0SAchim Leubner *
3*4e1bc9a0SAchim Leubner *Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved.
4*4e1bc9a0SAchim Leubner *
5*4e1bc9a0SAchim Leubner *Redistribution and use in source and binary forms, with or without modification, are permitted provided
6*4e1bc9a0SAchim Leubner *that the following conditions are met:
7*4e1bc9a0SAchim Leubner *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
8*4e1bc9a0SAchim Leubner *following disclaimer.
9*4e1bc9a0SAchim Leubner *2. Redistributions in binary form must reproduce the above copyright notice,
10*4e1bc9a0SAchim Leubner *this list of conditions and the following disclaimer in the documentation and/or other materials provided
11*4e1bc9a0SAchim Leubner *with the distribution.
12*4e1bc9a0SAchim Leubner *
13*4e1bc9a0SAchim Leubner *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
14*4e1bc9a0SAchim Leubner *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
15*4e1bc9a0SAchim Leubner *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16*4e1bc9a0SAchim Leubner *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17*4e1bc9a0SAchim Leubner *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
18*4e1bc9a0SAchim Leubner *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
19*4e1bc9a0SAchim Leubner *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
20*4e1bc9a0SAchim Leubner *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
21*4e1bc9a0SAchim Leubner *
22*4e1bc9a0SAchim Leubner *
23*4e1bc9a0SAchim Leubner ********************************************************************************/
24*4e1bc9a0SAchim Leubner #ifndef __DMPROTO_H__
25*4e1bc9a0SAchim Leubner #define __DMPROTO_H__
26*4e1bc9a0SAchim Leubner 
27*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/discovery/dm/dmtypes.h>
28*4e1bc9a0SAchim Leubner 
29*4e1bc9a0SAchim Leubner /***************** util ****************************************/
30*4e1bc9a0SAchim Leubner osGLOBAL void
31*4e1bc9a0SAchim Leubner *dm_memset(void *s, int c, bit32 n);
32*4e1bc9a0SAchim Leubner 
33*4e1bc9a0SAchim Leubner osGLOBAL void
34*4e1bc9a0SAchim Leubner *dm_memcpy(void *dst, void *src, bit32 count);
35*4e1bc9a0SAchim Leubner 
36*4e1bc9a0SAchim Leubner osGLOBAL void
37*4e1bc9a0SAchim Leubner dmhexdump(const char *ptitle, bit8 *pbuf, int len);
38*4e1bc9a0SAchim Leubner 
39*4e1bc9a0SAchim Leubner 
40*4e1bc9a0SAchim Leubner /* timer related */
41*4e1bc9a0SAchim Leubner osGLOBAL void
42*4e1bc9a0SAchim Leubner dmInitTimers(
43*4e1bc9a0SAchim Leubner              dmRoot_t *dmRoot
44*4e1bc9a0SAchim Leubner             );
45*4e1bc9a0SAchim Leubner osGLOBAL void
46*4e1bc9a0SAchim Leubner dmInitTimerRequest(
47*4e1bc9a0SAchim Leubner                    dmRoot_t                *dmRoot,
48*4e1bc9a0SAchim Leubner                    dmTimerRequest_t        *timerRequest
49*4e1bc9a0SAchim Leubner                    );
50*4e1bc9a0SAchim Leubner 
51*4e1bc9a0SAchim Leubner osGLOBAL void
52*4e1bc9a0SAchim Leubner dmSetTimerRequest(
53*4e1bc9a0SAchim Leubner                   dmRoot_t            *dmRoot,
54*4e1bc9a0SAchim Leubner                   dmTimerRequest_t    *timerRequest,
55*4e1bc9a0SAchim Leubner                   bit32               timeout,
56*4e1bc9a0SAchim Leubner                   dmTimerCBFunc_t     CBFunc,
57*4e1bc9a0SAchim Leubner                   void                *timerData1,
58*4e1bc9a0SAchim Leubner                   void                *timerData2,
59*4e1bc9a0SAchim Leubner                   void                *timerData3
60*4e1bc9a0SAchim Leubner                   );
61*4e1bc9a0SAchim Leubner 
62*4e1bc9a0SAchim Leubner osGLOBAL void
63*4e1bc9a0SAchim Leubner dmAddTimer(
64*4e1bc9a0SAchim Leubner            dmRoot_t            *dmRoot,
65*4e1bc9a0SAchim Leubner            dmList_t            *timerListHdr,
66*4e1bc9a0SAchim Leubner            dmTimerRequest_t    *timerRequest
67*4e1bc9a0SAchim Leubner           );
68*4e1bc9a0SAchim Leubner 
69*4e1bc9a0SAchim Leubner osGLOBAL void
70*4e1bc9a0SAchim Leubner dmKillTimer(
71*4e1bc9a0SAchim Leubner             dmRoot_t            *dmRoot,
72*4e1bc9a0SAchim Leubner             dmTimerRequest_t    *timerRequest
73*4e1bc9a0SAchim Leubner            );
74*4e1bc9a0SAchim Leubner 
75*4e1bc9a0SAchim Leubner osGLOBAL void
76*4e1bc9a0SAchim Leubner dmProcessTimers(
77*4e1bc9a0SAchim Leubner                 dmRoot_t *dmRoot
78*4e1bc9a0SAchim Leubner                 );
79*4e1bc9a0SAchim Leubner 
80*4e1bc9a0SAchim Leubner 
81*4e1bc9a0SAchim Leubner 
82*4e1bc9a0SAchim Leubner osGLOBAL void
83*4e1bc9a0SAchim Leubner dmPortContextInit(
84*4e1bc9a0SAchim Leubner                   dmRoot_t *dmRoot
85*4e1bc9a0SAchim Leubner                  );
86*4e1bc9a0SAchim Leubner 
87*4e1bc9a0SAchim Leubner osGLOBAL void
88*4e1bc9a0SAchim Leubner dmPortContextReInit(
89*4e1bc9a0SAchim Leubner                     dmRoot_t		  *dmRoot,
90*4e1bc9a0SAchim Leubner                     dmIntPortContext_t    *onePortContext
91*4e1bc9a0SAchim Leubner                     );
92*4e1bc9a0SAchim Leubner 
93*4e1bc9a0SAchim Leubner osGLOBAL void
94*4e1bc9a0SAchim Leubner dmDeviceDataInit(
95*4e1bc9a0SAchim Leubner                  dmRoot_t *dmRoot
96*4e1bc9a0SAchim Leubner                 );
97*4e1bc9a0SAchim Leubner 
98*4e1bc9a0SAchim Leubner osGLOBAL void
99*4e1bc9a0SAchim Leubner dmDeviceDataReInit(
100*4e1bc9a0SAchim Leubner                    dmRoot_t		  *dmRoot,
101*4e1bc9a0SAchim Leubner                    dmDeviceData_t         *oneDeviceData
102*4e1bc9a0SAchim Leubner                   );
103*4e1bc9a0SAchim Leubner 
104*4e1bc9a0SAchim Leubner osGLOBAL void
105*4e1bc9a0SAchim Leubner dmExpanderDeviceDataInit(
106*4e1bc9a0SAchim Leubner                          dmRoot_t *dmRoot,
107*4e1bc9a0SAchim Leubner                          bit32    max_exp
108*4e1bc9a0SAchim Leubner                         );
109*4e1bc9a0SAchim Leubner 
110*4e1bc9a0SAchim Leubner osGLOBAL void
111*4e1bc9a0SAchim Leubner dmExpanderDeviceDataReInit(
112*4e1bc9a0SAchim Leubner                            dmRoot_t 	    *dmRoot,
113*4e1bc9a0SAchim Leubner                            dmExpander_t     *oneExpander
114*4e1bc9a0SAchim Leubner                           );
115*4e1bc9a0SAchim Leubner 
116*4e1bc9a0SAchim Leubner 
117*4e1bc9a0SAchim Leubner osGLOBAL void
118*4e1bc9a0SAchim Leubner dmSMPInit(
119*4e1bc9a0SAchim Leubner           dmRoot_t *dmRoot
120*4e1bc9a0SAchim Leubner          );
121*4e1bc9a0SAchim Leubner 
122*4e1bc9a0SAchim Leubner 
123*4e1bc9a0SAchim Leubner osGLOBAL bit32
124*4e1bc9a0SAchim Leubner dmDiscoverCheck(
125*4e1bc9a0SAchim Leubner                 dmRoot_t 	    	*dmRoot,
126*4e1bc9a0SAchim Leubner                 dmIntPortContext_t      *onePortContext
127*4e1bc9a0SAchim Leubner                 );
128*4e1bc9a0SAchim Leubner osGLOBAL void
129*4e1bc9a0SAchim Leubner dmDiscoverAbort(
130*4e1bc9a0SAchim Leubner                 dmRoot_t 	    	*dmRoot,
131*4e1bc9a0SAchim Leubner                 dmIntPortContext_t      *onePortContext
132*4e1bc9a0SAchim Leubner                 );
133*4e1bc9a0SAchim Leubner 
134*4e1bc9a0SAchim Leubner 
135*4e1bc9a0SAchim Leubner osGLOBAL bit32
136*4e1bc9a0SAchim Leubner dmFullDiscover(
137*4e1bc9a0SAchim Leubner                dmRoot_t 	    	*dmRoot,
138*4e1bc9a0SAchim Leubner                dmIntPortContext_t       *onePortContext
139*4e1bc9a0SAchim Leubner               );
140*4e1bc9a0SAchim Leubner 
141*4e1bc9a0SAchim Leubner osGLOBAL bit32
142*4e1bc9a0SAchim Leubner dmIncrementalDiscover(
143*4e1bc9a0SAchim Leubner                       dmRoot_t 	    	      *dmRoot,
144*4e1bc9a0SAchim Leubner                       dmIntPortContext_t      *onePortContext,
145*4e1bc9a0SAchim Leubner 		      bit32                   flag
146*4e1bc9a0SAchim Leubner                      );
147*4e1bc9a0SAchim Leubner 
148*4e1bc9a0SAchim Leubner osGLOBAL dmExpander_t *
149*4e1bc9a0SAchim Leubner dmDiscoveringExpanderAlloc(
150*4e1bc9a0SAchim Leubner                            dmRoot_t                 *dmRoot,
151*4e1bc9a0SAchim Leubner                            dmIntPortContext_t       *onePortContext,
152*4e1bc9a0SAchim Leubner                            dmDeviceData_t           *oneDeviceData
153*4e1bc9a0SAchim Leubner                           );
154*4e1bc9a0SAchim Leubner osGLOBAL void
155*4e1bc9a0SAchim Leubner dmDiscoveringExpanderAdd(
156*4e1bc9a0SAchim Leubner                          dmRoot_t                 *dmRoot,
157*4e1bc9a0SAchim Leubner                          dmIntPortContext_t       *onePortContext,
158*4e1bc9a0SAchim Leubner                          dmExpander_t             *oneExpander
159*4e1bc9a0SAchim Leubner                         );
160*4e1bc9a0SAchim Leubner 
161*4e1bc9a0SAchim Leubner osGLOBAL void
162*4e1bc9a0SAchim Leubner dmDiscoveringExpanderRemove(
163*4e1bc9a0SAchim Leubner                             dmRoot_t                 *dmRoot,
164*4e1bc9a0SAchim Leubner                             dmIntPortContext_t       *onePortContext,
165*4e1bc9a0SAchim Leubner                             dmExpander_t             *oneExpander
166*4e1bc9a0SAchim Leubner                            );
167*4e1bc9a0SAchim Leubner 
168*4e1bc9a0SAchim Leubner osGLOBAL dmExpander_t *
169*4e1bc9a0SAchim Leubner dmExpFind(
170*4e1bc9a0SAchim Leubner           dmRoot_t            *dmRoot,
171*4e1bc9a0SAchim Leubner           dmIntPortContext_t  *onePortContext,
172*4e1bc9a0SAchim Leubner           bit32               sasAddrHi,
173*4e1bc9a0SAchim Leubner           bit32               sasAddrLo
174*4e1bc9a0SAchim Leubner          );
175*4e1bc9a0SAchim Leubner 
176*4e1bc9a0SAchim Leubner osGLOBAL dmExpander_t *
177*4e1bc9a0SAchim Leubner dmExpMainListFind(
178*4e1bc9a0SAchim Leubner                   dmRoot_t            *dmRoot,
179*4e1bc9a0SAchim Leubner                   dmIntPortContext_t  *onePortContext,
180*4e1bc9a0SAchim Leubner                   bit32               sasAddrHi,
181*4e1bc9a0SAchim Leubner                   bit32               sasAddrLo
182*4e1bc9a0SAchim Leubner                  );
183*4e1bc9a0SAchim Leubner 
184*4e1bc9a0SAchim Leubner osGLOBAL dmDeviceData_t *
185*4e1bc9a0SAchim Leubner dmDeviceFind(
186*4e1bc9a0SAchim Leubner              dmRoot_t            *dmRoot,
187*4e1bc9a0SAchim Leubner              dmIntPortContext_t  *onePortContext,
188*4e1bc9a0SAchim Leubner              bit32               sasAddrHi,
189*4e1bc9a0SAchim Leubner              bit32               sasAddrLo
190*4e1bc9a0SAchim Leubner             );
191*4e1bc9a0SAchim Leubner 
192*4e1bc9a0SAchim Leubner osGLOBAL void
193*4e1bc9a0SAchim Leubner dmUpStreamDiscoverStart(
194*4e1bc9a0SAchim Leubner                         dmRoot_t             *dmRoot,
195*4e1bc9a0SAchim Leubner                         dmIntPortContext_t   *onePortContext
196*4e1bc9a0SAchim Leubner                        );
197*4e1bc9a0SAchim Leubner 
198*4e1bc9a0SAchim Leubner osGLOBAL void
199*4e1bc9a0SAchim Leubner dmUpStreamDiscovering(
200*4e1bc9a0SAchim Leubner                       dmRoot_t              *dmRoot,
201*4e1bc9a0SAchim Leubner                       dmIntPortContext_t    *onePortContext,
202*4e1bc9a0SAchim Leubner                       dmDeviceData_t        *oneDeviceData
203*4e1bc9a0SAchim Leubner                      );
204*4e1bc9a0SAchim Leubner 
205*4e1bc9a0SAchim Leubner osGLOBAL void
206*4e1bc9a0SAchim Leubner dmDownStreamDiscovering(
207*4e1bc9a0SAchim Leubner                         dmRoot_t              *dmRoot,
208*4e1bc9a0SAchim Leubner                         dmIntPortContext_t    *onePortContext,
209*4e1bc9a0SAchim Leubner                         dmDeviceData_t        *oneDeviceData
210*4e1bc9a0SAchim Leubner                        );
211*4e1bc9a0SAchim Leubner 
212*4e1bc9a0SAchim Leubner osGLOBAL void
213*4e1bc9a0SAchim Leubner dmDownStreamDiscoverStart(
214*4e1bc9a0SAchim Leubner                           dmRoot_t              *dmRoot,
215*4e1bc9a0SAchim Leubner                           dmIntPortContext_t    *onePortContext,
216*4e1bc9a0SAchim Leubner                           dmDeviceData_t        *oneDeviceData
217*4e1bc9a0SAchim Leubner                          );
218*4e1bc9a0SAchim Leubner 
219*4e1bc9a0SAchim Leubner osGLOBAL void
220*4e1bc9a0SAchim Leubner dmCleanAllExp(
221*4e1bc9a0SAchim Leubner               dmRoot_t                 *dmRoot,
222*4e1bc9a0SAchim Leubner               dmIntPortContext_t       *onePortContext
223*4e1bc9a0SAchim Leubner              );
224*4e1bc9a0SAchim Leubner 
225*4e1bc9a0SAchim Leubner osGLOBAL void
226*4e1bc9a0SAchim Leubner dmInternalRemovals(
227*4e1bc9a0SAchim Leubner                    dmRoot_t                 *dmRoot,
228*4e1bc9a0SAchim Leubner                    dmIntPortContext_t       *onePortContext
229*4e1bc9a0SAchim Leubner                    );
230*4e1bc9a0SAchim Leubner osGLOBAL void
231*4e1bc9a0SAchim Leubner dmDiscoveryResetProcessed(
232*4e1bc9a0SAchim Leubner                           dmRoot_t                 *dmRoot,
233*4e1bc9a0SAchim Leubner                           dmIntPortContext_t       *onePortContext
234*4e1bc9a0SAchim Leubner                          );
235*4e1bc9a0SAchim Leubner 
236*4e1bc9a0SAchim Leubner osGLOBAL void
237*4e1bc9a0SAchim Leubner dmDiscoverDone(
238*4e1bc9a0SAchim Leubner                dmRoot_t                 *dmRoot,
239*4e1bc9a0SAchim Leubner                dmIntPortContext_t       *onePortContext,
240*4e1bc9a0SAchim Leubner                bit32                    flag
241*4e1bc9a0SAchim Leubner               );
242*4e1bc9a0SAchim Leubner 
243*4e1bc9a0SAchim Leubner osGLOBAL void
244*4e1bc9a0SAchim Leubner dmUpStreamDiscoverExpanderPhy(
245*4e1bc9a0SAchim Leubner                               dmRoot_t              *dmRoot,
246*4e1bc9a0SAchim Leubner                               dmIntPortContext_t    *onePortContext,
247*4e1bc9a0SAchim Leubner                               dmExpander_t          *oneExpander,
248*4e1bc9a0SAchim Leubner                               smpRespDiscover_t     *pDiscoverResp
249*4e1bc9a0SAchim Leubner                              );
250*4e1bc9a0SAchim Leubner 
251*4e1bc9a0SAchim Leubner osGLOBAL void
252*4e1bc9a0SAchim Leubner dmUpStreamDiscover2ExpanderPhy(
253*4e1bc9a0SAchim Leubner                               dmRoot_t              *dmRoot,
254*4e1bc9a0SAchim Leubner                               dmIntPortContext_t    *onePortContext,
255*4e1bc9a0SAchim Leubner                               dmExpander_t          *oneExpander,
256*4e1bc9a0SAchim Leubner                               smpRespDiscover2_t    *pDiscoverResp
257*4e1bc9a0SAchim Leubner                              );
258*4e1bc9a0SAchim Leubner 
259*4e1bc9a0SAchim Leubner osGLOBAL void
260*4e1bc9a0SAchim Leubner dmDownStreamDiscoverExpanderPhy(
261*4e1bc9a0SAchim Leubner                                 dmRoot_t              *dmRoot,
262*4e1bc9a0SAchim Leubner                                 dmIntPortContext_t    *onePortContext,
263*4e1bc9a0SAchim Leubner                                 dmExpander_t          *oneExpander,
264*4e1bc9a0SAchim Leubner                                 smpRespDiscover_t     *pDiscoverResp
265*4e1bc9a0SAchim Leubner                                );
266*4e1bc9a0SAchim Leubner osGLOBAL void
267*4e1bc9a0SAchim Leubner dmDownStreamDiscover2ExpanderPhy(
268*4e1bc9a0SAchim Leubner                                 dmRoot_t              *dmRoot,
269*4e1bc9a0SAchim Leubner                                 dmIntPortContext_t    *onePortContext,
270*4e1bc9a0SAchim Leubner                                 dmExpander_t          *oneExpander,
271*4e1bc9a0SAchim Leubner                                 smpRespDiscover2_t     *pDiscoverResp
272*4e1bc9a0SAchim Leubner                                );
273*4e1bc9a0SAchim Leubner 
274*4e1bc9a0SAchim Leubner osGLOBAL void
275*4e1bc9a0SAchim Leubner dmUpStreamDiscoverExpanderPhySkip(
276*4e1bc9a0SAchim Leubner                                    dmRoot_t              *dmRoot,
277*4e1bc9a0SAchim Leubner                                    dmIntPortContext_t    *onePortContext,
278*4e1bc9a0SAchim Leubner                                    dmExpander_t          *oneExpander
279*4e1bc9a0SAchim Leubner                                    );
280*4e1bc9a0SAchim Leubner 
281*4e1bc9a0SAchim Leubner osGLOBAL void
282*4e1bc9a0SAchim Leubner dmUpStreamDiscover2ExpanderPhySkip(
283*4e1bc9a0SAchim Leubner                                    dmRoot_t              *dmRoot,
284*4e1bc9a0SAchim Leubner                                    dmIntPortContext_t    *onePortContext,
285*4e1bc9a0SAchim Leubner                                    dmExpander_t          *oneExpander
286*4e1bc9a0SAchim Leubner                                    );
287*4e1bc9a0SAchim Leubner 
288*4e1bc9a0SAchim Leubner osGLOBAL void
289*4e1bc9a0SAchim Leubner dmDownStreamDiscoverExpanderPhySkip(
290*4e1bc9a0SAchim Leubner                                      dmRoot_t              *dmRoot,
291*4e1bc9a0SAchim Leubner                                      dmIntPortContext_t    *onePortContext,
292*4e1bc9a0SAchim Leubner                                      dmExpander_t          *oneExpander
293*4e1bc9a0SAchim Leubner                                      );
294*4e1bc9a0SAchim Leubner osGLOBAL void
295*4e1bc9a0SAchim Leubner dmDownStreamDiscover2ExpanderPhySkip(
296*4e1bc9a0SAchim Leubner                                      dmRoot_t              *dmRoot,
297*4e1bc9a0SAchim Leubner                                      dmIntPortContext_t    *onePortContext,
298*4e1bc9a0SAchim Leubner                                      dmExpander_t          *oneExpander
299*4e1bc9a0SAchim Leubner                                      );
300*4e1bc9a0SAchim Leubner 
301*4e1bc9a0SAchim Leubner osGLOBAL void
302*4e1bc9a0SAchim Leubner dmDiscoveringUndoAdd(
303*4e1bc9a0SAchim Leubner                      dmRoot_t                 *dmRoot,
304*4e1bc9a0SAchim Leubner                      dmIntPortContext_t       *onePortContext,
305*4e1bc9a0SAchim Leubner                      dmExpander_t             *oneExpander
306*4e1bc9a0SAchim Leubner                     );
307*4e1bc9a0SAchim Leubner 
308*4e1bc9a0SAchim Leubner 
309*4e1bc9a0SAchim Leubner osGLOBAL void
310*4e1bc9a0SAchim Leubner dmExpanderUpStreamPhyAdd(
311*4e1bc9a0SAchim Leubner                          dmRoot_t              *dmRoot,
312*4e1bc9a0SAchim Leubner                          dmExpander_t          *oneExpander,
313*4e1bc9a0SAchim Leubner                          bit8                  phyId
314*4e1bc9a0SAchim Leubner                          );
315*4e1bc9a0SAchim Leubner 
316*4e1bc9a0SAchim Leubner osGLOBAL void
317*4e1bc9a0SAchim Leubner dmExpanderDownStreamPhyAdd(
318*4e1bc9a0SAchim Leubner                            dmRoot_t              *dmRoot,
319*4e1bc9a0SAchim Leubner                            dmExpander_t          *oneExpander,
320*4e1bc9a0SAchim Leubner                            bit8                  phyId
321*4e1bc9a0SAchim Leubner                           );
322*4e1bc9a0SAchim Leubner 
323*4e1bc9a0SAchim Leubner osGLOBAL dmDeviceData_t *
324*4e1bc9a0SAchim Leubner dmPortSASDeviceFind(
325*4e1bc9a0SAchim Leubner                     dmRoot_t            *dmRoot,
326*4e1bc9a0SAchim Leubner                     dmIntPortContext_t  *onePortContext,
327*4e1bc9a0SAchim Leubner                     bit32               sasAddrLo,
328*4e1bc9a0SAchim Leubner                     bit32               sasAddrHi,
329*4e1bc9a0SAchim Leubner                     dmDeviceData_t      *CurrentDeviceData
330*4e1bc9a0SAchim Leubner                     );
331*4e1bc9a0SAchim Leubner bit32
332*4e1bc9a0SAchim Leubner dmNewEXPorNot(
333*4e1bc9a0SAchim Leubner               dmRoot_t              *dmRoot,
334*4e1bc9a0SAchim Leubner               dmIntPortContext_t    *onePortContext,
335*4e1bc9a0SAchim Leubner               dmSASSubID_t          *dmSASSubID
336*4e1bc9a0SAchim Leubner              );
337*4e1bc9a0SAchim Leubner 
338*4e1bc9a0SAchim Leubner bit32
339*4e1bc9a0SAchim Leubner dmNewSASorNot(
340*4e1bc9a0SAchim Leubner               dmRoot_t              *dmRoot,
341*4e1bc9a0SAchim Leubner               dmIntPortContext_t    *onePortContext,
342*4e1bc9a0SAchim Leubner               dmSASSubID_t          *dmSASSubID
343*4e1bc9a0SAchim Leubner              );
344*4e1bc9a0SAchim Leubner 
345*4e1bc9a0SAchim Leubner osGLOBAL dmDeviceData_t *
346*4e1bc9a0SAchim Leubner dmPortSASDeviceAdd(
347*4e1bc9a0SAchim Leubner                    dmRoot_t            *dmRoot,
348*4e1bc9a0SAchim Leubner                    dmIntPortContext_t  *onePortContext,
349*4e1bc9a0SAchim Leubner                    agsaSASIdentify_t   sasIdentify,
350*4e1bc9a0SAchim Leubner                    bit32               sasInitiator,
351*4e1bc9a0SAchim Leubner                    bit8                connectionRate,
352*4e1bc9a0SAchim Leubner                    bit32               itNexusTimeout,
353*4e1bc9a0SAchim Leubner                    bit32               firstBurstSize,
354*4e1bc9a0SAchim Leubner                    bit32               deviceType,
355*4e1bc9a0SAchim Leubner                    dmDeviceData_t      *oneDeviceData,
356*4e1bc9a0SAchim Leubner                    dmExpander_t        *dmExpander,
357*4e1bc9a0SAchim Leubner                    bit8                phyID
358*4e1bc9a0SAchim Leubner                   );
359*4e1bc9a0SAchim Leubner 
360*4e1bc9a0SAchim Leubner 
361*4e1bc9a0SAchim Leubner osGLOBAL dmDeviceData_t *
362*4e1bc9a0SAchim Leubner dmFindRegNValid(
363*4e1bc9a0SAchim Leubner                 dmRoot_t             *dmRoot,
364*4e1bc9a0SAchim Leubner                 dmIntPortContext_t   *onePortContext,
365*4e1bc9a0SAchim Leubner                 dmSASSubID_t         *dmSASSubID
366*4e1bc9a0SAchim Leubner                );
367*4e1bc9a0SAchim Leubner 
368*4e1bc9a0SAchim Leubner osGLOBAL dmExpander_t *
369*4e1bc9a0SAchim Leubner dmFindConfigurableExp(
370*4e1bc9a0SAchim Leubner                       dmRoot_t                  *dmRoot,
371*4e1bc9a0SAchim Leubner                       dmIntPortContext_t        *onePortContext,
372*4e1bc9a0SAchim Leubner                       dmExpander_t              *oneExpander
373*4e1bc9a0SAchim Leubner                      );
374*4e1bc9a0SAchim Leubner 
375*4e1bc9a0SAchim Leubner osGLOBAL bit32
376*4e1bc9a0SAchim Leubner dmDuplicateConfigSASAddr(
377*4e1bc9a0SAchim Leubner                          dmRoot_t                 *dmRoot,
378*4e1bc9a0SAchim Leubner                          dmExpander_t             *oneExpander,
379*4e1bc9a0SAchim Leubner                          bit32                    configSASAddressHi,
380*4e1bc9a0SAchim Leubner                          bit32                    configSASAddressLo
381*4e1bc9a0SAchim Leubner                         );
382*4e1bc9a0SAchim Leubner 
383*4e1bc9a0SAchim Leubner 
384*4e1bc9a0SAchim Leubner osGLOBAL bit16
385*4e1bc9a0SAchim Leubner dmFindCurrentDownStreamPhyIndex(
386*4e1bc9a0SAchim Leubner                                 dmRoot_t          *dmRoot,
387*4e1bc9a0SAchim Leubner                                 dmExpander_t      *oneExpander
388*4e1bc9a0SAchim Leubner                                 );
389*4e1bc9a0SAchim Leubner 
390*4e1bc9a0SAchim Leubner 
391*4e1bc9a0SAchim Leubner osGLOBAL bit32
392*4e1bc9a0SAchim Leubner dmFindDiscoveringExpander(
393*4e1bc9a0SAchim Leubner                           dmRoot_t                  *dmRoot,
394*4e1bc9a0SAchim Leubner                           dmIntPortContext_t        *onePortContext,
395*4e1bc9a0SAchim Leubner                           dmExpander_t              *oneExpander
396*4e1bc9a0SAchim Leubner                          );
397*4e1bc9a0SAchim Leubner 
398*4e1bc9a0SAchim Leubner osGLOBAL void
399*4e1bc9a0SAchim Leubner dmDumpAllExp(
400*4e1bc9a0SAchim Leubner              dmRoot_t                  *dmRoot,
401*4e1bc9a0SAchim Leubner              dmIntPortContext_t        *onePortContext,
402*4e1bc9a0SAchim Leubner              dmExpander_t              *oneExpander
403*4e1bc9a0SAchim Leubner             );
404*4e1bc9a0SAchim Leubner 
405*4e1bc9a0SAchim Leubner 
406*4e1bc9a0SAchim Leubner osGLOBAL void
407*4e1bc9a0SAchim Leubner dmDumpAllUpExp(
408*4e1bc9a0SAchim Leubner                dmRoot_t                  *dmRoot,
409*4e1bc9a0SAchim Leubner                dmIntPortContext_t        *onePortContext,
410*4e1bc9a0SAchim Leubner                dmExpander_t              *oneExpander
411*4e1bc9a0SAchim Leubner               );
412*4e1bc9a0SAchim Leubner 
413*4e1bc9a0SAchim Leubner osGLOBAL void
414*4e1bc9a0SAchim Leubner dmDumpAllFreeExp(
415*4e1bc9a0SAchim Leubner                  dmRoot_t                  *dmRoot
416*4e1bc9a0SAchim Leubner                 );
417*4e1bc9a0SAchim Leubner 
418*4e1bc9a0SAchim Leubner osGLOBAL void
419*4e1bc9a0SAchim Leubner dmDumpAllMainExp(
420*4e1bc9a0SAchim Leubner                  dmRoot_t                 *dmRoot,
421*4e1bc9a0SAchim Leubner                  dmIntPortContext_t       *onePortContext
422*4e1bc9a0SAchim Leubner                 );
423*4e1bc9a0SAchim Leubner 
424*4e1bc9a0SAchim Leubner osGLOBAL void
425*4e1bc9a0SAchim Leubner dmDumpAllMainDevice(
426*4e1bc9a0SAchim Leubner                    dmRoot_t                 *dmRoot,
427*4e1bc9a0SAchim Leubner                    dmIntPortContext_t       *onePortContext
428*4e1bc9a0SAchim Leubner                    );
429*4e1bc9a0SAchim Leubner 
430*4e1bc9a0SAchim Leubner osGLOBAL void
431*4e1bc9a0SAchim Leubner dmSubReportChanges(
432*4e1bc9a0SAchim Leubner                    dmRoot_t                  *dmRoot,
433*4e1bc9a0SAchim Leubner                    dmIntPortContext_t        *onePortContext,
434*4e1bc9a0SAchim Leubner 		   dmDeviceData_t            *oneDeviceData,
435*4e1bc9a0SAchim Leubner                    bit32                     flag
436*4e1bc9a0SAchim Leubner                   );
437*4e1bc9a0SAchim Leubner osGLOBAL void
438*4e1bc9a0SAchim Leubner dmSubReportRemovals(
439*4e1bc9a0SAchim Leubner                    dmRoot_t                  *dmRoot,
440*4e1bc9a0SAchim Leubner                    dmIntPortContext_t        *onePortContext,
441*4e1bc9a0SAchim Leubner                    dmDeviceData_t            *oneDeviceData,
442*4e1bc9a0SAchim Leubner                    bit32                     flag
443*4e1bc9a0SAchim Leubner                   );
444*4e1bc9a0SAchim Leubner 
445*4e1bc9a0SAchim Leubner osGLOBAL void
446*4e1bc9a0SAchim Leubner dmReportChanges(
447*4e1bc9a0SAchim Leubner                 dmRoot_t                  *dmRoot,
448*4e1bc9a0SAchim Leubner                 dmIntPortContext_t        *onePortContext
449*4e1bc9a0SAchim Leubner                );
450*4e1bc9a0SAchim Leubner 
451*4e1bc9a0SAchim Leubner osGLOBAL void
452*4e1bc9a0SAchim Leubner dmReportRemovals(
453*4e1bc9a0SAchim Leubner                  dmRoot_t                  *dmRoot,
454*4e1bc9a0SAchim Leubner                  dmIntPortContext_t        *onePortContext,
455*4e1bc9a0SAchim Leubner                  bit32                     flag
456*4e1bc9a0SAchim Leubner                 );
457*4e1bc9a0SAchim Leubner 
458*4e1bc9a0SAchim Leubner osGLOBAL void
459*4e1bc9a0SAchim Leubner dmDiscoveryDeviceCleanUp(
460*4e1bc9a0SAchim Leubner                          dmRoot_t                  *dmRoot,
461*4e1bc9a0SAchim Leubner                          dmIntPortContext_t        *onePortContext
462*4e1bc9a0SAchim Leubner                         );
463*4e1bc9a0SAchim Leubner osGLOBAL void
464*4e1bc9a0SAchim Leubner dmDiscoveryExpanderCleanUp(
465*4e1bc9a0SAchim Leubner                          dmRoot_t                  *dmRoot,
466*4e1bc9a0SAchim Leubner                          dmIntPortContext_t        *onePortContext
467*4e1bc9a0SAchim Leubner                         );
468*4e1bc9a0SAchim Leubner 
469*4e1bc9a0SAchim Leubner osGLOBAL void
470*4e1bc9a0SAchim Leubner dmResetReported(
471*4e1bc9a0SAchim Leubner                 dmRoot_t                  *dmRoot,
472*4e1bc9a0SAchim Leubner                 dmIntPortContext_t        *onePortContext
473*4e1bc9a0SAchim Leubner                );
474*4e1bc9a0SAchim Leubner 
475*4e1bc9a0SAchim Leubner osGLOBAL void
476*4e1bc9a0SAchim Leubner dmDiscoveryErrorRemovals(
477*4e1bc9a0SAchim Leubner                          dmRoot_t                  *dmRoot,
478*4e1bc9a0SAchim Leubner                          dmIntPortContext_t        *onePortContext
479*4e1bc9a0SAchim Leubner                         );
480*4e1bc9a0SAchim Leubner osGLOBAL void
481*4e1bc9a0SAchim Leubner dmDiscoveryInvalidateDevices(
482*4e1bc9a0SAchim Leubner                              dmRoot_t                  *dmRoot,
483*4e1bc9a0SAchim Leubner                              dmIntPortContext_t        *onePortContext
484*4e1bc9a0SAchim Leubner                             );
485*4e1bc9a0SAchim Leubner 
486*4e1bc9a0SAchim Leubner osGLOBAL dmDeviceData_t *
487*4e1bc9a0SAchim Leubner dmAddSASToSharedcontext(
488*4e1bc9a0SAchim Leubner                          dmRoot_t              *dmRoot,
489*4e1bc9a0SAchim Leubner                          dmIntPortContext_t    *onePortContext,
490*4e1bc9a0SAchim Leubner                          dmSASSubID_t          *dmSASSubID,
491*4e1bc9a0SAchim Leubner                          dmDeviceData_t        *oneExpDeviceData,
492*4e1bc9a0SAchim Leubner                          bit8                  phyID
493*4e1bc9a0SAchim Leubner                         );
494*4e1bc9a0SAchim Leubner osGLOBAL bit32
495*4e1bc9a0SAchim Leubner dmSAS2SAS11ErrorCheck(
496*4e1bc9a0SAchim Leubner                       dmRoot_t              *dmRoot,
497*4e1bc9a0SAchim Leubner                       dmIntPortContext_t    *onePortContext,
498*4e1bc9a0SAchim Leubner                       dmExpander_t          *topExpander,
499*4e1bc9a0SAchim Leubner                       dmExpander_t          *bottomExpander,
500*4e1bc9a0SAchim Leubner                       dmExpander_t          *currentExpander
501*4e1bc9a0SAchim Leubner                      );
502*4e1bc9a0SAchim Leubner 
503*4e1bc9a0SAchim Leubner osGLOBAL void
504*4e1bc9a0SAchim Leubner dmUpdateMCN(
505*4e1bc9a0SAchim Leubner             dmRoot_t            *dmRoot,
506*4e1bc9a0SAchim Leubner             dmIntPortContext_t  *onePortContext,
507*4e1bc9a0SAchim Leubner             dmDeviceData_t      *AdjacentDeviceData, /* adjacent expander */
508*4e1bc9a0SAchim Leubner             dmDeviceData_t      *oneDeviceData /* current one */
509*4e1bc9a0SAchim Leubner            );
510*4e1bc9a0SAchim Leubner 
511*4e1bc9a0SAchim Leubner osGLOBAL void
512*4e1bc9a0SAchim Leubner dmUpdateAllAdjacent(
513*4e1bc9a0SAchim Leubner                     dmRoot_t            *dmRoot,
514*4e1bc9a0SAchim Leubner                     dmIntPortContext_t  *onePortContext,
515*4e1bc9a0SAchim Leubner                     dmDeviceData_t      *oneDeviceData /* current one */
516*4e1bc9a0SAchim Leubner                    );
517*4e1bc9a0SAchim Leubner osGLOBAL void
518*4e1bc9a0SAchim Leubner dmDiscoveryResetMCN(
519*4e1bc9a0SAchim Leubner                     dmRoot_t                 *dmRoot,
520*4e1bc9a0SAchim Leubner                     dmIntPortContext_t       *onePortContext
521*4e1bc9a0SAchim Leubner                    );
522*4e1bc9a0SAchim Leubner 
523*4e1bc9a0SAchim Leubner osGLOBAL void
524*4e1bc9a0SAchim Leubner dmDiscoveryDumpMCN(
525*4e1bc9a0SAchim Leubner                     dmRoot_t                 *dmRoot,
526*4e1bc9a0SAchim Leubner                     dmIntPortContext_t       *onePortContext
527*4e1bc9a0SAchim Leubner                    );
528*4e1bc9a0SAchim Leubner 
529*4e1bc9a0SAchim Leubner osGLOBAL void
530*4e1bc9a0SAchim Leubner dmDiscoveryReportMCN(
531*4e1bc9a0SAchim Leubner                     dmRoot_t                 *dmRoot,
532*4e1bc9a0SAchim Leubner                     dmIntPortContext_t       *onePortContext
533*4e1bc9a0SAchim Leubner                    );
534*4e1bc9a0SAchim Leubner 
535*4e1bc9a0SAchim Leubner GLOBAL void dmSetDeviceInfoCB(
536*4e1bc9a0SAchim Leubner                                 agsaRoot_t        *agRoot,
537*4e1bc9a0SAchim Leubner                                 agsaContext_t     *agContext,
538*4e1bc9a0SAchim Leubner                                 agsaDevHandle_t   *agDevHandle,
539*4e1bc9a0SAchim Leubner                                 bit32             status,
540*4e1bc9a0SAchim Leubner                                 bit32             option,
541*4e1bc9a0SAchim Leubner                                 bit32             param
542*4e1bc9a0SAchim Leubner                                 );
543*4e1bc9a0SAchim Leubner 
544*4e1bc9a0SAchim Leubner /*********************************** SMP-related *******************************************************/
545*4e1bc9a0SAchim Leubner osGLOBAL void
546*4e1bc9a0SAchim Leubner dmsaSMPCompleted(
547*4e1bc9a0SAchim Leubner                  agsaRoot_t            *agRoot,
548*4e1bc9a0SAchim Leubner                  agsaIORequest_t       *agIORequest,
549*4e1bc9a0SAchim Leubner                  bit32                 agIOStatus,
550*4e1bc9a0SAchim Leubner                  bit32                 agIOInfoLen,
551*4e1bc9a0SAchim Leubner                  agsaFrameHandle_t     agFrameHandle
552*4e1bc9a0SAchim Leubner                  );
553*4e1bc9a0SAchim Leubner 
554*4e1bc9a0SAchim Leubner osGLOBAL bit32
555*4e1bc9a0SAchim Leubner dmSMPStart(
556*4e1bc9a0SAchim Leubner            dmRoot_t              *dmRoot,
557*4e1bc9a0SAchim Leubner            agsaRoot_t            *agRoot,
558*4e1bc9a0SAchim Leubner            dmDeviceData_t        *oneDeviceData,
559*4e1bc9a0SAchim Leubner            bit32                 functionCode,
560*4e1bc9a0SAchim Leubner            bit8                  *pSmpBody,
561*4e1bc9a0SAchim Leubner            bit32                 smpBodySize,
562*4e1bc9a0SAchim Leubner            bit32                 agRequestType
563*4e1bc9a0SAchim Leubner            );
564*4e1bc9a0SAchim Leubner 
565*4e1bc9a0SAchim Leubner osGLOBAL void
566*4e1bc9a0SAchim Leubner dmReportGeneralSend(
567*4e1bc9a0SAchim Leubner                     dmRoot_t             *dmRoot,
568*4e1bc9a0SAchim Leubner                     dmDeviceData_t       *oneDeviceData
569*4e1bc9a0SAchim Leubner                     );
570*4e1bc9a0SAchim Leubner 
571*4e1bc9a0SAchim Leubner osGLOBAL void
572*4e1bc9a0SAchim Leubner dmReportGeneralRespRcvd(
573*4e1bc9a0SAchim Leubner                         dmRoot_t              *dmRoot,
574*4e1bc9a0SAchim Leubner                         agsaRoot_t            *agRoot,
575*4e1bc9a0SAchim Leubner                         agsaIORequest_t       *agIORequest,
576*4e1bc9a0SAchim Leubner                         dmDeviceData_t        *oneDeviceData,
577*4e1bc9a0SAchim Leubner                         dmSMPFrameHeader_t    *frameHeader,
578*4e1bc9a0SAchim Leubner                         agsaFrameHandle_t     frameHandle
579*4e1bc9a0SAchim Leubner                         );
580*4e1bc9a0SAchim Leubner 
581*4e1bc9a0SAchim Leubner osGLOBAL void
582*4e1bc9a0SAchim Leubner dmReportGeneral2RespRcvd(
583*4e1bc9a0SAchim Leubner                         dmRoot_t              *dmRoot,
584*4e1bc9a0SAchim Leubner                         agsaRoot_t            *agRoot,
585*4e1bc9a0SAchim Leubner                         agsaIORequest_t       *agIORequest,
586*4e1bc9a0SAchim Leubner                         dmDeviceData_t        *oneDeviceData,
587*4e1bc9a0SAchim Leubner                         dmSMPFrameHeader_t    *frameHeader,
588*4e1bc9a0SAchim Leubner                         agsaFrameHandle_t     frameHandle
589*4e1bc9a0SAchim Leubner                         );
590*4e1bc9a0SAchim Leubner 
591*4e1bc9a0SAchim Leubner osGLOBAL void
592*4e1bc9a0SAchim Leubner dmDiscoverSend(
593*4e1bc9a0SAchim Leubner                dmRoot_t             *dmRoot,
594*4e1bc9a0SAchim Leubner                dmDeviceData_t       *oneDeviceData
595*4e1bc9a0SAchim Leubner               );
596*4e1bc9a0SAchim Leubner 
597*4e1bc9a0SAchim Leubner osGLOBAL void
598*4e1bc9a0SAchim Leubner dmDiscoverRespRcvd(
599*4e1bc9a0SAchim Leubner                    dmRoot_t              *dmRoot,
600*4e1bc9a0SAchim Leubner                    agsaRoot_t            *agRoot,
601*4e1bc9a0SAchim Leubner                    agsaIORequest_t       *agIORequest,
602*4e1bc9a0SAchim Leubner                    dmDeviceData_t        *oneDeviceData,
603*4e1bc9a0SAchim Leubner                    dmSMPFrameHeader_t    *frameHeader,
604*4e1bc9a0SAchim Leubner                    agsaFrameHandle_t     frameHandle
605*4e1bc9a0SAchim Leubner                   );
606*4e1bc9a0SAchim Leubner 
607*4e1bc9a0SAchim Leubner osGLOBAL void
608*4e1bc9a0SAchim Leubner dmDiscover2RespRcvd(
609*4e1bc9a0SAchim Leubner                    dmRoot_t              *dmRoot,
610*4e1bc9a0SAchim Leubner                    agsaRoot_t            *agRoot,
611*4e1bc9a0SAchim Leubner                    agsaIORequest_t       *agIORequest,
612*4e1bc9a0SAchim Leubner                    dmDeviceData_t        *oneDeviceData,
613*4e1bc9a0SAchim Leubner                    dmSMPFrameHeader_t    *frameHeader,
614*4e1bc9a0SAchim Leubner                    agsaFrameHandle_t     frameHandle
615*4e1bc9a0SAchim Leubner                   );
616*4e1bc9a0SAchim Leubner 
617*4e1bc9a0SAchim Leubner #ifdef NOT_YET
618*4e1bc9a0SAchim Leubner osGLOBAL void
619*4e1bc9a0SAchim Leubner dmDiscoverList2Send(
620*4e1bc9a0SAchim Leubner                     dmRoot_t             *dmRoot,
621*4e1bc9a0SAchim Leubner                     dmDeviceData_t       *oneDeviceData
622*4e1bc9a0SAchim Leubner                    );
623*4e1bc9a0SAchim Leubner 
624*4e1bc9a0SAchim Leubner osGLOBAL void
625*4e1bc9a0SAchim Leubner dmDiscoverList2RespRcvd(
626*4e1bc9a0SAchim Leubner                         dmRoot_t              *dmRoot,
627*4e1bc9a0SAchim Leubner                         agsaRoot_t            *agRoot,
628*4e1bc9a0SAchim Leubner                         dmDeviceData_t        *oneDeviceData,
629*4e1bc9a0SAchim Leubner                         dmSMPFrameHeader_t    *frameHeader,
630*4e1bc9a0SAchim Leubner                         agsaFrameHandle_t     frameHandle
631*4e1bc9a0SAchim Leubner                        );
632*4e1bc9a0SAchim Leubner #endif
633*4e1bc9a0SAchim Leubner 
634*4e1bc9a0SAchim Leubner osGLOBAL void
635*4e1bc9a0SAchim Leubner dmReportPhySataSend(
636*4e1bc9a0SAchim Leubner                     dmRoot_t             *dmRoot,
637*4e1bc9a0SAchim Leubner                     dmDeviceData_t       *oneDeviceData,
638*4e1bc9a0SAchim Leubner                     bit8                 phyId
639*4e1bc9a0SAchim Leubner                     );
640*4e1bc9a0SAchim Leubner 
641*4e1bc9a0SAchim Leubner osGLOBAL void
642*4e1bc9a0SAchim Leubner dmReportPhySataRcvd(
643*4e1bc9a0SAchim Leubner                     dmRoot_t              *dmRoot,
644*4e1bc9a0SAchim Leubner                     agsaRoot_t            *agRoot,
645*4e1bc9a0SAchim Leubner                     agsaIORequest_t       *agIORequest,
646*4e1bc9a0SAchim Leubner                     dmDeviceData_t        *oneDeviceData,
647*4e1bc9a0SAchim Leubner                     dmSMPFrameHeader_t    *frameHeader,
648*4e1bc9a0SAchim Leubner                     agsaFrameHandle_t     frameHandle
649*4e1bc9a0SAchim Leubner                    );
650*4e1bc9a0SAchim Leubner 
651*4e1bc9a0SAchim Leubner osGLOBAL void
652*4e1bc9a0SAchim Leubner dmReportPhySata2Rcvd(
653*4e1bc9a0SAchim Leubner                     dmRoot_t              *dmRoot,
654*4e1bc9a0SAchim Leubner                     agsaRoot_t            *agRoot,
655*4e1bc9a0SAchim Leubner                     agsaIORequest_t       *agIORequest,
656*4e1bc9a0SAchim Leubner                     dmDeviceData_t        *oneDeviceData,
657*4e1bc9a0SAchim Leubner                     dmSMPFrameHeader_t    *frameHeader,
658*4e1bc9a0SAchim Leubner                     agsaFrameHandle_t     frameHandle
659*4e1bc9a0SAchim Leubner                    );
660*4e1bc9a0SAchim Leubner 
661*4e1bc9a0SAchim Leubner osGLOBAL bit32
662*4e1bc9a0SAchim Leubner dmRoutingEntryAdd(
663*4e1bc9a0SAchim Leubner                   dmRoot_t          *dmRoot,
664*4e1bc9a0SAchim Leubner                   dmExpander_t      *oneExpander,
665*4e1bc9a0SAchim Leubner                   bit32             phyId,
666*4e1bc9a0SAchim Leubner                   bit32             configSASAddressHi,
667*4e1bc9a0SAchim Leubner                   bit32             configSASAddressLo
668*4e1bc9a0SAchim Leubner                  );
669*4e1bc9a0SAchim Leubner 
670*4e1bc9a0SAchim Leubner osGLOBAL void
671*4e1bc9a0SAchim Leubner dmConfigRoutingInfoRespRcvd(
672*4e1bc9a0SAchim Leubner                             dmRoot_t              *dmRoot,
673*4e1bc9a0SAchim Leubner                             agsaRoot_t            *agRoot,
674*4e1bc9a0SAchim Leubner                             agsaIORequest_t       *agIORequest,
675*4e1bc9a0SAchim Leubner                             dmDeviceData_t        *oneDeviceData,
676*4e1bc9a0SAchim Leubner                             dmSMPFrameHeader_t    *frameHeader,
677*4e1bc9a0SAchim Leubner                             agsaFrameHandle_t     frameHandle
678*4e1bc9a0SAchim Leubner                            );
679*4e1bc9a0SAchim Leubner 
680*4e1bc9a0SAchim Leubner osGLOBAL void
681*4e1bc9a0SAchim Leubner dmConfigRoutingInfo2RespRcvd(
682*4e1bc9a0SAchim Leubner                             dmRoot_t              *dmRoot,
683*4e1bc9a0SAchim Leubner                             agsaRoot_t            *agRoot,
684*4e1bc9a0SAchim Leubner                             agsaIORequest_t       *agIORequest,
685*4e1bc9a0SAchim Leubner                             dmDeviceData_t        *oneDeviceData,
686*4e1bc9a0SAchim Leubner                             dmSMPFrameHeader_t    *frameHeader,
687*4e1bc9a0SAchim Leubner                             agsaFrameHandle_t     frameHandle
688*4e1bc9a0SAchim Leubner                            );
689*4e1bc9a0SAchim Leubner 
690*4e1bc9a0SAchim Leubner osGLOBAL bit32
691*4e1bc9a0SAchim Leubner dmPhyControlSend(
692*4e1bc9a0SAchim Leubner                  dmRoot_t             *dmRoot,
693*4e1bc9a0SAchim Leubner                  dmDeviceData_t       *oneDeviceData,
694*4e1bc9a0SAchim Leubner                  bit8                 phyOp,
695*4e1bc9a0SAchim Leubner                  bit8                 phyID
696*4e1bc9a0SAchim Leubner                  );
697*4e1bc9a0SAchim Leubner 
698*4e1bc9a0SAchim Leubner osGLOBAL void
699*4e1bc9a0SAchim Leubner dmPhyControlRespRcvd(
700*4e1bc9a0SAchim Leubner                      dmRoot_t              *dmRoot,
701*4e1bc9a0SAchim Leubner                      agsaRoot_t            *agRoot,
702*4e1bc9a0SAchim Leubner                      agsaIORequest_t       *agIORequest,
703*4e1bc9a0SAchim Leubner                      dmDeviceData_t        *oneDeviceData,
704*4e1bc9a0SAchim Leubner                      dmSMPFrameHeader_t    *frameHeader,
705*4e1bc9a0SAchim Leubner                      agsaFrameHandle_t     frameHandle
706*4e1bc9a0SAchim Leubner                     );
707*4e1bc9a0SAchim Leubner 
708*4e1bc9a0SAchim Leubner osGLOBAL void
709*4e1bc9a0SAchim Leubner dmPhyControl2RespRcvd(
710*4e1bc9a0SAchim Leubner                      dmRoot_t              *dmRoot,
711*4e1bc9a0SAchim Leubner                      agsaRoot_t            *agRoot,
712*4e1bc9a0SAchim Leubner                      agsaIORequest_t       *agIORequest,
713*4e1bc9a0SAchim Leubner                      dmDeviceData_t        *oneDeviceData,
714*4e1bc9a0SAchim Leubner                      dmSMPFrameHeader_t    *frameHeader,
715*4e1bc9a0SAchim Leubner                      agsaFrameHandle_t     frameHandle
716*4e1bc9a0SAchim Leubner                     );
717*4e1bc9a0SAchim Leubner 
718*4e1bc9a0SAchim Leubner osGLOBAL void
719*4e1bc9a0SAchim Leubner dmPhyControlFailureRespRcvd(
720*4e1bc9a0SAchim Leubner                             dmRoot_t              *dmRoot,
721*4e1bc9a0SAchim Leubner                             agsaRoot_t            *agRoot,
722*4e1bc9a0SAchim Leubner                             dmDeviceData_t        *oneDeviceData,
723*4e1bc9a0SAchim Leubner                             dmSMPFrameHeader_t    *frameHeader,
724*4e1bc9a0SAchim Leubner                             agsaFrameHandle_t     frameHandle
725*4e1bc9a0SAchim Leubner                            );
726*4e1bc9a0SAchim Leubner 
727*4e1bc9a0SAchim Leubner osGLOBAL void
728*4e1bc9a0SAchim Leubner dmHandleZoneViolation(
729*4e1bc9a0SAchim Leubner                       dmRoot_t              *dmRoot,
730*4e1bc9a0SAchim Leubner                       agsaRoot_t            *agRoot,
731*4e1bc9a0SAchim Leubner                       agsaIORequest_t       *agIORequest,
732*4e1bc9a0SAchim Leubner                       dmDeviceData_t        *oneDeviceData,
733*4e1bc9a0SAchim Leubner                       dmSMPFrameHeader_t    *frameHeader,
734*4e1bc9a0SAchim Leubner                       agsaFrameHandle_t     frameHandle
735*4e1bc9a0SAchim Leubner                      );
736*4e1bc9a0SAchim Leubner 
737*4e1bc9a0SAchim Leubner osGLOBAL void
738*4e1bc9a0SAchim Leubner dmSMPCompleted(
739*4e1bc9a0SAchim Leubner                agsaRoot_t            *agRoot,
740*4e1bc9a0SAchim Leubner                agsaIORequest_t       *agIORequest,
741*4e1bc9a0SAchim Leubner                bit32                 agIOStatus,
742*4e1bc9a0SAchim Leubner                bit32                 agIOInfoLen,
743*4e1bc9a0SAchim Leubner                agsaFrameHandle_t     agFrameHandle
744*4e1bc9a0SAchim Leubner               );
745*4e1bc9a0SAchim Leubner 
746*4e1bc9a0SAchim Leubner osGLOBAL void
747*4e1bc9a0SAchim Leubner dmSMPAbortCB(
748*4e1bc9a0SAchim Leubner              agsaRoot_t           *agRoot,
749*4e1bc9a0SAchim Leubner              agsaIORequest_t      *agIORequest,
750*4e1bc9a0SAchim Leubner              bit32                flag,
751*4e1bc9a0SAchim Leubner              bit32                status
752*4e1bc9a0SAchim Leubner              );
753*4e1bc9a0SAchim Leubner 
754*4e1bc9a0SAchim Leubner osGLOBAL void
755*4e1bc9a0SAchim Leubner dmBCTimer(
756*4e1bc9a0SAchim Leubner           dmRoot_t                 *dmRoot,
757*4e1bc9a0SAchim Leubner           dmIntPortContext_t       *onePortContext
758*4e1bc9a0SAchim Leubner          );
759*4e1bc9a0SAchim Leubner 
760*4e1bc9a0SAchim Leubner osGLOBAL void
761*4e1bc9a0SAchim Leubner dmBCTimerCB(
762*4e1bc9a0SAchim Leubner               dmRoot_t    * dmRoot_t,
763*4e1bc9a0SAchim Leubner               void        * timerData1,
764*4e1bc9a0SAchim Leubner               void        * timerData2,
765*4e1bc9a0SAchim Leubner               void        * timerData3
766*4e1bc9a0SAchim Leubner               );
767*4e1bc9a0SAchim Leubner 
768*4e1bc9a0SAchim Leubner /*********************************** SMP-related *******************************************************/
769*4e1bc9a0SAchim Leubner osGLOBAL void
770*4e1bc9a0SAchim Leubner dmDiscoverySMPTimer(dmRoot_t                 *dmRoot,
771*4e1bc9a0SAchim Leubner                     dmIntPortContext_t       *onePortContext,
772*4e1bc9a0SAchim Leubner                     bit32                    functionCode,
773*4e1bc9a0SAchim Leubner                     dmSMPRequestBody_t       *dmSMPRequestBody
774*4e1bc9a0SAchim Leubner                    );
775*4e1bc9a0SAchim Leubner 
776*4e1bc9a0SAchim Leubner osGLOBAL void
777*4e1bc9a0SAchim Leubner dmDiscoverySMPTimerCB(
778*4e1bc9a0SAchim Leubner                       dmRoot_t    * dmRoot,
779*4e1bc9a0SAchim Leubner                       void        * timerData1,
780*4e1bc9a0SAchim Leubner                       void        * timerData2,
781*4e1bc9a0SAchim Leubner                       void        * timerData3
782*4e1bc9a0SAchim Leubner                      );
783*4e1bc9a0SAchim Leubner 
784*4e1bc9a0SAchim Leubner osGLOBAL void
785*4e1bc9a0SAchim Leubner dmDiscoveryConfiguringTimer(dmRoot_t                 *dmRoot,
786*4e1bc9a0SAchim Leubner                             dmIntPortContext_t       *onePortContext,
787*4e1bc9a0SAchim Leubner                             dmDeviceData_t           *oneDeviceData
788*4e1bc9a0SAchim Leubner                            );
789*4e1bc9a0SAchim Leubner 
790*4e1bc9a0SAchim Leubner 
791*4e1bc9a0SAchim Leubner osGLOBAL void
792*4e1bc9a0SAchim Leubner dmDiscoveryConfiguringTimerCB(
793*4e1bc9a0SAchim Leubner                               dmRoot_t    * dmRoot,
794*4e1bc9a0SAchim Leubner                               void        * timerData1,
795*4e1bc9a0SAchim Leubner                               void        * timerData2,
796*4e1bc9a0SAchim Leubner                               void        * timerData3
797*4e1bc9a0SAchim Leubner                              );
798*4e1bc9a0SAchim Leubner 
799*4e1bc9a0SAchim Leubner osGLOBAL void
800*4e1bc9a0SAchim Leubner dmSMPBusyTimer(dmRoot_t             *dmRoot,
801*4e1bc9a0SAchim Leubner                dmIntPortContext_t   *onePortContext,
802*4e1bc9a0SAchim Leubner                dmDeviceData_t       *oneDeviceData,
803*4e1bc9a0SAchim Leubner                dmSMPRequestBody_t   *dmSMPRequestBody
804*4e1bc9a0SAchim Leubner               );
805*4e1bc9a0SAchim Leubner 
806*4e1bc9a0SAchim Leubner osGLOBAL void
807*4e1bc9a0SAchim Leubner dmSMPBusyTimerCB(
808*4e1bc9a0SAchim Leubner                  dmRoot_t    * dmRoot,
809*4e1bc9a0SAchim Leubner                  void        * timerData1,
810*4e1bc9a0SAchim Leubner                  void        * timerData2,
811*4e1bc9a0SAchim Leubner                  void        * timerData3
812*4e1bc9a0SAchim Leubner                 );
813*4e1bc9a0SAchim Leubner 
814*4e1bc9a0SAchim Leubner osGLOBAL void
815*4e1bc9a0SAchim Leubner dmConfigureRouteTimer(dmRoot_t                 *dmRoot,
816*4e1bc9a0SAchim Leubner                       dmIntPortContext_t       *onePortContext,
817*4e1bc9a0SAchim Leubner                       dmExpander_t             *oneExpander,
818*4e1bc9a0SAchim Leubner                       smpRespDiscover_t        *pdmSMPDiscoverResp,
819*4e1bc9a0SAchim Leubner                       smpRespDiscover2_t       *pdmSMPDiscover2Resp
820*4e1bc9a0SAchim Leubner                      );
821*4e1bc9a0SAchim Leubner 
822*4e1bc9a0SAchim Leubner osGLOBAL void
823*4e1bc9a0SAchim Leubner dmConfigureRouteTimerCB(
824*4e1bc9a0SAchim Leubner                         dmRoot_t    * dmRoot,
825*4e1bc9a0SAchim Leubner                         void        * timerData1,
826*4e1bc9a0SAchim Leubner                         void        * timerData2,
827*4e1bc9a0SAchim Leubner                         void        * timerData3
828*4e1bc9a0SAchim Leubner                        );
829*4e1bc9a0SAchim Leubner 
830*4e1bc9a0SAchim Leubner #endif                          /* __DMPROTO_H__ */
831*4e1bc9a0SAchim Leubner 
832*4e1bc9a0SAchim Leubner 
833