Page MenuHomeFreeBSD

Make struct syscall_args machine independent
ClosedPublic

Authored by brooks on Dec 6 2021, 10:54 PM.
Tags
None
Referenced Files
F173980230: D33308.id99616.diff
Tue, Sep 29, 6:37 PM
F173959912: D33308.id99723.diff
Tue, Sep 29, 3:59 PM
Unknown Object (File)
Tue, Sep 29, 11:21 AM
Unknown Object (File)
Tue, Sep 29, 7:51 AM
Unknown Object (File)
Mon, Sep 28, 10:59 AM
Unknown Object (File)
Thu, Sep 10, 8:26 PM
Unknown Object (File)
Mon, Sep 7, 1:58 AM
Unknown Object (File)
Sun, Sep 6, 6:02 AM

Details

Summary

After a round of cleanups in late 2020, all definitions are
functionally identical.

This removes a rotted __aligned(8) on arm. It was added in
b7112ead32bc50ef9744099bdbb1cfbd6e906b2a and was intended to align the
args member so that 64-bit types (off_t, etc) could be safely read on
armeb compiled with clang. With the removal of armev, this is no
longer needed (armv7 requires that 32-bit aligned reads of 64-bit
values be supported and we enable such support on armv6). As further
evidence this is unnecessary, cleanups to struct syscall_args have
resulted in args being 32-bit aligned on 32-bit systems. The sole
effect is to bloat the struct by 4 bytes.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 43200
Build 40088: arc lint + arc unit

Event Timeline

kib added inline comments.
sys/sys/proc.h
204

I believe MAXARGS definition should be removed in this change, or in immediate follow-up. It seems there are only two uses of the symbol in arm64 MD code, everything else uses nitems(sa->args).

This revision is now accepted and ready to land.Dec 6 2021, 11:00 PM
brooks added inline comments.
sys/sys/proc.h
204

While I'm not generally a fan of magic numbers this makes sense. I'll work that up.