summaryrefslogtreecommitdiff
path: root/gpxe/src/util/get-pci-ids
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
committerH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
commitf2f897a1762fab84d2905f32b1c15dd7b42abb56 (patch)
treea38f51d3f1fcbf44afddb4736d549c12eaf491be /gpxe/src/util/get-pci-ids
parent72d2959272b4616f17a97667e6dfa9d06bf109a3 (diff)
downloadsyslinux-f2f897a1762fab84d2905f32b1c15dd7b42abb56.tar.gz
gpxe: delete long since obsolete snapshot of gPXE
gPXE has been deprecated in favor of iPXE for many, many years now. It is much better than users get it directly from the iPXE project, since we should no longer need any special modifications for Syslinux use. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'gpxe/src/util/get-pci-ids')
-rwxr-xr-xgpxe/src/util/get-pci-ids135
1 files changed, 0 insertions, 135 deletions
diff --git a/gpxe/src/util/get-pci-ids b/gpxe/src/util/get-pci-ids
deleted file mode 100755
index 6501a7f7..00000000
--- a/gpxe/src/util/get-pci-ids
+++ /dev/null
@@ -1,135 +0,0 @@
-#! /usr/bin/perl -w
-
-# get-pci-ids: extract pci vendor/device ids from linux net drivers
-
-# Copyright (C) 2003 Georg Baum <gbaum@users.sf.net>
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-# Known bugs/limitations:
-# - Does not recognize all drivers because some require special cflags.
-# Fails also on some drivers that do belong to other architectures
-# than the one of the machine this script is running on.
-# This is currently not so important because all drivers that have an
-# Etherboot counterpart are recognized.
-
-
-use strict;
-use File::Basename "dirname";
-use POSIX "uname";
-
-# Where to find the kernel sources
-my $kernel_src = "/usr/src/linux";
-
-if($#ARGV >= 0) {
- $kernel_src = shift;
-}
-
-# Sanity checks
-if($#ARGV >= 0) {
- print STDERR "Too many arguments.\n";
- print STDERR "Usage: get-pci-ids [path to kernel sources]\n";
- print STDERR " /usr/src/linux is assumed if no path is given.\n";
- exit 1;
-}
-
-unless(-f "$kernel_src/include/linux/version.h") {
- print STDERR "Could not find $kernel_src/include/linux/version.h.\n";
- print STDERR "$kernel_src is probably no Linux kernel source tree.\n";
- exit 1;
-}
-
-# Flags that are needed to preprocess the drivers.
-# Some drivers need optimization
-my $cflags="-D__KERNEL__ -I$kernel_src/include -I$kernel_src/net/inet -O2";
-
-# The C preprocessor. It needs to spit out the preprocessed source on stdout.
-my $cpp="gcc -E";
-
-# List of drivers. We parse every .c file. It does not harm if it does not contain a driver.
-my @drivers = split /\s+/, `find $kernel_src/drivers/net -name '*.c' | sort`;
-
-# Kernel version
-my $version = `grep UTS_RELEASE $kernel_src/include/linux/version.h`;
-chomp $version;
-$version =~ s/\s*#define\s+UTS_RELEASE\s+"(\S+)".*$/$1/g;
-
-# Architecture
-my @uname = uname();
-
-
-# Print header
-print "# PCI vendor/device ids extracted from Linux $version on $uname[4] at " . gmtime() . "\n";
-
-my $driver;
-
-# Process the drivers
-foreach $driver (@drivers) {
-
- # Preprocess to expand macros
- my $command = "$cpp $cflags -I" . dirname($driver) . " $driver";
- open DRIVER, "$command |" or die "Could not execute\n\"$command\".\n";
-
- # Extract the pci_device_id structure
- my $found = 0;
- my $line = "";
- my @lines;
- while(<DRIVER>) {
- if(/^\s*static\s+struct\s+pci_device_id/) {
- # This file contains a driver. Print the name.
- $driver =~ s!$kernel_src/drivers/net/!!g;
- print "\n$driver\n";
- $found = 1;
- next;
- }
- if($found == 1){
- if(/\};/ or /{\s*0\s*,?\s*}/) {
- # End of struct
- $found = 0;
- } else {
- chomp;
- if(/\}\s*,?\s*\n?$/) {
- # This line contains a full entry or the last part of it.
- $_ = $line . $_;
- $line = "";
- s/[,\{\};\(\)]//g; # Strip punctuation
- s/^\s+//g; # Eat whitespace at beginning of line
- tr[A-Z][a-z]; # Convert to lowercase
- # Push the vendor and device id to @lines if this line is not empty.
- # We ignore everything else that might be there
- my ($vendor_id, $device_id, $remainder) = split /\W+/, $_, 3;
- push @lines, "$vendor_id $device_id\n" if($vendor_id && $device_id);
- } else {
- # This line does contain a partial entry. Remember it.
- $line .= "$_ ";
- }
- }
- }
- }
- close DRIVER; # No "or die", because $cpp fails on some files
-
- # Now print out the sorted values
- @lines = sort @lines;
- my $lastline = "";
- foreach(@lines) {
- # Print each vendor/device id combination only once.
- # Some drivers (e.g. e100) do contain subfamilies
- print if($_ ne $lastline);
- $lastline = $_;
- }
-}
-
-