You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As of Linux 4.17, x86_64 kernels built with CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y no longer use the userspace parameter list for syscalls, but instead use a single pt_regs* argument which they unpack internally.
As part of these changes, the sys_* prototypes are no longer exposed directly on x86_64 via linux/syscalls.h. This requires us to make some codegen changes:
We should be able to handle this difference conditionally by checking the running kernel config, e.g. via /lib/modules/$(uname -r)/build/.config. This requires additional codegen cruft, which indicates that it's maybe finally time to split FreeBSD's codegen out from Linux's.
The text was updated successfully, but these errors were encountered:
* module: Syscall wrapper codegen
Handles pt_regs-based syscalls.
Closes#80.
* ci: Enable ubuntu-latest builds
These should work now.
* module/codegen: Minimize special-casing
The pt_regs handling is a superset of the original
handling, so just use it everywhere.
As of Linux 4.17, x86_64 kernels built with
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
no longer use the userspace parameter list for syscalls, but instead use a singlept_regs*
argument which they unpack internally.As part of these changes, the
sys_*
prototypes are no longer exposed directly on x86_64 vialinux/syscalls.h
. This requires us to make some codegen changes:"#{ASMLINKAGE} #{TYPEOF}(sys_#{call}) krf_sys_#{call};"
and similar should become something like:
"#{ASMLINKAGE} #{SYSCALL_RET_TYPE} (*krf_sys_#{call})(pt_regs*);"
We should be able to handle this difference conditionally by checking the running kernel config, e.g. via
/lib/modules/$(uname -r)/build/.config
. This requires additional codegen cruft, which indicates that it's maybe finally time to split FreeBSD's codegen out from Linux's.The text was updated successfully, but these errors were encountered: