#!/usr/bin/perl

use lib '../kernel';
use strict;
use MDK::Common;

my @aliases;
my ($main) = `ls -t /lib/modules/*/modules.alias`;
foreach (cat_(chomp_($main))) {
    push @aliases, [ $1, $2 ] if /^alias\s+(pcmcia:\S+)\s+(\S+)$/; #- modalias, module
}
@aliases or die "unable to get PCMCIA aliases";

print '
struct pcmcia_alias {
	const char      *modalias;
	const char      *module;
};

';

my %t = ( 
    network => 'network/pcmcia',
    medias  => 'disk/pcmcia',
);

foreach my $type (keys %t) {
    my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1 "$t{$type}"`)
	or die "unable to get PCMCIA modules";

    print "#ifndef DISABLE_".uc($type)."
struct pcmcia_alias ${type}_pcmcia_ids[] = {
";
    print qq|\t{ "$_->[0]", "$_->[1]" },\n| foreach grep { member($_->[1], @modules) } @aliases;
    print "};
unsigned int ${type}_pcmcia_num_ids = sizeof(${type}_pcmcia_ids) / sizeof(struct pcmcia_alias);

#endif

";

}