]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
docs: parse-headers.pl: improve its debug output format
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 22 Aug 2025 14:19:13 +0000 (16:19 +0200)
committerJonathan Corbet <corbet@lwn.net>
Fri, 29 Aug 2025 21:54:42 +0000 (15:54 -0600)
Change the --debug logic to help comparing its results with
a new python script.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/1064011717951eac257889a3032303c9d4440711.1755872208.git.mchehab+huawei@kernel.org
Documentation/sphinx/parse-headers.pl

index 7b1458544e2eccf5f249b2f381dcbbeaa7064e46..560685926cdb43b7d3097592bbd7bd32501ab875 100755 (executable)
@@ -31,8 +31,6 @@ my %enums;
 my %enum_symbols;
 my %structs;
 
-require Data::Dumper if ($debug);
-
 #
 # read the file and get identifiers
 #
@@ -197,6 +195,9 @@ if ($file_exceptions) {
                } else {
                        $reftype = $def_reftype{$type};
                }
+               if (!$reftype) {
+                   print STDERR "Warning: can't find ref type for $type";
+               }
                $new = "$reftype:`$old <$new>`";
 
                if ($type eq "ioctl") {
@@ -229,12 +230,26 @@ if ($file_exceptions) {
 }
 
 if ($debug) {
-       print Data::Dumper->Dump([\%ioctls], [qw(*ioctls)]) if (%ioctls);
-       print Data::Dumper->Dump([\%typedefs], [qw(*typedefs)]) if (%typedefs);
-       print Data::Dumper->Dump([\%enums], [qw(*enums)]) if (%enums);
-       print Data::Dumper->Dump([\%structs], [qw(*structs)]) if (%structs);
-       print Data::Dumper->Dump([\%defines], [qw(*defines)]) if (%defines);
-       print Data::Dumper->Dump([\%enum_symbols], [qw(*enum_symbols)]) if (%enum_symbols);
+       my @all_hashes = (
+               {ioctl      => \%ioctls},
+               {typedef    => \%typedefs},
+               {enum       => \%enums},
+               {struct     => \%structs},
+               {define     => \%defines},
+               {symbol     => \%enum_symbols}
+       );
+
+       foreach my $hash (@all_hashes) {
+               while (my ($name, $hash_ref) = each %$hash) {
+                       next unless %$hash_ref;  # Skip empty hashes
+
+                       print "$name:\n";
+                       for my $key (sort keys %$hash_ref) {
+                               print "  $key -> $hash_ref->{$key}\n";
+                       }
+                       print "\n";
+               }
+       }
 }
 
 #