-
Mauro Carvalho Chehab authored
released under GPL v2. Signed-off-by:
Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Mauro Carvalho Chehab authoredreleased under GPL v2. Signed-off-by:
Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
get_abi.pl 10.09 KiB
#!/usr/bin/perl
# SPDX-License-Identifier: GPL-2.0
use strict;
use Pod::Usage;
use Getopt::Long;
use File::Find;
use Fcntl ':mode';
my $help;
my $man;
my $debug;
my $prefix="Documentation/ABI";
GetOptions(
"debug|d+" => \$debug,
"dir=s" => \$prefix,
'help|?' => \$help,
man => \$man
) or pod2usage(2);
pod2usage(1) if $help;
pod2usage(-exitstatus => 0, -verbose => 2) if $man;
pod2usage(2) if (scalar @ARGV < 1 || @ARGV > 2);
my ($cmd, $arg) = @ARGV;
pod2usage(2) if ($cmd ne "search" && $cmd ne "rest" && $cmd ne "validate");
pod2usage(2) if ($cmd eq "search" && !$arg);
require Data::Dumper if ($debug);
my %data;
#
# Displays an error message, printing file name and line
#
sub parse_error($$$$) {
my ($file, $ln, $msg, $data) = @_;
print STDERR "file $file#$ln: $msg at\n\t$data";
}
#
# Parse an ABI file, storing its contents at %data
#
sub parse_abi {
my $file = $File::Find::name;
my $mode = (stat($file))[2];
return if ($mode & S_IFDIR);
return if ($file =~ m,/README,);
my $name = $file;
$name =~ s,.*/,,;
my $nametag = "File $name";
$data{$nametag}->{what} = "File $name";
$data{$nametag}->{type} = "File";
$data{$nametag}->{file} = $name;
$data{$nametag}->{filepath} = $file;
$data{$nametag}->{is_file} = 1;
my $type = $file;
$type =~ s,.*/(.*)/.*,$1,;
my $what;
my $new_what;
my $tag;