HomeFreeBSD

Centralize __pcpu definitions.

Description

Centralize __pcpu definitions.

Many extern struct pcpu <something>pcpu declarations were
copied/pasted in sources. The issue is that the definition is MD, but
it cannot be provided by machine/pcpu.h due to actual struct pcpu
defined in sys/pcpu.h later than the inclusion of machine/pcpu.h.
This forced the copying when other code needed direct access to
pcpu. There is no way around it, due to machine/pcpu.h supplying
part of struct pcpu fields.

To work around the problem, add a new machine/pcpu_aux.h header, which
should fill any needed MD definitions after struct pcpu definition is
completed. This allows to remove copies of __pcpu spread around the
source. Also on x86 it makes it possible to remove work arounds like
OFFSETOF_CURTHREAD or clang specific warnings supressions.

Reported and tested by: lwhsu, bcran
Reviewed by: imp, markj (previous version)
Discussed with: jhb
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D21418

Details

Provenance
kibAuthored on
Reviewer
imp
Differential Revision
D21418: Centralize __pcpu definitions.
Parents
rS351593: zfs_ioc_snapshot: check user-prop permissions on snapshotted datasets
Branches
Unknown
Tags
Unknown