This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 649436af398 arch/risc-v: Use __asm__ and __volatile__ in
<arch/syscall.h>
649436af398 is described below
commit 649436af398952175d3264aca8fd407870afbaa7
Author: Marco Casaroli <[email protected]>
AuthorDate: Wed Nov 4 01:26:35 2026 +0100
arch/risc-v: Use __asm__ and __volatile__ in <arch/syscall.h>
The system call functions of <arch/syscall.h> use the GNU keyword asm. A
program includes this header through <sys/syscall.h>. In a strict ISO C
mode (-std=c99, -std=c11) asm is not a keyword, so the program does not
compile.
Use __asm__ and __volatile__, as the arm64 header does. The generated
code does not change.
Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Marco Casaroli <[email protected]>
---
arch/risc-v/include/syscall.h | 88 +++++++++++++++++++++----------------------
1 file changed, 44 insertions(+), 44 deletions(-)
diff --git a/arch/risc-v/include/syscall.h b/arch/risc-v/include/syscall.h
index e9f7d6495b2..ec49ff18bde 100644
--- a/arch/risc-v/include/syscall.h
+++ b/arch/risc-v/include/syscall.h
@@ -173,16 +173,16 @@ uintptr_t sys_call6(unsigned int nbr, uintptr_t parm1,
uintptr_t parm2,
static inline uintptr_t sys_call0(unsigned int nbr)
{
- register long r0 asm("a0") = (long)(nbr);
+ register long r0 __asm__("a0") = (long)(nbr);
- asm volatile
+ __asm__ __volatile__
(
RISCV_SYSCALL_INSN
:: "r"(r0)
: RISCV_ECALL_CLOBBERS
);
- asm volatile("nop" : "=r"(r0));
+ __asm__ __volatile__("nop" : "=r"(r0));
return r0;
}
@@ -197,17 +197,17 @@ static inline uintptr_t sys_call0(unsigned int nbr)
static inline uintptr_t sys_call1(unsigned int nbr, uintptr_t parm1)
{
- register long r0 asm("a0") = (long)(nbr);
- register long r1 asm("a1") = (long)(parm1);
+ register long r0 __asm__("a0") = (long)(nbr);
+ register long r1 __asm__("a1") = (long)(parm1);
- asm volatile
+ __asm__ __volatile__
(
RISCV_SYSCALL_INSN
:: "r"(r0), "r"(r1)
: RISCV_ECALL_CLOBBERS
);
- asm volatile("nop" : "=r"(r0));
+ __asm__ __volatile__("nop" : "=r"(r0));
return r0;
}
@@ -223,18 +223,18 @@ static inline uintptr_t sys_call1(unsigned int nbr,
uintptr_t parm1)
static inline uintptr_t sys_call2(unsigned int nbr, uintptr_t parm1,
uintptr_t parm2)
{
- register long r0 asm("a0") = (long)(nbr);
- register long r1 asm("a1") = (long)(parm1);
- register long r2 asm("a2") = (long)(parm2);
+ register long r0 __asm__("a0") = (long)(nbr);
+ register long r1 __asm__("a1") = (long)(parm1);
+ register long r2 __asm__("a2") = (long)(parm2);
- asm volatile
+ __asm__ __volatile__
(
RISCV_SYSCALL_INSN
:: "r"(r0), "r"(r1), "r"(r2)
: RISCV_ECALL_CLOBBERS
);
- asm volatile("nop" : "=r"(r0));
+ __asm__ __volatile__("nop" : "=r"(r0));
return r0;
}
@@ -250,19 +250,19 @@ static inline uintptr_t sys_call2(unsigned int nbr,
uintptr_t parm1,
static inline uintptr_t sys_call3(unsigned int nbr, uintptr_t parm1,
uintptr_t parm2, uintptr_t parm3)
{
- register long r0 asm("a0") = (long)(nbr);
- register long r1 asm("a1") = (long)(parm1);
- register long r2 asm("a2") = (long)(parm2);
- register long r3 asm("a3") = (long)(parm3);
+ register long r0 __asm__("a0") = (long)(nbr);
+ register long r1 __asm__("a1") = (long)(parm1);
+ register long r2 __asm__("a2") = (long)(parm2);
+ register long r3 __asm__("a3") = (long)(parm3);
- asm volatile
+ __asm__ __volatile__
(
RISCV_SYSCALL_INSN
:: "r"(r0), "r"(r1), "r"(r2), "r"(r3)
: RISCV_ECALL_CLOBBERS
);
- asm volatile("nop" : "=r"(r0));
+ __asm__ __volatile__("nop" : "=r"(r0));
return r0;
}
@@ -279,20 +279,20 @@ static inline uintptr_t sys_call4(unsigned int nbr,
uintptr_t parm1,
uintptr_t parm2, uintptr_t parm3,
uintptr_t parm4)
{
- register long r0 asm("a0") = (long)(nbr);
- register long r1 asm("a1") = (long)(parm1);
- register long r2 asm("a2") = (long)(parm2);
- register long r3 asm("a3") = (long)(parm3);
- register long r4 asm("a4") = (long)(parm4);
+ register long r0 __asm__("a0") = (long)(nbr);
+ register long r1 __asm__("a1") = (long)(parm1);
+ register long r2 __asm__("a2") = (long)(parm2);
+ register long r3 __asm__("a3") = (long)(parm3);
+ register long r4 __asm__("a4") = (long)(parm4);
- asm volatile
+ __asm__ __volatile__
(
RISCV_SYSCALL_INSN
:: "r"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4)
: RISCV_ECALL_CLOBBERS
);
- asm volatile("nop" : "=r"(r0));
+ __asm__ __volatile__("nop" : "=r"(r0));
return r0;
}
@@ -309,21 +309,21 @@ static inline uintptr_t sys_call5(unsigned int nbr,
uintptr_t parm1,
uintptr_t parm2, uintptr_t parm3,
uintptr_t parm4, uintptr_t parm5)
{
- register long r0 asm("a0") = (long)(nbr);
- register long r1 asm("a1") = (long)(parm1);
- register long r2 asm("a2") = (long)(parm2);
- register long r3 asm("a3") = (long)(parm3);
- register long r4 asm("a4") = (long)(parm4);
- register long r5 asm("a5") = (long)(parm5);
-
- asm volatile
+ register long r0 __asm__("a0") = (long)(nbr);
+ register long r1 __asm__("a1") = (long)(parm1);
+ register long r2 __asm__("a2") = (long)(parm2);
+ register long r3 __asm__("a3") = (long)(parm3);
+ register long r4 __asm__("a4") = (long)(parm4);
+ register long r5 __asm__("a5") = (long)(parm5);
+
+ __asm__ __volatile__
(
RISCV_SYSCALL_INSN
:: "r"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4), "r"(r5)
: RISCV_ECALL_CLOBBERS
);
- asm volatile("nop" : "=r"(r0));
+ __asm__ __volatile__("nop" : "=r"(r0));
return r0;
}
@@ -341,22 +341,22 @@ static inline uintptr_t sys_call6(unsigned int nbr,
uintptr_t parm1,
uintptr_t parm4, uintptr_t parm5,
uintptr_t parm6)
{
- register long r0 asm("a0") = (long)(nbr);
- register long r1 asm("a1") = (long)(parm1);
- register long r2 asm("a2") = (long)(parm2);
- register long r3 asm("a3") = (long)(parm3);
- register long r4 asm("a4") = (long)(parm4);
- register long r5 asm("a5") = (long)(parm5);
- register long r6 asm("a6") = (long)(parm6);
-
- asm volatile
+ register long r0 __asm__("a0") = (long)(nbr);
+ register long r1 __asm__("a1") = (long)(parm1);
+ register long r2 __asm__("a2") = (long)(parm2);
+ register long r3 __asm__("a3") = (long)(parm3);
+ register long r4 __asm__("a4") = (long)(parm4);
+ register long r5 __asm__("a5") = (long)(parm5);
+ register long r6 __asm__("a6") = (long)(parm6);
+
+ __asm__ __volatile__
(
RISCV_SYSCALL_INSN
:: "r"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4), "r"(r5), "r"(r6)
: RISCV_ECALL_CLOBBERS
);
- asm volatile("nop" : "=r"(r0));
+ __asm__ __volatile__("nop" : "=r"(r0));
return r0;
}