diff options
Diffstat (limited to 'gdb/features')
-rw-r--r-- | gdb/features/Makefile | 4 | ||||
-rw-r--r-- | gdb/features/aarch64-gcs-linux.c | 21 | ||||
-rw-r--r-- | gdb/features/aarch64-gcs-linux.xml | 18 | ||||
-rw-r--r-- | gdb/features/aarch64-gcs.c | 14 | ||||
-rw-r--r-- | gdb/features/aarch64-gcs.xml | 11 | ||||
-rw-r--r-- | gdb/features/i386/32bit-ssp.c | 14 | ||||
-rw-r--r-- | gdb/features/i386/32bit-ssp.xml | 11 | ||||
-rw-r--r-- | gdb/features/i386/64bit-ssp.c | 14 | ||||
-rw-r--r-- | gdb/features/i386/64bit-ssp.xml | 11 |
9 files changed, 118 insertions, 0 deletions
diff --git a/gdb/features/Makefile b/gdb/features/Makefile index 750508a..d17c349 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -204,6 +204,8 @@ FEATURE_XMLFILES = aarch64-core.xml \ aarch64-fpu.xml \ aarch64-pauth.xml \ aarch64-mte.xml \ + aarch64-gcs.xml \ + aarch64-gcs-linux.xml \ arc/v1-core.xml \ arc/v1-aux.xml \ arc/v2-core.xml \ @@ -226,6 +228,7 @@ FEATURE_XMLFILES = aarch64-core.xml \ i386/32bit-avx.xml \ i386/32bit-avx512.xml \ i386/32bit-segments.xml \ + i386/32bit-ssp.xml \ i386/64bit-avx512.xml \ i386/64bit-core.xml \ i386/64bit-segments.xml \ @@ -233,6 +236,7 @@ FEATURE_XMLFILES = aarch64-core.xml \ i386/64bit-linux.xml \ i386/64bit-sse.xml \ i386/pkeys.xml \ + i386/64bit-ssp.xml \ i386/x32-core.xml \ loongarch/base32.xml \ loongarch/base64.xml \ diff --git a/gdb/features/aarch64-gcs-linux.c b/gdb/features/aarch64-gcs-linux.c new file mode 100644 index 0000000..6b0d25b --- /dev/null +++ b/gdb/features/aarch64-gcs-linux.c @@ -0,0 +1,21 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: aarch64-gcs-linux.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_aarch64_gcs_linux (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.gcs.linux"); + tdesc_type_with_fields *type_with_fields; + type_with_fields = tdesc_create_flags (feature, "features_flags", 8); + tdesc_add_flag (type_with_fields, 0, "PR_SHADOW_STACK_ENABLE"); + tdesc_add_flag (type_with_fields, 1, "PR_SHADOW_STACK_WRITE"); + tdesc_add_flag (type_with_fields, 2, "PR_SHADOW_STACK_PUSH"); + + tdesc_create_reg (feature, "gcs_features_enabled", regnum++, 1, "system", 64, "features_flags"); + tdesc_create_reg (feature, "gcs_features_locked", regnum++, 1, "system", 64, "features_flags"); + return regnum; +} diff --git a/gdb/features/aarch64-gcs-linux.xml b/gdb/features/aarch64-gcs-linux.xml new file mode 100644 index 0000000..8d9d2ce --- /dev/null +++ b/gdb/features/aarch64-gcs-linux.xml @@ -0,0 +1,18 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2025 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. --> + +<!DOCTYPE feature SYSTEM "gdb-target.dtd"> +<feature name="org.gnu.gdb.aarch64.gcs.linux"> + <flags id="features_flags" size="8"> + <field name="PR_SHADOW_STACK_ENABLE" start="0" end="0"/> + <field name="PR_SHADOW_STACK_WRITE" start="1" end="1"/> + <field name="PR_SHADOW_STACK_PUSH" start="2" end="2"/> + </flags> + + <reg name="gcs_features_enabled" bitsize="64" type="features_flags" group="system"/> + <reg name="gcs_features_locked" bitsize="64" type="features_flags" group="system"/> +</feature> diff --git a/gdb/features/aarch64-gcs.c b/gdb/features/aarch64-gcs.c new file mode 100644 index 0000000..2b2caf2 --- /dev/null +++ b/gdb/features/aarch64-gcs.c @@ -0,0 +1,14 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: aarch64-gcs.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_aarch64_gcs (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.gcs"); + tdesc_create_reg (feature, "gcspr", regnum++, 1, "system", 64, "data_ptr"); + return regnum; +} diff --git a/gdb/features/aarch64-gcs.xml b/gdb/features/aarch64-gcs.xml new file mode 100644 index 0000000..bbee5e0 --- /dev/null +++ b/gdb/features/aarch64-gcs.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2025 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. --> + +<!DOCTYPE feature SYSTEM "gdb-target.dtd"> +<feature name="org.gnu.gdb.aarch64.gcs"> + <reg name="gcspr" bitsize="64" type="data_ptr" group="system"/> +</feature> diff --git a/gdb/features/i386/32bit-ssp.c b/gdb/features/i386/32bit-ssp.c new file mode 100644 index 0000000..991bae3 --- /dev/null +++ b/gdb/features/i386/32bit-ssp.c @@ -0,0 +1,14 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: 32bit-ssp.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_i386_32bit_ssp (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pl3_ssp"); + tdesc_create_reg (feature, "pl3_ssp", regnum++, 1, NULL, 32, "data_ptr"); + return regnum; +} diff --git a/gdb/features/i386/32bit-ssp.xml b/gdb/features/i386/32bit-ssp.xml new file mode 100644 index 0000000..d17e700 --- /dev/null +++ b/gdb/features/i386/32bit-ssp.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. --> + +<!DOCTYPE feature SYSTEM "gdb-target.dtd"> +<feature name="org.gnu.gdb.i386.pl3_ssp"> + <reg name="pl3_ssp" bitsize="32" type="data_ptr"/> +</feature> diff --git a/gdb/features/i386/64bit-ssp.c b/gdb/features/i386/64bit-ssp.c new file mode 100644 index 0000000..5468099 --- /dev/null +++ b/gdb/features/i386/64bit-ssp.c @@ -0,0 +1,14 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: 64bit-ssp.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_i386_64bit_ssp (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pl3_ssp"); + tdesc_create_reg (feature, "pl3_ssp", regnum++, 1, NULL, 64, "data_ptr"); + return regnum; +} diff --git a/gdb/features/i386/64bit-ssp.xml b/gdb/features/i386/64bit-ssp.xml new file mode 100644 index 0000000..a0688d0 --- /dev/null +++ b/gdb/features/i386/64bit-ssp.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. --> + +<!DOCTYPE feature SYSTEM "gdb-target.dtd"> +<feature name="org.gnu.gdb.i386.pl3_ssp"> + <reg name="pl3_ssp" bitsize="64" type="data_ptr"/> +</feature> |