| SMR_PTR_GET(9) | Kernel Developer's Manual | SMR_PTR_GET(9) |
SMR_PTR_GET,
SMR_PTR_GET_LOCKED,
SMR_PTR_SET_LOCKED — safe
memory reclamation pointer API
TYPE
SMR_PTR_GET(TYPE
*pptr);
TYPE
SMR_PTR_GET_LOCKED(TYPE
*pptr);
void
SMR_PTR_SET_LOCKED(TYPE
*pptr, TYPE v);
The SMR_PTR macros are used for accessing SMR-protected pointers.
The macro
SMR_PTR_GET()
reads the pointer referenced by pptr for dereferencing
inside SMR read-side critical section.
SMR_PTR_GET_LOCKED()
reads the pointer referenced by pptr for dereferencing
inside writer context.
SMR_PTR_SET_LOCKED()
writes value v to the pointer referenced by
pptr. The operation issues a write-write memory
barrier with membar_producer(9) before the pointer
write.
SMR_PTR_GET(),
SMR_PTR_GET_LOCKED() and
SMR_PTR_SET_LOCKED() can be called during autoconf,
from process context, or from interrupt context.
SMR_PTR_GET() can be used from SMR
read-side critical section. SMR_PTR_GET_LOCKED() and
SMR_PTR_SET_LOCKED() can be used from writer
context.
The SMR_PTR macros first appeared in OpenBSD 6.5.
| July 5, 2019 | Debian |