summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/arch/signal_arm64.go
diff options
context:
space:
mode:
authorBin Lu <bin.lu@arm.com>2020-01-29 04:33:06 -0500
committerBin Lu <bin.lu@arm.com>2020-02-20 07:46:30 -0500
commita369c88c0c4ece5239855000d28df045111c1be7 (patch)
treedc3715ab5bec6b970270aaf09b4be2a6dc1cc19f /pkg/sentry/arch/signal_arm64.go
parent4cb55a7a3b09c430fa2b7197fdc7b84b7e88a6ed (diff)
Lazy-fpsimd support patch series#1: add Arm64-fpsimd support to arch module
This patch defines the structures and adds the implementations for fpsimd initialization. Signed-off-by: Bin Lu <bin.lu@arm.com>
Diffstat (limited to 'pkg/sentry/arch/signal_arm64.go')
-rw-r--r--pkg/sentry/arch/signal_arm64.go19
1 files changed, 16 insertions, 3 deletions
diff --git a/pkg/sentry/arch/signal_arm64.go b/pkg/sentry/arch/signal_arm64.go
index 4f4cc46a8..28615f97f 100644
--- a/pkg/sentry/arch/signal_arm64.go
+++ b/pkg/sentry/arch/signal_arm64.go
@@ -30,14 +30,27 @@ type SignalContext64 struct {
Sp uint64
Pc uint64
Pstate uint64
- _pad [8]byte // __attribute__((__aligned__(16)))
- Reserved [4096]uint8
+ _pad [8]byte // __attribute__((__aligned__(16)))
+ Fpsimd64 FpsimdContext // size = 528
+ Reserved [3568]uint8
+}
+
+type aarch64Ctx struct {
+ Magic uint32
+ Size uint32
+}
+
+type FpsimdContext struct {
+ Head aarch64Ctx
+ Fpsr uint32
+ Fpcr uint32
+ Vregs [64]uint64 // actually [32]uint128
}
// UContext64 is equivalent to ucontext on arm64(arch/arm64/include/uapi/asm/ucontext.h).
type UContext64 struct {
Flags uint64
- Link *UContext64
+ Link uint64
Stack SignalStack
Sigset linux.SignalSet
// glibc uses a 1024-bit sigset_t