diff --git a/analyzer/service_data.hpp b/analyzer/service_data.hpp
index 3664550..ce9993e 100644
--- a/analyzer/service_data.hpp
+++ b/analyzer/service_data.hpp
@@ -45,6 +45,10 @@
     /** The list of callouts that will be added to a PEL. */
     nlohmann::json iv_calloutList = nlohmann::json::array();
 
+    /** FFDC for callouts that would otherwise not be available in the
+     *  callout list (unit paths, bus types, etc.). */
+    nlohmann::json iv_calloutFFDC = nlohmann::json::array();
+
     /** The list of hardware guard requests. Some information will be added to
      *  the PEL, but the actual guard record will be created after submitting
      *  the PEL. */
@@ -74,11 +78,22 @@
     }
 
     /**
+     * @brief Add FFDC for a callout that would otherwise not be available in
+     *        the callout list (unit paths, bus types, etc.).
+     * @param The JSON object for this callout.
+     */
+    void addCalloutFFDC(const nlohmann::json& i_ffdc)
+    {
+        iv_calloutFFDC.push_back(i_ffdc);
+    }
+
+    /**
      * @brief  Add a guard request to the guard list.
      * @param  i_path  Entity path for the target part.
      * @param  i_guard True, if the part should be guarded. False, otherwise.
+     * @return A reference to the object just added to the guard list.
      */
-    void addGuard(const std::string& i_path, bool i_guard)
+    const Guard& addGuard(const std::string& i_path, bool i_guard)
     {
         Guard::Type guardType = Guard::Type::NONE;
         if (i_guard)
@@ -89,7 +104,7 @@
                 queryCheckstop() ? Guard::Type::FATAL : Guard::Type::NON_FATAL;
         }
 
-        iv_guardList.emplace_back(i_path, guardType);
+        return iv_guardList.emplace_back(i_path, guardType);
     }
 
     /** @brief Accessor to iv_calloutList. */
@@ -98,6 +113,12 @@
         return iv_calloutList;
     }
 
+    /** @brief Accessor to iv_calloutFFDC. */
+    const nlohmann::json& getCalloutFFDC() const
+    {
+        return iv_calloutFFDC;
+    }
+
     /** @brief Accessor to iv_guardList. */
     const std::vector<Guard>& getGuardList() const
     {
