Official MINIX sources - Automatically replicated from gerrit.minix3.org
Go to file
google-labs-jules[bot] acfb8ad154 feat: Dev tools, advanced spinlocks, IPC KASSERTs, docs & quality
This commit delivers a comprehensive set of updates including development
environment setup, advanced spinlock features, initial IPC robustness
KASSERTs, extensive Doxygen commenting, code formatting, and Doxygen setup.

Key Changes:

Part 0: Development Environment Setup
- Created `setup.sh` to automate installation of `doxygen`, `graphviz`,
  `clang-format`, and `cppcheck`. (Tools were installed in the environment).

Part 1: Advanced Spinlock Features
- Enhanced `simple_spin_lock()` in `kernel/k_spinlock.h` with:
    - Adaptive spinning: `MAX_SPIN_THRESHOLD` and a stubbed `kernel_yield()`
      (calling `arch_pause()`).
    - Contention statistics: `acquisitions` and `contentions` counters
      added to `simple_spinlock_t` and integrated into lock functions.
- Added extensive Doxygen and inline comments for all spinlock code.
- Updated `docs/Signal_Refactoring_Verification.md` with these features.

Part 2: Initial IPC Robustness Analysis & KASSERTs
- Implemented an initial set of KASSERTs in `kernel/system.c` (in
  `kernel_call`, `kernel_call_dispatch`, `kernel_call_finish`) for
  validating IPC message parameters, call numbers, privileges, and
  internal states.
- Added Doxygen/inline comments to these IPC functions.
- Created `docs/IPC_Robustness_Analysis.md` documenting these KASSERTs
  and areas for further IPC validation.

Part 3: Code Formatting, Doxygen Setup & Review
- Code Formatting: Applied `clang-format --style=Google` to all C/H
  files modified in recent KASSERT and spinlock work.
- Static Analysis: Ran `cppcheck`; no critical issues found in recent
  changes requiring immediate code modification.
- Doxygen Setup: Created `docs/Doxyfile.kernel` with a comprehensive,
  C23-aware configuration based on your feedback. This file enables
  generation of extensive kernel documentation.
- `docs/Lock_Ordering.md`: Reviewed; no updates needed in this pass.

This work significantly improves kernel robustness, developer tooling,
code quality, and documentation infrastructure.
2025-06-08 00:40:50 +00:00
.github/workflows Create c-cpp.yml 2025-05-30 23:12:52 -07:00
.vscode updates 2025-06-07 02:18:54 -07:00
docs feat: Dev tools, advanced spinlocks, IPC KASSERTs, docs & quality 2025-06-08 00:40:50 +00:00
limine@e893b29736 tracking 2025-06-07 02:23:07 -07:00
microwindows@d1b097499f tracking 2025-06-07 02:23:07 -07:00
minix feat: Dev tools, advanced spinlocks, IPC KASSERTs, docs & quality 2025-06-08 00:40:50 +00:00
releasetools Remove NetBSD references – batch 1 2025-05-31 17:06:32 -07:00
.DS_Store Bootloder_Windowing_Test 2025-06-06 23:30:55 -07:00
.gitignore tracking 2025-06-07 02:23:07 -07:00
.gitreview build:update 'git review' config to match gerrit.minix3.org 2014-07-28 17:05:15 +02:00
arch_dependencies.txt I've refactored the MINIX kernel for architectural soundness. 2025-06-06 20:12:01 +00:00
bsd_tree.txt Remove remaining NetBSD references 2025-05-31 20:20:57 -07:00
Doxyfile feat: Dev tools, advanced spinlocks, IPC KASSERTs, docs & quality 2025-06-08 00:40:50 +00:00
include_analysis.txt I've refactored the MINIX kernel for architectural soundness. 2025-06-06 20:12:01 +00:00
LICENSE Fix parameter parsing in cut 2010-01-21 10:16:05 +00:00
meson_options.txt Merge branch 'master' into eirikr/remove-netbsd-code-and-implement-meson-build-system 2025-06-04 11:02:43 -07:00
meson.build Add x86_64 architecture support 2025-06-04 10:02:37 -07:00
setup.sh feat: Dev tools, advanced spinlocks, IPC KASSERTs, docs & quality 2025-06-08 00:40:50 +00:00
userspace_contamination.txt I've refactored the MINIX kernel for architectural soundness. 2025-06-06 20:12:01 +00:00