aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcaiyinyu <caiyinyu@loongson.cn>2024-10-26 16:33:07 +0800
committercaiyinyu <caiyinyu@loongson.cn>2024-11-01 10:41:20 +0800
commit93ced0e1b83ec837f3de70c751180d225fe3f8dc (patch)
tree556127d70f7ed4d465019c208e3cb676e7ad2553
parent3d24fb25efd957f564e0cda8bb278a54db28665f (diff)
downloadglibc-93ced0e1b83ec837f3de70c751180d225fe3f8dc.zip
glibc-93ced0e1b83ec837f3de70c751180d225fe3f8dc.tar.gz
glibc-93ced0e1b83ec837f3de70c751180d225fe3f8dc.tar.bz2
LoongArch: Add RSEQ_SIG in rseq.h.
Signed-off-by: caiyinyu <caiyinyu@loongson.cn>
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/rseq.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h b/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h
new file mode 100644
index 0000000..7468a05
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h
@@ -0,0 +1,36 @@
+/* Restartable Sequences Linux LoongArch architecture header.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RSEQ_H
+# error "Never use <bits/rseq.h> directly; include <sys/rseq.h> instead."
+#endif
+
+/* RSEQ_SIG is a signature required before each abort handler code.
+
+ It is a 32-bit value that maps to actual architecture code compiled
+ into applications and libraries. It needs to be defined for each
+ architecture. When choosing this value, it needs to be taken into
+ account that generating invalid instructions may have ill effects on
+ tools like objdump, and may also have impact on the CPU speculative
+ execution efficiency in some cases.
+
+ RSEQ_SIG uses the following break instruction:
+
+ 0x002a0010 break 0x10
+*/
+
+#define RSEQ_SIG 0x002a0010