xref: /freebsd/sys/dev/pms/RefTisa/sat/api/smapi.h (revision 2ff63af9b88c7413b7d71715b5532625752a248e)
1*4e1bc9a0SAchim Leubner /*******************************************************************************
2*4e1bc9a0SAchim Leubner *Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved.
3*4e1bc9a0SAchim Leubner *
4*4e1bc9a0SAchim Leubner *Redistribution and use in source and binary forms, with or without modification, are permitted provided
5*4e1bc9a0SAchim Leubner *that the following conditions are met:
6*4e1bc9a0SAchim Leubner *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
7*4e1bc9a0SAchim Leubner *following disclaimer.
8*4e1bc9a0SAchim Leubner *2. Redistributions in binary form must reproduce the above copyright notice,
9*4e1bc9a0SAchim Leubner *this list of conditions and the following disclaimer in the documentation and/or other materials provided
10*4e1bc9a0SAchim Leubner *with the distribution.
11*4e1bc9a0SAchim Leubner *
12*4e1bc9a0SAchim Leubner *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
13*4e1bc9a0SAchim Leubner *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14*4e1bc9a0SAchim Leubner *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15*4e1bc9a0SAchim Leubner *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16*4e1bc9a0SAchim Leubner *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
17*4e1bc9a0SAchim Leubner *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18*4e1bc9a0SAchim Leubner *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
19*4e1bc9a0SAchim Leubner *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
20*4e1bc9a0SAchim Leubner *
21*4e1bc9a0SAchim Leubner *
22*4e1bc9a0SAchim Leubner ********************************************************************************/
23*4e1bc9a0SAchim Leubner /********************************************************************************
24*4e1bc9a0SAchim Leubner *   smapi.h
25*4e1bc9a0SAchim Leubner *
26*4e1bc9a0SAchim Leubner *   Abstract:   This module contains function prototype of the SAT
27*4e1bc9a0SAchim Leubner *               Module (SM) API for initiator.
28*4e1bc9a0SAchim Leubner *******************************************************************************/
29*4e1bc9a0SAchim Leubner 
30*4e1bc9a0SAchim Leubner #ifndef SMAPI_H
31*4e1bc9a0SAchim Leubner #define SMAPI_H
32*4e1bc9a0SAchim Leubner 
33*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/sat/api/sm.h>
34*4e1bc9a0SAchim Leubner #include <dev/pms/RefTisa/sallsdk/api/sa.h>
35*4e1bc9a0SAchim Leubner 
36*4e1bc9a0SAchim Leubner osGLOBAL bit32
37*4e1bc9a0SAchim Leubner smRegisterDevice(
38*4e1bc9a0SAchim Leubner                  smRoot_t                       *smRoot,
39*4e1bc9a0SAchim Leubner                  agsaDevHandle_t                *agDevHandle,
40*4e1bc9a0SAchim Leubner                  smDeviceHandle_t               *smDeviceHandle,
41*4e1bc9a0SAchim Leubner                  agsaDevHandle_t                *agExpDevHandle,
42*4e1bc9a0SAchim Leubner                  bit32                          phyID,
43*4e1bc9a0SAchim Leubner                  bit32                          DeviceType
44*4e1bc9a0SAchim Leubner                 );
45*4e1bc9a0SAchim Leubner 
46*4e1bc9a0SAchim Leubner osGLOBAL bit32
47*4e1bc9a0SAchim Leubner smDeregisterDevice(
48*4e1bc9a0SAchim Leubner                    smRoot_t                     *smRoot,
49*4e1bc9a0SAchim Leubner                    agsaDevHandle_t              *agDevHandle,
50*4e1bc9a0SAchim Leubner                    smDeviceHandle_t             *smDeviceHandle
51*4e1bc9a0SAchim Leubner                   );
52*4e1bc9a0SAchim Leubner 
53*4e1bc9a0SAchim Leubner osGLOBAL void
54*4e1bc9a0SAchim Leubner smGetRequirements(
55*4e1bc9a0SAchim Leubner                   smRoot_t                      *smRoot,
56*4e1bc9a0SAchim Leubner                   smSwConfig_t                  *swConfig,
57*4e1bc9a0SAchim Leubner                   smMemoryRequirement_t         *memoryRequirement,
58*4e1bc9a0SAchim Leubner                   bit32                         *usecsPerTick,
59*4e1bc9a0SAchim Leubner                   bit32                         *maxNumLocks
60*4e1bc9a0SAchim Leubner                  );
61*4e1bc9a0SAchim Leubner 
62*4e1bc9a0SAchim Leubner osGLOBAL bit32
63*4e1bc9a0SAchim Leubner smIDStart(
64*4e1bc9a0SAchim Leubner           smRoot_t                     *smRoot,
65*4e1bc9a0SAchim Leubner           smIORequest_t                *smIORequest,
66*4e1bc9a0SAchim Leubner           smDeviceHandle_t             *smDeviceHandle
67*4e1bc9a0SAchim Leubner          );
68*4e1bc9a0SAchim Leubner 
69*4e1bc9a0SAchim Leubner osGLOBAL bit32
70*4e1bc9a0SAchim Leubner smInitialize(
71*4e1bc9a0SAchim Leubner              smRoot_t                           *smRoot,
72*4e1bc9a0SAchim Leubner              agsaRoot_t                         *agRoot,
73*4e1bc9a0SAchim Leubner              smMemoryRequirement_t              *memoryAllocated,
74*4e1bc9a0SAchim Leubner              smSwConfig_t                       *swConfig,
75*4e1bc9a0SAchim Leubner              bit32                              usecsPerTick
76*4e1bc9a0SAchim Leubner             );
77*4e1bc9a0SAchim Leubner 
78*4e1bc9a0SAchim Leubner osGLOBAL bit32
79*4e1bc9a0SAchim Leubner smIOAbort(
80*4e1bc9a0SAchim Leubner            smRoot_t                     *smRoot,
81*4e1bc9a0SAchim Leubner            smIORequest_t                *tasktag
82*4e1bc9a0SAchim Leubner          );
83*4e1bc9a0SAchim Leubner 
84*4e1bc9a0SAchim Leubner osGLOBAL bit32
85*4e1bc9a0SAchim Leubner smIOAbortAll(
86*4e1bc9a0SAchim Leubner              smRoot_t                     *smRoot,
87*4e1bc9a0SAchim Leubner              smDeviceHandle_t             *smDeviceHandle
88*4e1bc9a0SAchim Leubner             );
89*4e1bc9a0SAchim Leubner 
90*4e1bc9a0SAchim Leubner osGLOBAL FORCEINLINE bit32
91*4e1bc9a0SAchim Leubner smIOStart(
92*4e1bc9a0SAchim Leubner           smRoot_t                      *smRoot,
93*4e1bc9a0SAchim Leubner           smIORequest_t                 *smIORequest,
94*4e1bc9a0SAchim Leubner           smDeviceHandle_t              *smDeviceHandle,
95*4e1bc9a0SAchim Leubner           smScsiInitiatorRequest_t      *smSCSIRequest,
96*4e1bc9a0SAchim Leubner           bit32                         interruptContext
97*4e1bc9a0SAchim Leubner          );
98*4e1bc9a0SAchim Leubner 
99*4e1bc9a0SAchim Leubner osGLOBAL bit32
100*4e1bc9a0SAchim Leubner smSuperIOStart(
101*4e1bc9a0SAchim Leubner                smRoot_t                         *smRoot,
102*4e1bc9a0SAchim Leubner                smIORequest_t                    *smIORequest,
103*4e1bc9a0SAchim Leubner                smDeviceHandle_t                 *smDeviceHandle,
104*4e1bc9a0SAchim Leubner                smSuperScsiInitiatorRequest_t    *smSCSIRequest,
105*4e1bc9a0SAchim Leubner                bit32                            AddrHi,
106*4e1bc9a0SAchim Leubner                bit32                            AddrLo,
107*4e1bc9a0SAchim Leubner                bit32                            interruptContext
108*4e1bc9a0SAchim Leubner               );
109*4e1bc9a0SAchim Leubner 
110*4e1bc9a0SAchim Leubner osGLOBAL bit32
111*4e1bc9a0SAchim Leubner smTaskManagement(
112*4e1bc9a0SAchim Leubner                  smRoot_t                       *smRoot,
113*4e1bc9a0SAchim Leubner                  smDeviceHandle_t               *smDeviceHandle,
114*4e1bc9a0SAchim Leubner                  bit32                          task,
115*4e1bc9a0SAchim Leubner                  smLUN_t                        *lun,
116*4e1bc9a0SAchim Leubner                  smIORequest_t                  *taskTag,
117*4e1bc9a0SAchim Leubner                  smIORequest_t                  *currentTaskTag
118*4e1bc9a0SAchim Leubner                 );
119*4e1bc9a0SAchim Leubner 
120*4e1bc9a0SAchim Leubner #endif  /* SMAPI_H */
121*4e1bc9a0SAchim Leubner 
122