HomeFreeBSD

Move SMR pointer type definition and access macros to smr_types.h.

Description

Move SMR pointer type definition and access macros to smr_types.h.

The intent is to provide a header that can be included by other headers
without introducing too much pollution. smr.h depends on various
headers and will likely grow over time, but is less likely to be
required by system headers.

Rename SMR_TYPE_DECLARE() to SMR_POINTER():

  • One might use SMR to protect more than just pointers; it could be used for resizeable arrays, for example, so TYPE seems too generic.
  • It is useful to be able to define anonymous SMR-protected pointer types and the _DECLARE suffix makes that look wrong.

Reviewed by: jeff, mjg, rlibby
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23988