usr/include/headers_check.pl
Source file repositories/reference/linux-study-clean/usr/include/headers_check.pl
File Facts
- System
- Linux kernel
- Corpus path
usr/include/headers_check.pl- Extension
.pl- Size
- 2068 bytes
- Lines
- 97
- Domain
- Support Tooling And Documentation
- Bucket
- usr
- Inferred role
- Support Tooling And Documentation: usr
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
if (!$found) {
printf STDERR "$filename:$lineno: included file '$inc' is not exported\n";
$ret = 1;
}
}
}
sub check_declarations
{
# soundcard.h is what it is
if ($line =~ m/^void seqbuf_dump\(void\);/) {
return;
}
# drm headers are being C++ friendly
if ($line =~ m/^extern "C"/) {
return;
}
if ($line =~ m/^(\s*extern|unsigned|char|short|int|long|void)\b/) {
printf STDERR "$filename:$lineno: " .
"userspace cannot reference function or " .
"variable defined in the kernel\n";
$ret = 1;
}
}
my $linux_asm_types;
sub check_asm_types
{
if ($filename =~ /types.h|int-l64.h|int-ll64.h/o) {
return;
}
if ($lineno == 1) {
$linux_asm_types = 0;
} elsif ($linux_asm_types >= 1) {
return;
}
if ($line =~ m/^\s*#\s*include\s+<asm\/types.h>/) {
$linux_asm_types = 1;
printf STDERR "$filename:$lineno: " .
"include of <linux/types.h> is preferred over <asm/types.h>\n";
$ret = 1;
}
}
Annotation
- Atlas domain: Support Tooling And Documentation / usr.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.