HomeFreeBSD

MFC kern: _umtx_op: compat32 refactoring

Description

MFC kern: _umtx_op: compat32 refactoring

63ecb272: umtx_op: reduce redundancy required for compat32

All of the compat32 variants are substantially the same, save for
copyin/copyout (mostly). Apply the same kind of technique used with kevent
here by having the syscall routines supply a umtx_copyops describing the
operations needed.

umtx_copyops carries the bare minimum needed- size of timespec and
_umtx_time are used for determining if copyout is needed in the sem2_wait
case.

bd4bcd14: Fix !COMPAT_FREEBSD32 kernel build

One of the last shifts inadvertently moved these static assertions out of a
COMPAT_FREEBSD32 block, which the relevant definitions are limited to.

Fix it.

27a9392d: _umtx_op: fix robust lists after r367744

A copy-pasto left us copying in 24-bytes at the address of the rb pointer
instead of the intended target.

15eaec6a: _umtx_op: move compat32 definitions back in

These are reasonably compact, and a future commit will blur the compat32
lines by supporting 32-bit operations with the native _umtx_op.

60e60e73: freebsd32: take the _umtx_op struct definitions back

Providing these in freebsd32.h facilitates local testing/measuring of the
structs rather than forcing one to locally recreate them. Sanity checking
offsets/sizes remains in kern_umtx.c where these are typically used.

(cherry picked from commit 63ecb272a00c6f084a33db1c6ad3e925d4dcf015)
(cherry picked from commit bd4bcd14e3eae6f70790be65e862f89e2596b9af)
(cherry picked from commit 27a9392d543933f1aaa4e4ddae2a1585a72db1b2)
(cherry picked from commit 15eaec6a5c04b1cce7594cd1278600d7a57efc5a)
(cherry picked from commit 60e60e73fd9d185d62c36a499e21c124629eb8ba)

Details

Provenance
kevansAuthored on Nov 17 2020, 3:36 AM
Parents
rG5011330da72f: Cast sv_stackgap argument
Branches
Unknown
Tags
Unknown