Version:  2.0.40 2.2.26 2.4.37 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Linux/scripts/checkversion.pl

  1 #! /usr/bin/perl
  2 #
  3 # checkversion find uses of LINUX_VERSION_CODE or KERNEL_VERSION
  4 # without including <linux/version.h>, or cases of
  5 # including <linux/version.h> that don't need it.
  6 # Copyright (C) 2003, Randy Dunlap <rdunlap@xenotime.net>
  7 
  8 use strict;
  9 
 10 $| = 1;
 11 
 12 my $debugging;
 13 
 14 foreach my $file (@ARGV) {
 15     next if $file =~ "include/linux/version\.h";
 16     # Open this file.
 17     open( my $f, '<', $file )
 18       or die "Can't open $file: $!\n";
 19 
 20     # Initialize variables.
 21     my ($fInComment, $fInString, $fUseVersion);
 22     my $iLinuxVersion = 0;
 23 
 24     while (<$f>) {
 25         # Strip comments.
 26         $fInComment && (s+^.*?\*/+ +o ? ($fInComment = 0) : next);
 27         m+/\*+o && (s+/\*.*?\*/+ +go, (s+/\*.*$+ +o && ($fInComment = 1)));
 28 
 29         # Pick up definitions.
 30         if ( m/^\s*#/o ) {
 31             $iLinuxVersion      = $. if m/^\s*#\s*include\s*"linux\/version\.h"/o;
 32         }
 33 
 34         # Strip strings.
 35         $fInString && (s+^.*?"+ +o ? ($fInString = 0) : next);
 36         m+"+o && (s+".*?"+ +go, (s+".*$+ +o && ($fInString = 1)));
 37 
 38         # Pick up definitions.
 39         if ( m/^\s*#/o ) {
 40             $iLinuxVersion      = $. if m/^\s*#\s*include\s*<linux\/version\.h>/o;
 41         }
 42 
 43         # Look for uses: LINUX_VERSION_CODE, KERNEL_VERSION, UTS_RELEASE
 44         if (($_ =~ /LINUX_VERSION_CODE/) || ($_ =~ /\WKERNEL_VERSION/)) {
 45             $fUseVersion = 1;
 46             last if $iLinuxVersion;
 47         }
 48     }
 49 
 50     # Report used version IDs without include?
 51     if ($fUseVersion && ! $iLinuxVersion) {
 52         print "$file: $.: need linux/version.h\n";
 53     }
 54 
 55     # Report superfluous includes.
 56     if ($iLinuxVersion && ! $fUseVersion) {
 57         print "$file: $iLinuxVersion linux/version.h not needed.\n";
 58     }
 59 
 60     # debug: report OK results:
 61     if ($debugging) {
 62         if ($iLinuxVersion && $fUseVersion) {
 63             print "$file: version use is OK ($iLinuxVersion)\n";
 64         }
 65         if (! $iLinuxVersion && ! $fUseVersion) {
 66             print "$file: version use is OK (none)\n";
 67         }
 68     }
 69 
 70     close($f);
 71 }

This page was automatically generated by LXR 0.3.1 (source).  •  Linux is a registered trademark of Linus Torvalds  •  Contact us