summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf')
-rwxr-xr-xsrc/usr/hwpf/fapi/fapiParseErrorInfo.pl28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/usr/hwpf/fapi/fapiParseErrorInfo.pl b/src/usr/hwpf/fapi/fapiParseErrorInfo.pl
index 996ec414c..4076ff5b0 100755
--- a/src/usr/hwpf/fapi/fapiParseErrorInfo.pl
+++ b/src/usr/hwpf/fapi/fapiParseErrorInfo.pl
@@ -52,6 +52,8 @@
# mjjones 01/09/13 Fix CFAM register capture
# mjjones 03/14/13 Allow 64bit literals for SCOM reg capture
# mjjones 03/22/13 Support Procedure Callouts
+# mjjones 04/25/13 Allow multiple register ffdc ids in a
+# collectRegisterFfdc element
#
# End Change Log ******************************************************
@@ -338,7 +340,8 @@ foreach my $argnum (1 .. $#ARGV)
#--------------------------------------------------------------------------
my $errors = $xml->XMLin($infile, ForceArray =>
['hwpError', 'collectFfdc', 'ffdc', 'callout', 'deconfigure', 'gard',
- 'registerFfdc', 'collectRegisterFfdc', 'cfamRegister', 'scomRegister']);
+ 'registerFfdc', 'collectRegisterFfdc', 'cfamRegister', 'scomRegister',
+ 'id']);
# Uncomment to get debug output of all errors
#print "\nFile: ", $infile, "\n", Dumper($errors), "\n";
@@ -412,9 +415,9 @@ foreach my $argnum (1 .. $#ARGV)
#------------------------------------------------------------------
# Check that expected fields are present
#------------------------------------------------------------------
- if (! exists $collectRegisterFfdc->{id})
+ if (! exists $collectRegisterFfdc->{id}[0])
{
- print ("fapiParseErrorInfo.pl ERROR. id missing from collectRegisterFfdc\n");
+ print ("fapiParseErrorInfo.pl ERROR. id(s) missing from collectRegisterFfdc\n");
exit(1);
}
@@ -424,8 +427,11 @@ foreach my $argnum (1 .. $#ARGV)
exit(1);
}
- print EIFILE "fapiCollectRegFfdc($collectRegisterFfdc->{target}, ";
- print EIFILE "fapi::$collectRegisterFfdc->{id}, RC); ";
+ foreach my $id (@{$collectRegisterFfdc->{id}})
+ {
+ print EIFILE "fapiCollectRegFfdc($collectRegisterFfdc->{target}, ";
+ print EIFILE "fapi::$id, RC); ";
+ }
}
print EIFILE "\n";
@@ -589,21 +595,27 @@ foreach my $argnum (1 .. $#ARGV)
#----------------------------------------------------------------------
# Check that expected fields are present
#----------------------------------------------------------------------
- if (! exists $registerFfdc->{id})
+ if (! exists $registerFfdc->{id}[0])
{
print ("fapiParseErrorInfo.pl ERROR. id missing from registerFfdc\n");
exit(1);
}
+ if (scalar @{$registerFfdc->{id}} > 1)
+ {
+ print ("fapiParseErrorInfo.pl ERROR. multiple ids in registerFfdc\n");
+ exit(1);
+ }
+
#----------------------------------------------------------------------
# Set the FFDC enum value in a global hash
#----------------------------------------------------------------------
- setFfdcEnumValue($registerFfdc->{id});
+ setFfdcEnumValue($registerFfdc->{id}[0]);
#----------------------------------------------------------------------
# Generate code to capture the registers in fapiCollectRegFfdc.C
#----------------------------------------------------------------------
- print CRFILE " case $registerFfdc->{id}:\n";
+ print CRFILE " case $registerFfdc->{id}[0]:\n";
# Look for CFAM Register addresses
foreach my $cfamRegister (@{$registerFfdc->{cfamRegister}})
OpenPOWER on IntegriCloud