pub enum TlpType {
Show 21 variants
MemReadReq,
MemReadLockReq,
MemWriteReq,
IOReadReq,
IOWriteReq,
ConfType0ReadReq,
ConfType0WriteReq,
ConfType1ReadReq,
ConfType1WriteReq,
MsgReq,
MsgReqData,
Cpl,
CplData,
CplLocked,
CplDataLocked,
FetchAddAtomicOpReq,
SwapAtomicOpReq,
CompareSwapAtomicOpReq,
DeferrableMemWriteReq,
LocalTlpPrefix,
EndToEndTlpPrefix,
}Expand description
High-level TLP transaction type decoded from the DW0 Format and Type fields.
Variants§
MemReadReq
32-bit or 64-bit Memory Read Request.
MemReadLockReq
Locked Memory Read Request.
MemWriteReq
32-bit or 64-bit Memory Write Request.
IOReadReq
I/O Read Request.
IOWriteReq
I/O Write Request.
ConfType0ReadReq
Configuration Type 0 Read Request.
ConfType0WriteReq
Configuration Type 0 Write Request.
ConfType1ReadReq
Configuration Type 1 Read Request.
ConfType1WriteReq
Configuration Type 1 Write Request.
MsgReq
Message Request (no data).
MsgReqData
Message Request with data payload.
Cpl
Completion without data.
CplData
Completion with data.
CplLocked
Locked Completion without data.
CplDataLocked
Locked Completion with data.
FetchAddAtomicOpReq
Fetch-and-Add AtomicOp Request.
SwapAtomicOpReq
Unconditional Swap AtomicOp Request.
CompareSwapAtomicOpReq
Compare-and-Swap AtomicOp Request.
DeferrableMemWriteReq
Deferrable Memory Write Request.
LocalTlpPrefix
Local TLP Prefix.
EndToEndTlpPrefix
End-to-End TLP Prefix.
Implementations§
Source§impl TlpType
impl TlpType
Sourcepub fn is_non_posted(&self) -> bool
pub fn is_non_posted(&self) -> bool
Returns true for non-posted TLP types (requests that expect a Completion).
Non-posted transactions include memory reads, I/O, configuration, atomics,
and Deferrable Memory Write. Posted writes (MemWriteReq, messages) return false.
Sourcepub fn is_posted(&self) -> bool
pub fn is_posted(&self) -> bool
Returns true for posted TLP types (no Completion expected).
Convenience inverse of TlpType::is_non_posted.
§Examples
use rtlp_lib::TlpType;
assert!(TlpType::MemWriteReq.is_posted()); // posted write
assert!(TlpType::MsgReq.is_posted()); // message
assert!(!TlpType::MemReadReq.is_posted()); // non-posted