status() reads one reset line at a time, and only for a caller that already knows the id. Nothing else in the interface says how many lines a controller has or what any of them resets, so the lines a board is holding cannot be surveyed. Adds an optional get_line method describing one line as a structure: its name, and a text member for controller specific fields the structure does not cover. The asserted state stays with status(), which already reports it, so a controller does not supply the same fact twice. Returning -ENODEV reports an id that names no line, which is how controllers with gaps in their numbering are handled. reset_controller_dev gains the line count that bounds the ids. CONFIG_RESET_PROCFS adds /proc/reset, one key:value line per reset line, every line the same tokens in the same order so the file is machine parseable. A controller without get_line is listed by name and a note. The controller list already existed for reset_control_get() to search, so the renderer only walks what was there. /proc/reset is claimed when the first controller registers; procfs_register() requires that procfs is not yet mounted, which holds because controllers register during board or architecture start up, and it appends without checking for duplicates, so the entry is claimed once for the lifetime of the system. Documents the framework, which had a page with nothing on it: the consumer interface and what shared and exclusive handles mean, the controller interface, the new method, and /proc/reset. Off by default and costs nothing when off. No in-tree configuration enables RESET, so this builds only when a board turns it on. Assisted-by: Claude:claude-opus-5 Signed-off-by: Justin Hammond <justin@dynam.ac> |
||
|---|---|---|
| .github | ||
| arch | ||
| audio | ||
| binfmt | ||
| boards | ||
| cmake | ||
| crypto | ||
| Documentation | ||
| drivers | ||
| dummy | ||
| fs | ||
| graphics | ||
| include | ||
| libs | ||
| mm | ||
| net | ||
| openamp | ||
| pass1 | ||
| sched | ||
| syscall | ||
| tools | ||
| video | ||
| wireless | ||
| .asf.yaml | ||
| .codespell-ignore-lines | ||
| .codespellrc | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmessage | ||
| .pre-commit-config.yaml | ||
| .yamllint | ||
| AUTHORS | ||
| CMakeLists.txt | ||
| CONTRIBUTING.md | ||
| INVIOLABLES.md | ||
| Kconfig | ||
| LICENSE | ||
| Makefile | ||
| NOTICE | ||
| README.md | ||
| ReleaseNotes | ||
Apache NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOSs (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).
For brevity, many parts of the documentation will refer to Apache NuttX as simply NuttX.
Getting Started
First time on NuttX? Read the Getting Started guide! If you don't have a board available, NuttX has its own simulator that you can run on terminal.
Documentation
You can find the current NuttX documentation on the Documentation Page.
Alternatively, you can build the documentation yourself by following the Documentation Build Instructions.
The old NuttX documentation is still available in the Apache wiki.
Supported Boards
NuttX supports a wide variety of platforms. See the full list on the Supported Platforms page.
Contributing
If you wish to contribute to the NuttX project, read the Contributing guidelines for information on Git usage, coding standard, workflow and the NuttX principles.
License
The code in this repository is under either the Apache 2 license, or a license compatible with the Apache 2 license. See the License Page for more information.