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);
+            }
         }
     }