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