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