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;
 }

Reply via email to