aboutsummaryrefslogtreecommitdiff
path: root/sys/x86/linux
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2023-06-08 22:33:26 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2023-06-08 22:33:26 +0000
commitcbbac560911521c0ded3e06e713107176855fae4 (patch)
treeb8386848cd9a01814011c860592bc335ec35624d /sys/x86/linux
parent920184ed6e43b19f4b71253b55fd3ba66a7f0bb2 (diff)
Diffstat (limited to 'sys/x86/linux')
-rw-r--r--sys/x86/linux/linux_x86_sigframe.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/sys/x86/linux/linux_x86_sigframe.h b/sys/x86/linux/linux_x86_sigframe.h
index e5687069651f..c748073a3457 100644
--- a/sys/x86/linux/linux_x86_sigframe.h
+++ b/sys/x86/linux/linux_x86_sigframe.h
@@ -35,6 +35,20 @@
#ifndef _X86_LINUX_SIGFRAME_H_
#define _X86_LINUX_SIGFRAME_H_
+#define LINUX_UC_FP_XSTATE 0x1
+
+#define LINUX_FP_XSTATE_MAGIC1 0x46505853U
+#define LINUX_FP_XSTATE_MAGIC2 0x46505845U
+#define LINUX_FP_XSTATE_MAGIC2_SIZE sizeof(uint32_t)
+
+struct l_fpx_sw_bytes {
+ uint32_t magic1;
+ uint32_t extended_size;
+ uint64_t xfeatures;
+ uint32_t xstate_size;
+ uint32_t padding[7];
+};
+
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
/* The Linux sigcontext, pretty much a standard 386 trapframe. */
@@ -140,7 +154,11 @@ struct l_fpstate {
u_int32_t mxcsr_mask;
u_int8_t st[8][16];
u_int8_t xmm[16][16];
- u_int32_t reserved2[24];
+ u_int32_t reserved2[12];
+ union {
+ u_int32_t reserved3[12];
+ struct l_fpx_sw_bytes sw_reserved;
+ };
} __aligned(16);
struct l_sigcontext {