fs/proc/bootconfig.c
Source file repositories/reference/linux-study-clean/fs/proc/bootconfig.c
File Facts
- System
- Linux kernel
- Corpus path
fs/proc/bootconfig.c- Extension
.c- Size
- 2235 bytes
- Lines
- 103
- Domain
- Core OS
- Bucket
- VFS And Filesystem Core
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/fs.hlinux/init.hlinux/printk.hlinux/proc_fs.hlinux/seq_file.hlinux/bootconfig.hlinux/slab.h
Detected Declarations
function boot_config_proc_showfunction copy_xbc_key_value_listfunction xbc_for_each_key_valuefunction proc_boot_config_initmodule init proc_boot_config_init
Annotated Snippet
if (vnode) {
xbc_array_for_each_value(vnode, val) {
if (strchr(val, '"'))
q = '\'';
else
q = '"';
ret = snprintf(dst, rest(dst, end), "%c%s%c%s",
q, val, q, xbc_node_is_array(vnode) ? ", " : "\n");
if (ret < 0)
goto out;
dst += ret;
}
} else {
ret = snprintf(dst, rest(dst, end), "\"\"\n");
if (ret < 0)
break;
dst += ret;
}
}
if (cmdline_has_extra_options() && ret >= 0 && boot_command_line[0]) {
ret = snprintf(dst, rest(dst, end), "# Parameters from bootloader:\n# %s\n",
boot_command_line);
if (ret > 0)
dst += ret;
}
out:
kfree(key);
return ret < 0 ? ret : dst - (end - size);
}
static int __init proc_boot_config_init(void)
{
int len;
len = copy_xbc_key_value_list(NULL, 0);
if (len < 0)
return len;
if (len > 0) {
saved_boot_config = kzalloc(len + 1, GFP_KERNEL);
if (!saved_boot_config)
return -ENOMEM;
len = copy_xbc_key_value_list(saved_boot_config, len + 1);
if (len < 0) {
kfree(saved_boot_config);
return len;
}
}
proc_create_single("bootconfig", 0, NULL, boot_config_proc_show);
return 0;
}
fs_initcall(proc_boot_config_init);
Annotation
- Immediate include surface: `linux/fs.h`, `linux/init.h`, `linux/printk.h`, `linux/proc_fs.h`, `linux/seq_file.h`, `linux/bootconfig.h`, `linux/slab.h`.
- Detected declarations: `function boot_config_proc_show`, `function copy_xbc_key_value_list`, `function xbc_for_each_key_value`, `function proc_boot_config_init`, `module init proc_boot_config_init`.
- Atlas domain: Core OS / VFS And Filesystem Core.
- Implementation status: source implementation candidate.
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.