openpower: Add CreatePELWithFFDCFiles method

This method will create a PEL and a corresponding OpenBMC event log.

It is similar to the CreateWithFFDCFiles method on the
xyz.openbmc_project.Logging.Create interface, except it returns the two
IDs that represent the created PEL and OpenBMC event log:

1. The OpenBMC event log ID
2. The PEL log ID

The event log creator may need one of these fields, for example to save
one of the IDs in a guard record related to the event log.

Change-Id: Iaab7042ebf8e922fae4aab46299b81f5e4f86caa
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/org/open_power/Logging/PEL.interface.yaml b/org/open_power/Logging/PEL.interface.yaml
index fd3be1c..c27934b 100644
--- a/org/open_power/Logging/PEL.interface.yaml
+++ b/org/open_power/Logging/PEL.interface.yaml
@@ -60,6 +60,60 @@
     errors:
        - xyz.openbmc_project.Common.Error.InvalidArgument
 
+  - name: CreatePELWithFFDCFiles
+    description: >
+      Creates an OpenBMC event log and a corresponding PEL. This method
+      returns the IDs of the created PEL and OpenBMC event log, unlike the
+      'xyz.openbmc_project.Logging.Create.CreateWithFFDCFiles' method which
+      doesn't return anything.
+    parameters:
+      - name: Message
+        type: string
+        description: >
+          The Message property of the OpenBMC event log entry.
+          This is also the key into the PEL message registry.
+      - name: Severity
+        type: enum[xyz.openbmc_project.Logging.Entry.Level]
+        description: >
+          The Severity property of the event entry.
+      - name: AdditionalData
+        type: dict[string, string]
+        description: >
+          The AdditionalData property of the event entry.
+          e.g.:
+            {
+              "key1": "value1",
+              "key2": "value2"
+            }
+          ends up in AdditionaData like:
+            ["KEY1=value1", "KEY2=value2"]
+      - name: FFDC
+        type: array[struct[enum[xyz.openbmc_project.Logging.Create.FFDCFormat], byte, byte, unixfd]]
+        description: >
+          File descriptors for any files containing FFDC, along with metadata
+          about the contents:
+
+            FFDCFormat- The format type of the contained data.
+            subType - The format subtype, used for the 'Custom' type.
+            version - The version of the data format, used for the 'Custom'
+                      type.
+            unixfd - The file descriptor to the data file.
+
+          e.g.:
+          [
+            {"xyz.openbmc_project.Logging.Create.FFDCFormat.JSON", 0, 0, 5},
+            {"xyz.openbmc_project.Logging.Create.FFDCFormat.Custom", 1, 2, 6}
+          ]
+    returns:
+      - name: IDs
+        type: struct[uint32, uint32]
+        description: >
+          The IDs of the 2 created logs:
+            - OpenBMC event log ID
+            - PEL log ID: The unique ID of the PEL
+          Note that the PEL's platform log ID (PLID) field is always
+          equal to the PEL log ID for BMC created PELs.
+
 enumerations:
   - name: RejectionReason
     description: >