Documentation/driver-api/media/drivers/ccs/mk-ccs-regs
Source file repositories/reference/linux-study-clean/Documentation/driver-api/media/drivers/ccs/mk-ccs-regs
File Facts
- System
- Linux kernel
- Corpus path
Documentation/driver-api/media/drivers/ccs/mk-ccs-regs- Extension
[no extension]- Size
- 11694 bytes
- Lines
- 481
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: Documentation
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/bits.hmedia/v4l2-cci.hstdint.hstdio.hccs-extra.hccs-regs.hccs-limits.h
Detected Declarations
struct ccs_limitfunction is_limit_regfunction bit_deffunction flag_strfunction name_splitfunction tabconvfunction elem_bitsfunction arr_sizefunction print_args
Annotated Snippet
struct ccs_limit {
$uint32_t reg;
$uint16_t size;
$uint16_t flags;
const char *name;
};
EOF
;
print $LH "#define CCS_L_FL_SAME_REG " . bit_def(0) . "\n\n";
print $LH <<EOF
extern const struct ccs_limit ccs_limits[];
EOF
;
print $LC <<EOF
#include "ccs-limits.h"
#include "ccs-regs.h"
const struct ccs_limit ccs_limits[] = {
EOF
;
my $limitcount = 0;
my $argdescs;
my $reglist = "const struct ccs_reg_desc ccs_reg_desc[] = {\n";
sub name_split($$) {
my ($name, $addr) = @_;
my $args;
$name =~ /([^\(]+?)(\(.*)/;
($name, $args) = ($1, $2);
$args = [split /,\s*/, $args];
foreach my $t (@$args) {
$t =~ s/[\(\)]//g;
$t =~ s/\//\\\//g;
}
return ($name, $addr, $args);
}
sub tabconv($) {
$_ = shift;
my @l = split "\n", $_;
map {
s/ {8,8}/\t/g;
s/\t\K +//;
} @l;
return (join "\n", @l) . "\n";
}
sub elem_bits(@) {
my @flags = @_;
return 16 if grep /^16$/, @flags;
return 32 if grep /^32$/, @flags;
return 8;
}
sub arr_size($) {
my $this = $_[0];
my $size = $this->{elsize};
my $h = $this->{argparams};
Annotation
- Immediate include surface: `linux/bits.h`, `media/v4l2-cci.h`, `stdint.h`, `stdio.h`, `ccs-extra.h`, `ccs-regs.h`, `ccs-limits.h`.
- Detected declarations: `struct ccs_limit`, `function is_limit_reg`, `function bit_def`, `function flag_str`, `function name_split`, `function tabconv`, `function elem_bits`, `function arr_size`, `function print_args`.
- Atlas domain: Support Tooling And Documentation / Documentation.
- 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.