summaryrefslogtreecommitdiff
path: root/pc-bios/s390-ccw/libc.h
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2017-07-12 14:49:43 +0200
committerChristian Borntraeger <borntraeger@de.ibm.com>2017-07-14 12:29:48 +0200
commit90806fec99d6cf32f627b66be3757901091dc7e9 (patch)
tree73c605420773ae92e040989e7f6efcde5d2bd157 /pc-bios/s390-ccw/libc.h
parentb5f5a3afb635109fa6c1d03a9c6e2653adde09a1 (diff)
downloadqemu-90806fec99d6cf32f627b66be3757901091dc7e9.tar.gz
pc-bios/s390-ccw: Move libc functions to separate header
The upcoming netboot code will use the libc from SLOF. To be able to still use s390-ccw.h there, the libc related functions in this header have to be moved to a different location. And while we're at it, remove the duplicate memcpy() function from sclp.c. Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1499863793-18627-2-git-send-email-thuth@redhat.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'pc-bios/s390-ccw/libc.h')
-rw-r--r--pc-bios/s390-ccw/libc.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/pc-bios/s390-ccw/libc.h b/pc-bios/s390-ccw/libc.h
new file mode 100644
index 0000000000..0142ea8e7b
--- /dev/null
+++ b/pc-bios/s390-ccw/libc.h
@@ -0,0 +1,45 @@
+/*
+ * libc-style definitions and functions
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#ifndef S390_CCW_LIBC_H
+#define S390_CCW_LIBC_H
+
+typedef long size_t;
+typedef int bool;
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long long uint64_t;
+
+static inline void *memset(void *s, int c, size_t n)
+{
+ int i;
+ unsigned char *p = s;
+
+ for (i = 0; i < n; i++) {
+ p[i] = c;
+ }
+
+ return s;
+}
+
+static inline void *memcpy(void *s1, const void *s2, size_t n)
+{
+ uint8_t *dest = s1;
+ const uint8_t *src = s2;
+ int i;
+
+ for (i = 0; i < n; i++) {
+ dest[i] = src[i];
+ }
+
+ return s1;
+}
+
+#endif