qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v4 11/21] tests/tcg/cris: cleanup sys.c


From: Alex Bennée
Subject: [Qemu-devel] [PATCH v4 11/21] tests/tcg/cris: cleanup sys.c
Date: Tue, 12 Mar 2019 15:59:37 +0000

This is a mini library which provides helper functions to the tests
which are all currently written in assembly. A bunch of minor changes:

      - removed libc related headers (fedora-cris-cross is a system compiler)
      - re-organised the functions to avoid forward declarations
      - cleaned up brace usage
      - restored exit for _fail case
      - removed tabs and fixed indentation

Signed-off-by: Alex Bennée <address@hidden>
---
 tests/tcg/cris/sys.c | 100 ++++++++++++++++++++++---------------------
 1 file changed, 52 insertions(+), 48 deletions(-)

diff --git a/tests/tcg/cris/sys.c b/tests/tcg/cris/sys.c
index 21f08c0747..1644eecc33 100644
--- a/tests/tcg/cris/sys.c
+++ b/tests/tcg/cris/sys.c
@@ -1,59 +1,63 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-static inline int mystrlen(char *s) {
-       int i = 0;
-       while (s[i])
-               i++;
-       return i;
+/*
+ * Helper functions for CRIS system tests
+ *
+ * There is no libc and only a limited set of headers.
+ */
+
+#include <stddef.h>
+
+void exit(int status)
+{
+    register unsigned int callno asm ("r9") = 1; /* NR_exit */
+
+    asm volatile ("break 13\n"
+                  : /* no outputs */
+                  : "r" (callno)
+                  : "memory");
+    while (1) {
+        /* do nothing */
+    };
 }
 
-void pass(void) {
-       char s[] = "passed.\n";
-       write (1, s, sizeof (s) - 1);
-       exit (0);
-}
+size_t write(int fd, const void *buf, size_t count)
+{
+    register unsigned int callno asm ("r9") = 4; /* NR_write */
+    register unsigned int r10 asm ("r10") = fd;
+    register const void *r11 asm ("r11") = buf;
+    register size_t r12 asm ("r12") = count;
+    register unsigned int r asm ("r10");
 
-void _fail(char *reason) {
-       char s[] = "\nfailed: ";
-       int len = mystrlen(reason);
-       write (1, s, sizeof (s) - 1);
-       write (1, reason, len);
-       write (1, "\n", 1);
-//     exit (1);
-}
+    asm volatile ("break 13\n"
+                  : "=r" (r)
+                  : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
+                  : "memory");
 
-void *memset (void *s, int c, size_t n) {
-       char *p = s;
-       int i;
-       for (i = 0; i < n; i++)
-               p[i] = c;
-       return p;
+    return r;
 }
 
-void exit (int status) {
-       register unsigned int callno asm ("r9") = 1; /* NR_exit */
-
-       asm volatile ("break 13\n"
-                     :
-                     : "r" (callno)
-                     : "memory" );
-       while(1)
-               ;
+static inline int mystrlen(char *s)
+{
+    int i = 0;
+    while (s[i]) {
+        i++;
+    }
+    return i;
 }
 
-ssize_t write (int fd, const void *buf, size_t count) {
-       register unsigned int callno asm ("r9") = 4; /* NR_write */
-       register unsigned int r10 asm ("r10") = fd;
-       register const void *r11 asm ("r11") = buf;
-       register size_t r12 asm ("r12") = count;
-       register unsigned int r asm ("r10");
 
-       asm volatile ("break 13\n"
-            : "=r" (r)
-            : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
-            : "memory");
+void pass(void)
+{
+    char s[] = "passed.\n";
+    write(1, s, sizeof(s) - 1);
+    exit(0);
+}
 
-       return r;
+void _fail(char *reason)
+{
+    char s[] = "\nfailed: ";
+    int len = mystrlen(reason);
+    write(1, s, sizeof(s) - 1);
+    write(1, reason, len);
+    write(1, "\n", 1);
+    exit(1);
 }
-- 
2.20.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]