index
:
litmus-rt.git
archive/unc-master-3.0
archived-2013.1
archived-private-master
archived-semi-part
demo
ecrts-pgm-final
ecrts14-pgm-final
gpusync-rtss12
gpusync/staging
linux-tip
litmus2008-patch-series
master
pgm
prop/litmus-signals
prop/robust-tie-break
staging
test
tracing-devel
v2.6.34-with-arm-patches
v2015.1
wip-2011.2-bbb
wip-2011.2-bbb-trace
wip-2012.3-gpu
wip-2012.3-gpu-preport
wip-2012.3-gpu-rtss13
wip-2012.3-gpu-sobliv-budget-w-kshark
wip-aedzl-final
wip-aedzl-revised
wip-arbit-deadline
wip-aux-tasks
wip-bbb
wip-bbb-prio-don
wip-better-break
wip-binary-heap
wip-budget
wip-color
wip-color-jlh
wip-d10-hz1000
wip-default-clustering
wip-dissipation-jerickso
wip-dissipation2-jerickso
wip-ecrts14-pgm
wip-edf-hsb
wip-edf-os
wip-edf-tie-break
wip-edzl-critique
wip-edzl-final
wip-edzl-revised
wip-events
wip-extra-debug
wip-fix-switch-jerickso
wip-fix3
wip-fmlp-dequeue
wip-ft-irq-flag
wip-gpu-cleanup
wip-gpu-interrupts
wip-gpu-rtas12
wip-gpu-rtss12
wip-gpu-rtss12-srp
wip-gpusync-merge
wip-ikglp
wip-k-fmlp
wip-kernel-coloring
wip-kernthreads
wip-klmirqd-to-aux
wip-kshark
wip-litmus-3.2
wip-litmus2011.2
wip-litmus3.0-2011.2
wip-master-2.6.33-rt
wip-mc
wip-mc-bipasa
wip-mc-jerickso
wip-mc2-cache-slack
wip-mcrit-mac
wip-merge-3.0
wip-merge-v3.0
wip-migration-affinity
wip-mmap-uncache
wip-modechange
wip-nested-locking
wip-omlp-gedf
wip-pai
wip-percore-lib
wip-performance
wip-pgm
wip-pgm-split
wip-pm-ovd#! /usr/bin/perl
#
# checkversion find uses of LINUX_VERSION_CODE or KERNEL_VERSION
# without including <linux/version.h>, or cases of
# including <linux/version.h> that don't need it.
# Copyright (C) 2003, Randy Dunlap <rdunlap@xenotime.net>
use
strict
;
$| =
1
;
my
$debugging
;
foreach
my
$file
(
@ARGV
) {
next if
$file
=~
"include/linux/version\.h"
;
# Open this file.
open
(
my
$f
,
'<'
,
$file
)
or die
"Can't open
$file
: $!
\n
"
;
# Initialize variables.
my
(
$fInComment
,
$fInString
,
$fUseVersion
);
my
$iLinuxVersion
=
0
;
while
(<
$f
>) {
# Strip comments.
$fInComment
&& (
s
+^.*
?\
*/+ +
o ?
(
$fInComment
=
0
) :
next
);
m
+
/\*+o && (s+/
\
*.*
?\
*
/+ +go, (s+/
\
*.*$+ +
o
&& (
$fInComment
=
1
)));
# Pick up definitions.
if
(
m/^\s*#/o
) {
$iLinuxVersion
= $.
if
m/^\s*#\s*include\s*"linux\/
version\
.
h
"/o;
}
# Strip strings.
$fInString
&& (s+^.*?"
+ +
o ?
(
$fInString
=
0
) :
next
);
m
+
"+o && (s+"
.*
?
"+ +go, (s+"
.*$+ +
o
&& (
$fInString
=
1
)));
# Pick up definitions.
if
(
m/^\s*#/o
) {
$iLinuxVersion
= $.
if
m/^\s*#\s*include\s*<linux\/
version\
.
h
>/
o
;
}
# Look for uses: LINUX_VERSION_CODE, KERNEL_VERSION, UTS_RELEASE
if
((
$_
=~
/LINUX_VERSION_CODE/
) || (
$_
=~
/\WKERNEL_VERSION/
)) {
$fUseVersion
=
1
;
last if
$iLinuxVersion
;
}
}
# Report used version IDs without include?
if
(
$fUseVersion
&& !
$iLinuxVersion
) {
print
"
$file
: $.: need linux/version.h
\n
"
;
}
# Report superfluous includes.
if
(
$iLinuxVersion
&& !
$fUseVersion
) {
print
"
$file
:
$iLinuxVersion
linux/version.h not needed.
\n
"
;
}
# debug: report OK results:
if
(
$debugging
) {
if
(
$iLinuxVersion
&&
$fUseVersion
) {
print
"
$file
: version use is OK (
$iLinuxVersion
)
\n
"
;
}
if
(!
$iLinuxVersion
&& !
$fUseVersion
) {
print
"
$file
: version use is OK (none)
\n
"
;
}
}
close
(
$f
);
}