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