Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


PORTFEATURES(9)            Kernel Developer's Manual           PORTFEATURES(9)

NAME
     portfeatures - the __HAVEs (and the have nots)

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 provides an index of such macros with pointers to other
     manual pages in the kernel section that provide all the relevant details.

     __HAVE_MUTEX_STUBS (mutex(9))
                   The port provides fast path mutex enter and exit stubs.

     __HAVE_PREEMPTION (cpu_need_resched(9))
                   The port can preempt kernel lwps with RESCHED_KPREEMPT.

     __HAVE_PTRACE_MACHDEP
                   The port has MD ptrace(2) requests, defines
                   PTRACE_MACHDEP_REQUEST_CASES macro with case labels for its
                   MD requests.

     __HAVE_RAS (ras(9))
                   The port supports restartable atomic sequences.

     __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.

     __HAVE_SPIN_MUTEX_STUBS (mutex(9))
                   The port provides fast path enter and exit stubs for spin
                   mutexes.

     __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.

     __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.

NetBSD 10.99                     March 6, 2023                    NetBSD 10.99