From 0032be820b1b72abd7d40fc1cd5e30d59a9e7fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Fri, 4 May 2018 20:25:55 +0200 Subject: [PATCH] kernel/x86: asm offsets for the extended syscall table. the x86_64 compat syscall entry needs size and offset of parameters to handle them correctly to the syscall function. struct extended_syscall_info and struct syscall_parameter_info provide parameter count, size and offsets. Change-Id: I7e5c7b6e19e757b28b43c3b3419b7071fae321f8 --- src/system/kernel/arch/x86/asm_offsets.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/system/kernel/arch/x86/asm_offsets.cpp b/src/system/kernel/arch/x86/asm_offsets.cpp index 270f8fc813..fbb276e7f2 100644 --- a/src/system/kernel/arch/x86/asm_offsets.cpp +++ b/src/system/kernel/arch/x86/asm_offsets.cpp @@ -80,6 +80,18 @@ dummy() DEFINE_OFFSET_MACRO(SYSCALL_INFO, syscall_info, function); DEFINE_OFFSET_MACRO(SYSCALL_INFO, syscall_info, parameter_size); + // struct extended_syscall_info + DEFINE_SIZEOF_MACRO(EXTENDED_SYSCALL_INFO, extended_syscall_info); + DEFINE_OFFSET_MACRO(EXTENDED_SYSCALL_INFO, extended_syscall_info, + parameter_count); + DEFINE_OFFSET_MACRO(EXTENDED_SYSCALL_INFO, extended_syscall_info, + parameters); + + // struct syscall_parameter_info + DEFINE_SIZEOF_MACRO(SYSCALL_PARAMETER_INFO, syscall_parameter_info); + DEFINE_OFFSET_MACRO(SYSCALL_PARAMETER_INFO, syscall_parameter_info, + used_size); + // struct signal_frame_data DEFINE_SIZEOF_MACRO(SIGNAL_FRAME_DATA, signal_frame_data); DEFINE_OFFSET_MACRO(SIGNAL_FRAME_DATA, signal_frame_data, info);