Attn: Default special attention changed to TI
When a special attention occurs the attention handler uses the get TI
info chipop to determine whether to service either a TI or a
breakipoint. If this chipop is not available or is not functional the
attention handler will assume a TI has occurred. With this new behavior
an additional attention handler configuration option was added
(--defaultbreakpoint) which will allow breakpoints to be handled on
systems where the get TI info chipop is not available or not functional.
Signed-off-by: Ben Tyner <ben.tyner@ibm.com>
Change-Id: I1b386b5daf06021acd6567fdad39c21903e2ac3b
diff --git a/attn/attn_handler.cpp b/attn/attn_handler.cpp
index cf4671b..5ca4c69 100644
--- a/attn/attn_handler.cpp
+++ b/attn/attn_handler.cpp
@@ -297,17 +297,36 @@
rc = tiHandler(tiDataArea);
}
}
- // TI area not valid, assume breakpoint
+ // TI area not valid or not available
else
{
- trace<level::INFO>("TI info NOT available, assume breakpoint");
+ trace<level::INFO>("TI info NOT available");
- if (true == (i_attention->getConfig()->getFlag(enBreakpoints)))
+ // if configured to handle breakpoint as default special attention
+ if (i_attention->getConfig()->getFlag(dfltBreakpoint))
{
- trace<level::INFO>("breakpoint");
+ trace<level::INFO>("assuming breakpoint");
- // Call the breakpoint special attention handler
- bpHandler();
+ if (true == (i_attention->getConfig()->getFlag(enBreakpoints)))
+ {
+ trace<level::INFO>("breakpoint");
+
+ // Call the breakpoint special attention handler
+ bpHandler();
+ }
+ }
+ // if configured to handle TI as default special attention
+ else
+ {
+ trace<level::INFO>("assuming TI");
+
+ if (true == (i_attention->getConfig()->getFlag(enTerminate)))
+ {
+ trace<level::INFO>("TI (terminate immediately)");
+
+ // Call TI special attention handler
+ rc = tiHandler(nullptr);
+ }
}
}