Since commit
139c1837db ("meson: rename included C source files
to .c.inc"), QEMU standard procedure for included C files is to
use *.c.inc.
Besides, since commit
6a0057aa22 ("docs/devel: make a statement
about includes") this is documented as the Coding Style:
If you do use template header files they should be named with
the ``.c.inc`` or ``.h.inc`` suffix to make it clear they are
being included for expansion.
Therefore rename 'bti-crt.inc.c' as 'bti-crt.c.inc'.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <
20230606141252.95032-6-philmd@linaro.org>
* Branch target identification, basic notskip cases.
*/
-#include "bti-crt.inc.c"
+#include "bti-crt.c.inc"
static void skip2_sigill(int sig, siginfo_t *info, ucontext_t *uc)
{
* BTI vs PACIASP
*/
-#include "bti-crt.inc.c"
+#include "bti-crt.c.inc"
static void skip2_sigill(int sig, siginfo_t *info, ucontext_t *uc)
{
--- /dev/null
+/*
+ * Minimal user-environment for testing BTI.
+ *
+ * Normal libc is not (yet) built with BTI support enabled,
+ * and so could generate a BTI TRAP before ever reaching main.
+ */
+
+#include <stdlib.h>
+#include <signal.h>
+#include <ucontext.h>
+#include <asm/unistd.h>
+
+int main(void);
+
+void _start(void)
+{
+ exit(main());
+}
+
+void exit(int ret)
+{
+ register int x0 __asm__("x0") = ret;
+ register int x8 __asm__("x8") = __NR_exit;
+
+ asm volatile("svc #0" : : "r"(x0), "r"(x8));
+ __builtin_unreachable();
+}
+
+/*
+ * Irritatingly, the user API struct sigaction does not match the
+ * kernel API struct sigaction. So for simplicity, isolate the
+ * kernel ABI here, and make this act like signal.
+ */
+void signal_info(int sig, void (*fn)(int, siginfo_t *, ucontext_t *))
+{
+ struct kernel_sigaction {
+ void (*handler)(int, siginfo_t *, ucontext_t *);
+ unsigned long flags;
+ unsigned long restorer;
+ unsigned long mask;
+ } sa = { fn, SA_SIGINFO, 0, 0 };
+
+ register int x0 __asm__("x0") = sig;
+ register void *x1 __asm__("x1") = &sa;
+ register void *x2 __asm__("x2") = 0;
+ register int x3 __asm__("x3") = sizeof(unsigned long);
+ register int x8 __asm__("x8") = __NR_rt_sigaction;
+
+ asm volatile("svc #0"
+ : : "r"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x8) : "memory");
+}
+++ /dev/null
-/*
- * Minimal user-environment for testing BTI.
- *
- * Normal libc is not (yet) built with BTI support enabled,
- * and so could generate a BTI TRAP before ever reaching main.
- */
-
-#include <stdlib.h>
-#include <signal.h>
-#include <ucontext.h>
-#include <asm/unistd.h>
-
-int main(void);
-
-void _start(void)
-{
- exit(main());
-}
-
-void exit(int ret)
-{
- register int x0 __asm__("x0") = ret;
- register int x8 __asm__("x8") = __NR_exit;
-
- asm volatile("svc #0" : : "r"(x0), "r"(x8));
- __builtin_unreachable();
-}
-
-/*
- * Irritatingly, the user API struct sigaction does not match the
- * kernel API struct sigaction. So for simplicity, isolate the
- * kernel ABI here, and make this act like signal.
- */
-void signal_info(int sig, void (*fn)(int, siginfo_t *, ucontext_t *))
-{
- struct kernel_sigaction {
- void (*handler)(int, siginfo_t *, ucontext_t *);
- unsigned long flags;
- unsigned long restorer;
- unsigned long mask;
- } sa = { fn, SA_SIGINFO, 0, 0 };
-
- register int x0 __asm__("x0") = sig;
- register void *x1 __asm__("x1") = &sa;
- register void *x2 __asm__("x2") = 0;
- register int x3 __asm__("x3") = sizeof(unsigned long);
- register int x8 __asm__("x8") = __NR_rt_sigaction;
-
- asm volatile("svc #0"
- : : "r"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x8) : "memory");
-}