PORTFEATURES(9)
β¨ NAME β¨
Okay so bestie, welcome to portfeatures β literally section 9 of the Kernel Developer's Manual, and the vibe is βthe __HAVEs (and the have nots)β π
. This is your group chat for the __HAVE_feature macros, with the tea on what each one means and where to find the full details.
π DESCRIPTION π
Machine-independent kernel code adapts to differences in hardware capabilities provided by the machine-dependent parts of the kernel. A port declares its capabilities by defining various __HAVE_feature macros. This manual page is lowkey the index of those macros, with pointers to other manual pages in the kernel section that provide all the relevant details. No cap, it's giving useful-index energy. π¦
__HAVE_MUTEX_STUBS(mutex(9)) β the port provides fast path mutex enter and exit stubs. Slay, mutex fast path. β¨__HAVE_PREEMPTION(cpu_need_resched(9)) β the port can preempt kernellwpswithRESCHED_KPREEMPT. Preemption main character energy fr fr.__HAVE_PROCFS_MACHDEPβ the port has MDprocfsnodes, and defines additional values for thepfstypeenum for each type. Iconic enum expansion behavior.__HAVE_PTRACE_MACHDEPβ the port has MDptrace(2)requests, and defines thePTRACE_MACHDEP_REQUEST_CASESmacro with case labels for its MD requests. That macro name is a whole mouthful and I'm obsessed. π__HAVE_RAS(ras(9)) β the port supports restartable atomic sequences. RAS ate, no notes. π₯__HAVE_SIMPLE_MUTEXES(mutex(9)) β the port provides a CAS function that is either MP-safe, or does not need to be MP safe. Adaptive mutexes on these architectures do not require an additional interlock. Lowkey a whole vibe.__HAVE_SPIN_MUTEX_STUBS(mutex(9)) β the port provides fast path enter and exit stubs for spin mutexes. Spin mutex stubs, periodt. π__HAVE_UCAS_FULL(ucas(9)) β the port provides a full implementation of the low-level primitives required for atomic compare-and-swap operations to user-space addresses. Full send. π«Ά__HAVE_UCAS_MP(ucas(9)) β the port does not provide a full implementation of the low-level primitives required for atomic compare-and-swap operations to user-space addresses, but does provide an implementation of those primitives that can be used if (and only if) the system has more than one processor. That βif (and only if)β is literally doing work, bestie β not optional. π
That's the whole vibe check: source/version is Debian, dated July 27, 2025, and the page is literally PORTFEATURES(9). Go off, and may your port declare its __HAVE_feature macros with main character energy. πβ¨π
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms