summaryrefslogtreecommitdiff
path: root/kernel/api/Kconfig
AgeCommit message (Collapse)Author
6 dayskernel/api: add debugfs interface for kernel API specificationsSasha Levin
Add a debugfs interface, enabled by CONFIG_KAPI_SPEC_DEBUGFS, to expose kernel API specifications at runtime. This allows tools and users to query the complete API specifications through the debugfs filesystem. The interface provides: - /sys/kernel/debug/kapi/list - lists all available API specifications - /sys/kernel/debug/kapi/specs/<name> - detailed info for each API - /sys/kernel/debug/kapi/specs-json/<name> - the same spec as JSON Each specification file includes: - Function name, version, and descriptions - Execution context requirements and flags - Parameter details with types, flags, and constraints - Return value specifications and success conditions - Error codes with descriptions and conditions - Locking requirements and constraints - Signal handling specifications - Examples and notes This enables runtime introspection of kernel APIs for documentation tools, static analyzers, and debugging purposes. Assisted-by: LLM Signed-off-by: Sasha Levin <sashal@kernel.org>
6 dayskernel/api: introduce kernel API specification frameworkSasha Levin
Add a framework for formally documenting kernel APIs with inline specifications. This framework provides: - Structured API documentation with parameter specifications, return values, error conditions, and execution context requirements - Runtime validation capabilities for debugging (CONFIG_KAPI_RUNTIME_CHECKS) - Support for both internal kernel APIs and system calls The framework stores specifications in a dedicated ELF section and provides infrastructure for: - Runtime querying of API documentation - Integration with existing SYSCALL_DEFINE macros A KUnit suite (CONFIG_KAPI_KUNIT_TEST) covers registration, lookup, parameter and return value validation, and JSON export. No specifications are added here; subsequent patches add them for individual syscalls. With CONFIG_KAPI_SPEC=n the SYSCALL_DEFINEx() expansion is unchanged. CONFIG_KAPI_RUNTIME_CHECKS is a debug option: a syscall whose arguments violate its specification returns -EINVAL without running. Assisted-by: LLM Signed-off-by: Sasha Levin <sashal@kernel.org>