1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-08 17:42:12 +03:00

aarch64: Add GCS support for setcontext

Userspace ucontext needs to store GCSPR, it does not have to be
compatible with the kernel ucontext. For now we use the linux
struct gcs_context layout but only use the gcspr field from it.

Similar implementation to the longjmp code, supports switching GCS
if the target GCS is capped, and unwinding a continuous GCS to a
previous state.

Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
Szabolcs Nagy
2023-02-24 16:29:32 +00:00
committed by Yury Khrustalev
parent 1cf59c2603
commit 9885d13b66
4 changed files with 83 additions and 9 deletions

View File

@@ -43,3 +43,8 @@
#define oX21 (oX0 + 21*8)
#define oFP (oX0 + 29*8)
#define oLR (oX0 + 30*8)
/* Use kernel layout for saving GCSPR in ucontext. */
#define GCS_MAGIC 0x47435300
#define GCS_CONTEXT_SIZE 32
#define oGCSPR 8