FreeBSD kernel pms device code
ttdtxchg.h
Go to the documentation of this file.
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
********************************************************************************/
22
/*******************************************************************************/
34
typedef
struct
sas_resp_s
35
{
36
agsaSSPResponseInfoUnit_t
agResp
;
37
bit8
RespData
[4];
38
bit8
SenseData
[64];
39
}
sas_resp_t
;
40
41
typedef
struct
smp_resp_s
42
{
43
bit8
RespData
[1024];
/* SAS Spec */
44
}
smp_resp_t
;
45
46
47
typedef
struct
48
{
49
bit8
*
virtAddr
;
50
bit32
phyAddrUpper
;
51
bit32
phyAddrLower
;
52
bit32
length
;
53
}
ttdsaDmaMemoryArea_t
;
54
55
struct
tdsaDeviceData_s
;
56
57
/* I/O structurre */
58
typedef
struct
ttdsaXchg_s
59
{
60
61
tdIORequestBody_t
IORequestBody
;
/* has to be at the top */
62
tdssSMPRequestBody_t
SMPRequestBody
;
/* has to be at the second top */
63
64
tdList_t
XchgLinks
;
65
/* pointer to device(initiator) for which the I/O was initiated */
66
struct
tdsaDeviceData_s
*
DeviceData
;
67
struct
ttdsaXchg_s
*
pTMResp
;
68
bit32
oustandingIos
;
69
bit32
isAborting
;
70
bit32
oslayerAborting
;
71
bit32
isTMRequest
;
72
bit32
index
;
/* index of structure */
73
agsaSSPCmdInfoUnit_t
agSSPCmndIU
;
74
agsaSSPScsiTaskMgntReq_t
agTMIU
;
75
/* SSPTargetRead/SSPTargetWrite */
76
bit32
XchType
;
77
bit32
FrameType
;
/* cmnd or TM */
78
agsaRoot_t
*
agRoot
;
79
tiRoot_t
*
tiRoot
;
80
/* indicates that at the completion of this data phase, this
81
exchange structure will be freed */
82
bit32
statusSent
;
83
bit32
responseSent
;
84
bit32
readRspCollapsed
: 1;
85
bit32
wrtRspCollapsed
: 1;
86
bit32
readWrtCollapsedRes
: 30;
87
tiTargetScsiCmnd_t
tiTgtScsiCmnd
;
88
89
/* initiator tag a target received */
90
bit16
tag
;
91
bit64
dataLen
;
92
bit32
respLen
;
93
bit32
smprespLen
;
94
ttdsaDmaMemoryArea_t
resp
;
/* sas response */
95
ttdsaDmaMemoryArea_t
smpresp
;
/* sas smp response */
96
bit32
usedEsgl
;
97
/* for abort task io which is not founded in TD */
98
bit32
io_found
;
99
/* for debugging only */
100
bit32
id
;
101
/* PhyId for SMP*/
102
bit32
SMPphyId
;
103
bit32
state
;
104
bit32
TLR
;
/* Transport Layer Retransmit bits */
105
bit32
retries
;
/* retries */
106
tiIORequest_t
*
tiIOToBeAbortedRequest
;
/* IO to be aborted */
107
struct
ttdsaXchg_s
*
XchgToBeAborted
;
/* Xchg to be aborted */
108
}
ttdsaXchg_t
;
109
110
/*************************************************************************
111
** now ttdssIOData_t and old tgtXchgData_t -
112
**************************************************************************/
113
114
typedef
struct
ttdsaXchgData_s
115
{
116
bit32
maxNumXchgs
;
117
tdList_t
xchgFreeList
;
118
tdList_t
xchgBusyList
;
119
bit32
noUsed
;
120
bit32
noFreed
;
121
bit32
noCmdRcvd
;
122
bit32
noStartIo
;
123
bit32
noSendRsp
;
124
bit32
noCompleted
;
125
}
ttdsaXchgData_t
;
126
127
bit16
unsigned short bit16
Definition:
ostypes.h:98
bit64
unsigned long long bit64
Definition:
ostypes.h:104
bit32
unsigned int bit32
Definition:
ostypes.h:99
bit8
unsigned char bit8
Definition:
ostypes.h:97
agsaContext_s
data structure stores OS specific and LL specific context
Definition:
sa.h:1658
agsaSSPCmdInfoUnit_s
data structure describes an SSP Command INFORMATION UNIT
Definition:
sa_spec.h:793
agsaSSPResponseInfoUnit_s
structure describes an SSP Response INFORMATION UNIT
Definition:
sa_spec.h:818
agsaSSPScsiTaskMgntReq_s
structure describes a SAS SSP Task Management command request
Definition:
sa_spec.h:898
sas_resp_s
Definition:
ttdtxchg.h:35
sas_resp_s::SenseData
bit8 SenseData[64]
Definition:
ttdtxchg.h:38
sas_resp_s::agResp
agsaSSPResponseInfoUnit_t agResp
Definition:
ttdtxchg.h:36
sas_resp_s::RespData
bit8 RespData[4]
Definition:
ttdtxchg.h:37
smp_resp_s
Definition:
ttdtxchg.h:42
smp_resp_s::RespData
bit8 RespData[1024]
Definition:
ttdtxchg.h:43
tdIORequestBody_s
data structure for SAS SSP IO reuqest body This structure contains IO related fields....
Definition:
tdtypes.h:587
tdList_s
Definition:
tdlist.h:37
tdsaDeviceData_s
data structure for SAS device list This structure maintains the device as a list and information abou...
Definition:
tdtypes.h:322
tdssSMPRequestBody_s
data structure for SAS SMP reuqest body This structure contains IO related fields....
Definition:
tdtypes.h:668
tiIORequest
Definition:
titypes.h:116
tiRoot
Definition:
titypes.h:61
tiTargetScsiCmnd_t
Definition:
titypes.h:473
ttdsaDmaMemoryArea_t
Definition:
ttdtxchg.h:48
ttdsaDmaMemoryArea_t::phyAddrLower
bit32 phyAddrLower
Definition:
ttdtxchg.h:51
ttdsaDmaMemoryArea_t::length
bit32 length
Definition:
ttdtxchg.h:52
ttdsaDmaMemoryArea_t::virtAddr
bit8 * virtAddr
Definition:
ttdtxchg.h:49
ttdsaDmaMemoryArea_t::phyAddrUpper
bit32 phyAddrUpper
Definition:
ttdtxchg.h:50
ttdsaXchgData_s
Definition:
ttdtxchg.h:115
ttdsaXchgData_s::noSendRsp
bit32 noSendRsp
Definition:
ttdtxchg.h:123
ttdsaXchgData_s::maxNumXchgs
bit32 maxNumXchgs
Definition:
ttdtxchg.h:116
ttdsaXchgData_s::noUsed
bit32 noUsed
Definition:
ttdtxchg.h:119
ttdsaXchgData_s::noFreed
bit32 noFreed
Definition:
ttdtxchg.h:120
ttdsaXchgData_s::xchgBusyList
tdList_t xchgBusyList
Definition:
ttdtxchg.h:118
ttdsaXchgData_s::noCompleted
bit32 noCompleted
Definition:
ttdtxchg.h:124
ttdsaXchgData_s::noStartIo
bit32 noStartIo
Definition:
ttdtxchg.h:122
ttdsaXchgData_s::noCmdRcvd
bit32 noCmdRcvd
Definition:
ttdtxchg.h:121
ttdsaXchgData_s::xchgFreeList
tdList_t xchgFreeList
Definition:
ttdtxchg.h:117
ttdsaXchg_s
Definition:
ttdtxchg.h:59
ttdsaXchg_s::state
bit32 state
Definition:
ttdtxchg.h:103
ttdsaXchg_s::oslayerAborting
bit32 oslayerAborting
Definition:
ttdtxchg.h:70
ttdsaXchg_s::IORequestBody
tdIORequestBody_t IORequestBody
Definition:
ttdtxchg.h:61
ttdsaXchg_s::tiTgtScsiCmnd
tiTargetScsiCmnd_t tiTgtScsiCmnd
Definition:
ttdtxchg.h:87
ttdsaXchg_s::tiIOToBeAbortedRequest
tiIORequest_t * tiIOToBeAbortedRequest
Definition:
ttdtxchg.h:106
ttdsaXchg_s::SMPphyId
bit32 SMPphyId
Definition:
ttdtxchg.h:102
ttdsaXchg_s::smprespLen
bit32 smprespLen
Definition:
ttdtxchg.h:93
ttdsaXchg_s::XchgLinks
tdList_t XchgLinks
Definition:
ttdtxchg.h:64
ttdsaXchg_s::dataLen
bit64 dataLen
Definition:
ttdtxchg.h:91
ttdsaXchg_s::index
bit32 index
Definition:
ttdtxchg.h:72
ttdsaXchg_s::FrameType
bit32 FrameType
Definition:
ttdtxchg.h:77
ttdsaXchg_s::tag
bit16 tag
Definition:
ttdtxchg.h:90
ttdsaXchg_s::isTMRequest
bit32 isTMRequest
Definition:
ttdtxchg.h:71
ttdsaXchg_s::retries
bit32 retries
Definition:
ttdtxchg.h:105
ttdsaXchg_s::responseSent
bit32 responseSent
Definition:
ttdtxchg.h:83
ttdsaXchg_s::usedEsgl
bit32 usedEsgl
Definition:
ttdtxchg.h:96
ttdsaXchg_s::io_found
bit32 io_found
Definition:
ttdtxchg.h:98
ttdsaXchg_s::readWrtCollapsedRes
bit32 readWrtCollapsedRes
Definition:
ttdtxchg.h:86
ttdsaXchg_s::tiRoot
tiRoot_t * tiRoot
Definition:
ttdtxchg.h:79
ttdsaXchg_s::wrtRspCollapsed
bit32 wrtRspCollapsed
Definition:
ttdtxchg.h:85
ttdsaXchg_s::pTMResp
struct ttdsaXchg_s * pTMResp
Definition:
ttdtxchg.h:67
ttdsaXchg_s::smpresp
ttdsaDmaMemoryArea_t smpresp
Definition:
ttdtxchg.h:95
ttdsaXchg_s::isAborting
bit32 isAborting
Definition:
ttdtxchg.h:69
ttdsaXchg_s::agSSPCmndIU
agsaSSPCmdInfoUnit_t agSSPCmndIU
Definition:
ttdtxchg.h:73
ttdsaXchg_s::agTMIU
agsaSSPScsiTaskMgntReq_t agTMIU
Definition:
ttdtxchg.h:74
ttdsaXchg_s::TLR
bit32 TLR
Definition:
ttdtxchg.h:104
ttdsaXchg_s::DeviceData
struct tdsaDeviceData_s * DeviceData
Definition:
ttdtxchg.h:66
ttdsaXchg_s::oustandingIos
bit32 oustandingIos
Definition:
ttdtxchg.h:68
ttdsaXchg_s::statusSent
bit32 statusSent
Definition:
ttdtxchg.h:82
ttdsaXchg_s::SMPRequestBody
tdssSMPRequestBody_t SMPRequestBody
Definition:
ttdtxchg.h:62
ttdsaXchg_s::respLen
bit32 respLen
Definition:
ttdtxchg.h:92
ttdsaXchg_s::id
bit32 id
Definition:
ttdtxchg.h:100
ttdsaXchg_s::readRspCollapsed
bit32 readRspCollapsed
Definition:
ttdtxchg.h:84
ttdsaXchg_s::agRoot
agsaRoot_t * agRoot
Definition:
ttdtxchg.h:78
ttdsaXchg_s::XchType
bit32 XchType
Definition:
ttdtxchg.h:76
ttdsaXchg_s::resp
ttdsaDmaMemoryArea_t resp
Definition:
ttdtxchg.h:94
ttdsaXchg_s::XchgToBeAborted
struct ttdsaXchg_s * XchgToBeAborted
Definition:
ttdtxchg.h:107
ttdsaXchg_t
struct ttdsaXchg_s ttdsaXchg_t
smp_resp_t
struct smp_resp_s smp_resp_t
sas_resp_t
struct sas_resp_s sas_resp_t
ttdsaXchgData_t
struct ttdsaXchgData_s ttdsaXchgData_t
dev
pms
RefTisa
tisa
sassata
sas
tgt
ttdtxchg.h
Generated by
1.9.3