Page MenuHomeFreeBSD

Use uintptr_t instead of uint64_t for pointers in stack frames.
ClosedPublic

Authored by jhb on Aug 7 2020, 4:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 2 2025, 6:27 PM
Unknown Object (File)
Dec 10 2024, 9:47 PM
Unknown Object (File)
Sep 28 2024, 3:34 PM
Unknown Object (File)
Sep 20 2024, 8:45 PM
Unknown Object (File)
Sep 19 2024, 5:20 PM
Unknown Object (File)
Sep 16 2024, 5:48 AM
Unknown Object (File)
Sep 5 2024, 7:11 PM
Unknown Object (File)
Sep 5 2024, 3:55 PM
Subscribers

Details

Test Plan
  • used in CheriBSD with a kernel which has CHERI capabilities as pointers (so uintptr_t is 128 bits and pointers in the stack are that size, etc.)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Aug 7 2020, 4:12 PM
jhb created this revision.

In theory this would be more RV32 friendly as well, though I don't really think we need a FreeBSD/riscv32.

sys/riscv/riscv/unwind.c
54 ↗(On Diff #75575)

Note that we are probably using a compressed instruction (c.jalr) so subtracting 4 rather than 2 is not always correct, but it's probably close enough as the intent is to get the right symbol name for tail calls where the saved RA may in fact point to the start of a different function.

This revision is now accepted and ready to land.Aug 9 2020, 3:09 PM