[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v2 11/16] tests/tcg/cris: cleanup sys.c
From: |
Alex Bennée |
Subject: |
[Qemu-arm] [PATCH v2 11/16] tests/tcg/cris: cleanup sys.c |
Date: |
Thu, 28 Feb 2019 20:25:32 +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/bare/sys.c | 96 +++++++++++++++++++--------------------
tests/tcg/cris/libc/sys.c | 23 ++++++----
2 files changed, 62 insertions(+), 57 deletions(-)
diff --git a/tests/tcg/cris/bare/sys.c b/tests/tcg/cris/bare/sys.c
index 21f08c0747..aa342335d6 100644
--- a/tests/tcg/cris/bare/sys.c
+++ b/tests/tcg/cris/bare/sys.c
@@ -1,59 +1,59 @@
-#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);
}
-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);
}
diff --git a/tests/tcg/cris/libc/sys.c b/tests/tcg/cris/libc/sys.c
index b8e759eee3..6ec4e77b22 100644
--- a/tests/tcg/cris/libc/sys.c
+++ b/tests/tcg/cris/libc/sys.c
@@ -3,16 +3,18 @@
*/
-void exit (int status) {
+void exit(int status)
+{
register unsigned int callno asm ("r9") = 1; /* NR_exit */
asm volatile ("break 13\n"
:
: "r" (callno)
- : "memory" );
+ : "memory");
while(1);
}
-ssize_t write (int fd, const void *buf, size_t count) {
+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;
@@ -27,29 +29,32 @@ ssize_t write (int fd, const void *buf, size_t count) {
return r;
}
-static inline int mystrlen(char *s) {
+static inline int mystrlen(char *s)
+{
int i = 0;
while (s[i])
i++;
return i;
}
-void pass(void) {
+void pass(void)
+{
char s[] = "passed.\n";
- write (1, s, sizeof (s) - 1);
+ write (1, s, sizeof(s) - 1);
exit (0);
}
-void _fail(char *reason) {
+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);
}
-void *memset (void *s, int c, size_t n) {
+void *memset(void *s, int c, size_t n)
+{
char *p = s;
int i;
for (i = 0; i < n; i++)
--
2.20.1
[Qemu-arm] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 06/16] tests/docker: add debian-xtensa-cross image, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 09/16] tests/docker: add fedora-cris-cross compilers, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 12/16] tests/tcg/cris: comment out the ccs test, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 15/16] .travis.yml: separate softfloat from check-tcg, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 11/16] tests/tcg/cris: cleanup sys.c,
Alex Bennée <=
[Qemu-arm] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 14/16] tests/tcg: enable cris base user-mode tests, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 13/16] tests/tcg/cris: align mul operations, Alex Bennée, 2019/02/28
[Qemu-arm] [PATCH v2 16/16] .travis.yml: add softmmu check-tcg tests, Alex Bennée, 2019/02/28
Re: [Qemu-arm] [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm, no-reply, 2019/02/28