Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 29 additions & 27 deletions chi/xact/chi_joint.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,14 @@ namespace CHI {
class JointDeniedRequestEvent : public JointDenialEventBase<config>,
public Gravity::Event<JointDeniedRequestEvent<config>> {
protected:
FiredRequestFlit<config>& firedRequestFlit;
const FiredRequestFlit<config>& firedRequestFlit;

public:
JointDeniedRequestEvent(Joint<config>& joint,
std::shared_ptr<Xaction<config>> xaction,
XactDenialEnum denial,
JointDenialSource source,
FiredRequestFlit<config>& firedRequestFlit) noexcept;
const FiredRequestFlit<config>& firedRequestFlit) noexcept;

public:
FiredRequestFlit<config>& GetFiredFlit() noexcept;
Expand All @@ -85,14 +85,14 @@ namespace CHI {
class JointDeniedResponseEvent : public JointDenialEventBase<config>,
public Gravity::Event<JointDeniedResponseEvent<config>> {
protected:
FiredResponseFlit<config>& firedResponseFlit;
const FiredResponseFlit<config>& firedResponseFlit;

public:
JointDeniedResponseEvent(Joint<config>& joint,
std::shared_ptr<Xaction<config>> xaction,
XactDenialEnum denial,
JointDenialSource source,
FiredResponseFlit<config>& firedResponseFlit) noexcept;
const FiredResponseFlit<config>& firedResponseFlit) noexcept;

public:
FiredResponseFlit<config>& GetFiredFlit() noexcept;
Expand Down Expand Up @@ -222,20 +222,20 @@ namespace CHI {
virtual XactScopeEnum GetActiveScope() const noexcept = 0;

protected:
XactDenialEnum RequestDeniedByJoint(XactDenialEnum denial,
FiredRequestFlit<config>& firedRequestFlit,
std::shared_ptr<Xaction<config>> xaction = nullptr) noexcept;
XactDenialEnum RequestDeniedByJoint(XactDenialEnum denial,
const FiredRequestFlit<config>& firedRequestFlit,
std::shared_ptr<Xaction<config>> xaction = nullptr) noexcept;

XactDenialEnum RequestDeniedByXaction(XactDenialEnum denial,
FiredRequestFlit<config>& firedRequestFlit,
const FiredRequestFlit<config>& firedRequestFlit,
std::shared_ptr<Xaction<config>> xaction = nullptr) noexcept;

XactDenialEnum ResponseDeniedByJoint(XactDenialEnum denial,
FiredResponseFlit<config>& firedResponseFlit,
const FiredResponseFlit<config>& firedResponseFlit,
std::shared_ptr<Xaction<config>> xaction = nullptr) noexcept;

XactDenialEnum ResponseDeniedByXaction(XactDenialEnum denial,
FiredResponseFlit<config>& firedResponseFlit,
const FiredResponseFlit<config>& firedResponseFlit,
std::shared_ptr<Xaction<config>> xaction = nullptr) noexcept;

public:
Expand Down Expand Up @@ -649,11 +649,11 @@ namespace /*CHI::*/Xact {

template<FlitConfigurationConcept config>
inline JointDeniedRequestEvent<config>::JointDeniedRequestEvent(
Joint<config>& joint,
std::shared_ptr<Xaction<config>> xaction,
XactDenialEnum denial,
JointDenialSource source,
FiredRequestFlit<config>& firedRequestFlit
Joint<config>& joint,
std::shared_ptr<Xaction<config>> xaction,
XactDenialEnum denial,
JointDenialSource source,
const FiredRequestFlit<config>& firedRequestFlit
) noexcept
: JointDenialEventBase<config> (joint, xaction, denial, source)
, firedRequestFlit (firedRequestFlit)
Expand All @@ -662,7 +662,7 @@ namespace /*CHI::*/Xact {
template<FlitConfigurationConcept config>
inline FiredRequestFlit<config>& JointDeniedRequestEvent<config>::GetFiredFlit() noexcept
{
return firedRequestFlit;
return const_cast<FiredRequestFlit<config>&>(firedRequestFlit);
}

template<FlitConfigurationConcept config>
Expand All @@ -677,11 +677,11 @@ namespace /*CHI::*/Xact {

template<FlitConfigurationConcept config>
inline JointDeniedResponseEvent<config>::JointDeniedResponseEvent(
Joint<config>& joint,
std::shared_ptr<Xaction<config>> xaction,
XactDenialEnum denial,
JointDenialSource source,
FiredResponseFlit<config>& firedResponseFlit
Joint<config>& joint,
std::shared_ptr<Xaction<config>> xaction,
XactDenialEnum denial,
JointDenialSource source,
const FiredResponseFlit<config>& firedResponseFlit
) noexcept
: JointDenialEventBase<config> (joint, xaction, denial, source)
, firedResponseFlit (firedResponseFlit)
Expand All @@ -690,7 +690,7 @@ namespace /*CHI::*/Xact {
template<FlitConfigurationConcept config>
inline FiredResponseFlit<config>& JointDeniedResponseEvent<config>::GetFiredFlit() noexcept
{
return firedResponseFlit;
return const_cast<FiredResponseFlit<config>&>(firedResponseFlit);
}

template<FlitConfigurationConcept config>
Expand Down Expand Up @@ -861,7 +861,9 @@ namespace /*CHI::*/Xact {

template<FlitConfigurationConcept config>
inline Joint<config>::Joint() noexcept
: OnAccepted (0)
: OnDeniedRequest (0)
, OnDeniedResponse (0)
, OnAccepted (0)
, OnRetry (0)
, OnTxnIDAllocation (0)
, OnTxnIDFree (0)
Expand All @@ -885,7 +887,7 @@ namespace /*CHI::*/Xact {
template<FlitConfigurationConcept config>
inline XactDenialEnum Joint<config>::RequestDeniedByJoint(
XactDenialEnum denial,
FiredRequestFlit<config>& firedRequestFlit,
const FiredRequestFlit<config>& firedRequestFlit,
std::shared_ptr<Xaction<config>> xaction) noexcept
{
this->OnDeniedRequest(JointDeniedRequestEvent<config>(
Expand All @@ -896,7 +898,7 @@ namespace /*CHI::*/Xact {
template<FlitConfigurationConcept config>
inline XactDenialEnum Joint<config>::RequestDeniedByXaction(
XactDenialEnum denial,
FiredRequestFlit<config>& firedRequestFlit,
const FiredRequestFlit<config>& firedRequestFlit,
std::shared_ptr<Xaction<config>> xaction) noexcept
{
this->OnDeniedRequest(JointDeniedRequestEvent<config>(
Expand All @@ -907,7 +909,7 @@ namespace /*CHI::*/Xact {
template<FlitConfigurationConcept config>
inline XactDenialEnum Joint<config>::ResponseDeniedByJoint(
XactDenialEnum denial,
FiredResponseFlit<config>& firedResponseFlit,
const FiredResponseFlit<config>& firedResponseFlit,
std::shared_ptr<Xaction<config>> xaction) noexcept
{
this->OnDeniedResponse(JointDeniedResponseEvent<config>(
Expand All @@ -918,7 +920,7 @@ namespace /*CHI::*/Xact {
template<FlitConfigurationConcept config>
inline XactDenialEnum Joint<config>::ResponseDeniedByXaction(
XactDenialEnum denial,
FiredResponseFlit<config>& firedResponseFlit,
const FiredResponseFlit<config>& firedResponseFlit,
std::shared_ptr<Xaction<config>> xaction) noexcept
{
this->OnDeniedResponse(JointDeniedResponseEvent<config>(
Expand Down
2 changes: 1 addition & 1 deletion chi/xact/chi_xact_flit.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ namespace /*CHI::*/Xact {
{
if (glbl.SAM_SCOPE.enable)
{
switch (glbl.SAM_SCOPE.Get(flit.req.SrcID()).value)
switch (glbl.SAM_SCOPE.Get(flit.req.SrcID())->value)
{
case SAMScope::AfterSAM:
return glbl.TOPOLOGY.IsHome(flit.req.TgtID());
Expand Down
16 changes: 8 additions & 8 deletions chi/xact/chi_xactions/chi_xactions_base.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -819,7 +819,7 @@ namespace /*CHI::*/Xact {
if (iter->GetChannelType() != channel)
continue;

if (!iter->IsFrom(glbl, scope))
if (!subsequence[index].IsFrom(glbl, scope))
continue;

return &(subsequence[index]);
Expand All @@ -840,7 +840,7 @@ namespace /*CHI::*/Xact {
if (iter->GetChannelType() != channel)
continue;

if (!iter->IsFrom(glbl, scope))
if (!subsequence[index].IsFrom(glbl, scope))
continue;

return &(subsequence[index]);
Expand Down Expand Up @@ -882,7 +882,7 @@ namespace /*CHI::*/Xact {
if (iter->IsDenied())
continue;

if (!iter->IsFrom(glbl, scope))
if (!subsequence[index].IsFrom(glbl, scope))
continue;

if (iter->IsRSP())
Expand Down Expand Up @@ -911,7 +911,7 @@ namespace /*CHI::*/Xact {
if (iter->IsDenied())
continue;

if (!iter->IsFrom(glbl, scope))
if (!subsequence[index].IsFrom(glbl, scope))
continue;

if (iter->IsRSP())
Expand Down Expand Up @@ -967,7 +967,7 @@ namespace /*CHI::*/Xact {
if (iter->GetChannelType() != channel)
continue;

if (!iter->IsTo(glbl, scope))
if (!subsequence[index].IsTo(glbl, scope))
continue;

return &(subsequence[index]);
Expand All @@ -988,7 +988,7 @@ namespace /*CHI::*/Xact {
if (iter->GetChannelType() != channel)
continue;

if (!iter->IsTo(glbl, scope))
if (!subsequence[index].IsTo(glbl, scope))
continue;

return &(subsequence[index]);
Expand Down Expand Up @@ -1030,7 +1030,7 @@ namespace /*CHI::*/Xact {
if (iter->IsDenied())
continue;

if (!iter->IsTo(glbl, scope))
if (!subsequence[index].IsTo(glbl, scope))
continue;

if (iter->IsRSP())
Expand Down Expand Up @@ -1059,7 +1059,7 @@ namespace /*CHI::*/Xact {
if (iter->IsDenied())
continue;

if (!iter->IsTo(glbl, scope))
if (!subsequence[index].IsTo(glbl, scope))
continue;

if (iter->IsRSP())
Expand Down
12 changes: 12 additions & 0 deletions chi/xact/chi_xactions/chi_xactions_impl_AllocatingRead.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,18 @@ namespace /*CHI::*/Xact {
return nullptr;
}

template<FlitConfigurationConcept config>
inline const FiredResponseFlit<config>* XactionAllocatingRead<config>::GetDWTSrcIDSource(const Global<config>& glbl) const noexcept
{
return nullptr;
}

template<FlitConfigurationConcept config>
inline const FiredResponseFlit<config>* XactionAllocatingRead<config>::GetDWTTgtIDSource(const Global<config>& glbl) const noexcept
{
return nullptr;
}

template<FlitConfigurationConcept config>
inline const FiredResponseFlit<config>* XactionAllocatingRead<config>::GetPrimaryTgtIDSourceNonREQ(const Global<config>& glbl) const noexcept
{
Expand Down
Loading