xref: /freebsd/sys/dev/pms/RefTisa/discovery/api/dmapi.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 /********************************************************************************
25*4e1bc9a0SAchim Leubner *   dmapi.h
26*4e1bc9a0SAchim Leubner *
27*4e1bc9a0SAchim Leubner *   Abstract:   This module contains function prototype of the Discovery
28*4e1bc9a0SAchim Leubner *               Module (DM) API for initiator.
29*4e1bc9a0SAchim Leubner *******************************************************************************/
30*4e1bc9a0SAchim Leubner 
31*4e1bc9a0SAchim Leubner #ifndef DMAPI_H
32*4e1bc9a0SAchim Leubner #define DMAPI_H
33*4e1bc9a0SAchim Leubner 
34*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/discovery/api/dm.h>
35*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/sallsdk/api/sa.h>
36*4e1bc9a0SAchim Leubner 
37*4e1bc9a0SAchim Leubner osGLOBAL bit32  dmCreatePort(
38*4e1bc9a0SAchim Leubner        dmRoot_t        *dmRoot,
39*4e1bc9a0SAchim Leubner        dmPortContext_t *dmPortContext,
40*4e1bc9a0SAchim Leubner        dmPortInfo_t    *dmPortInfo);
41*4e1bc9a0SAchim Leubner 
42*4e1bc9a0SAchim Leubner osGLOBAL bit32  dmDestroyPort(
43*4e1bc9a0SAchim Leubner        dmRoot_t        *dmRoot,
44*4e1bc9a0SAchim Leubner        dmPortContext_t *dmPortContext,
45*4e1bc9a0SAchim Leubner        dmPortInfo_t    *dmPortInfo);
46*4e1bc9a0SAchim Leubner 
47*4e1bc9a0SAchim Leubner osGLOBAL bit32  dmRegisterDevice(
48*4e1bc9a0SAchim Leubner        dmRoot_t        *dmRoot,
49*4e1bc9a0SAchim Leubner        dmPortContext_t *dmPortContext,
50*4e1bc9a0SAchim Leubner        dmDeviceInfo_t  *dmDeviceInfo,
51*4e1bc9a0SAchim Leubner        agsaDevHandle_t *agDevHandle);
52*4e1bc9a0SAchim Leubner 
53*4e1bc9a0SAchim Leubner osGLOBAL bit32  dmDiscover(
54*4e1bc9a0SAchim Leubner        dmRoot_t        *dmRoot,
55*4e1bc9a0SAchim Leubner        dmPortContext_t *dmPortContext,
56*4e1bc9a0SAchim Leubner        bit32            option);
57*4e1bc9a0SAchim Leubner 
58*4e1bc9a0SAchim Leubner osGLOBAL void dmGetRequirements(
59*4e1bc9a0SAchim Leubner        dmRoot_t              *dmRoot,
60*4e1bc9a0SAchim Leubner        dmSwConfig_t          *swConfig,
61*4e1bc9a0SAchim Leubner        dmMemoryRequirement_t *memoryRequirement,
62*4e1bc9a0SAchim Leubner        bit32                 *usecsPerTick,
63*4e1bc9a0SAchim Leubner        bit32                 *maxNumLocks);
64*4e1bc9a0SAchim Leubner 
65*4e1bc9a0SAchim Leubner osGLOBAL void dmNotifyBC(
66*4e1bc9a0SAchim Leubner        dmRoot_t        *dmRoot,
67*4e1bc9a0SAchim Leubner        dmPortContext_t *dmPortContext,
68*4e1bc9a0SAchim Leubner        bit32            type);
69*4e1bc9a0SAchim Leubner 
70*4e1bc9a0SAchim Leubner osGLOBAL bit32  dmQueryDiscovery(
71*4e1bc9a0SAchim Leubner        dmRoot_t        *dmRoot,
72*4e1bc9a0SAchim Leubner        dmPortContext_t *dmPortContext);
73*4e1bc9a0SAchim Leubner 
74*4e1bc9a0SAchim Leubner osGLOBAL bit32
75*4e1bc9a0SAchim Leubner dmResetFailedDiscovery(
76*4e1bc9a0SAchim Leubner                  dmRoot_t               *dmRoot,
77*4e1bc9a0SAchim Leubner                  dmPortContext_t        *dmPortContext);
78*4e1bc9a0SAchim Leubner 
79*4e1bc9a0SAchim Leubner osGLOBAL bit32  dmInitialize(
80*4e1bc9a0SAchim Leubner        dmRoot_t             *dmRoot,
81*4e1bc9a0SAchim Leubner        agsaRoot_t           *agRoot,
82*4e1bc9a0SAchim Leubner        dmMemoryRequirement_t *memoryAllocated,
83*4e1bc9a0SAchim Leubner        dmSwConfig_t          *swConfig,
84*4e1bc9a0SAchim Leubner        bit32                 usecsPerTick );
85*4e1bc9a0SAchim Leubner 
86*4e1bc9a0SAchim Leubner osGLOBAL void   dmTimerTick ( dmRoot_t  *dmRoot );
87*4e1bc9a0SAchim Leubner 
88*4e1bc9a0SAchim Leubner #endif  /* DMAPI_H */
89