]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/dev/pms/RefTisa/sat/api/smapi.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / dev / pms / RefTisa / sat / api / smapi.h
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
37 osGLOBAL bit32
38 smRegisterDevice(
39                  smRoot_t                       *smRoot,
40                  agsaDevHandle_t                *agDevHandle,
41                  smDeviceHandle_t               *smDeviceHandle,
42                  agsaDevHandle_t                *agExpDevHandle,
43                  bit32                          phyID,
44                  bit32                          DeviceType
45                 );
46
47 osGLOBAL bit32
48 smDeregisterDevice(
49                    smRoot_t                     *smRoot,
50                    agsaDevHandle_t              *agDevHandle,
51                    smDeviceHandle_t             *smDeviceHandle
52                   );
53                   
54 osGLOBAL void
55 smGetRequirements(
56                   smRoot_t                      *smRoot,
57                   smSwConfig_t                  *swConfig,
58                   smMemoryRequirement_t         *memoryRequirement,
59                   bit32                         *usecsPerTick,
60                   bit32                         *maxNumLocks
61                  );
62
63 osGLOBAL bit32
64 smIDStart(
65           smRoot_t                     *smRoot,
66           smIORequest_t                *smIORequest,
67           smDeviceHandle_t             *smDeviceHandle
68          );
69
70 osGLOBAL bit32
71 smInitialize(
72              smRoot_t                           *smRoot,
73              agsaRoot_t                         *agRoot,
74              smMemoryRequirement_t              *memoryAllocated,
75              smSwConfig_t                       *swConfig,
76              bit32                              usecsPerTick 
77             );
78
79 osGLOBAL bit32
80 smIOAbort(
81            smRoot_t                     *smRoot,
82            smIORequest_t                *tasktag
83          );
84
85 osGLOBAL bit32
86 smIOAbortAll(
87              smRoot_t                     *smRoot,
88              smDeviceHandle_t             *smDeviceHandle
89             );
90
91 osGLOBAL FORCEINLINE bit32
92 smIOStart(
93           smRoot_t                      *smRoot,
94           smIORequest_t                 *smIORequest,
95           smDeviceHandle_t              *smDeviceHandle,
96           smScsiInitiatorRequest_t      *smSCSIRequest,
97           bit32                         interruptContext
98          );
99
100 osGLOBAL bit32
101 smSuperIOStart(
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          
111 osGLOBAL bit32
112 smTaskManagement(
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