]> git.proxmox.com Git - mirror_qemu.git/blame - pc-bios/s390-ccw/libc.h
vl.c: allocate TYPE_MACHINE list once during bootup
[mirror_qemu.git] / pc-bios / s390-ccw / libc.h
CommitLineData
90806fec
TH
1/*
2 * libc-style definitions and functions
3 *
fc0e2087
CW
4 * Copyright (c) 2013 Alexander Graf <agraf@suse.de>
5 *
90806fec
TH
6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 */
11
12#ifndef S390_CCW_LIBC_H
13#define S390_CCW_LIBC_H
14
e4f86962 15typedef unsigned long size_t;
90806fec
TH
16typedef int bool;
17typedef unsigned char uint8_t;
18typedef unsigned short uint16_t;
19typedef unsigned int uint32_t;
20typedef unsigned long long uint64_t;
21
22static inline void *memset(void *s, int c, size_t n)
23{
fc0e2087 24 size_t i;
90806fec
TH
25 unsigned char *p = s;
26
27 for (i = 0; i < n; i++) {
28 p[i] = c;
29 }
30
31 return s;
32}
33
34static inline void *memcpy(void *s1, const void *s2, size_t n)
35{
36 uint8_t *dest = s1;
37 const uint8_t *src = s2;
fc0e2087 38 size_t i;
90806fec
TH
39
40 for (i = 0; i < n; i++) {
41 dest[i] = src[i];
42 }
43
44 return s1;
45}
46
fc0e2087
CW
47static inline int memcmp(const void *s1, const void *s2, size_t n)
48{
49 size_t i;
50 const uint8_t *p1 = s1, *p2 = s2;
51
52 for (i = 0; i < n; i++) {
53 if (p1[i] != p2[i]) {
54 return p1[i] > p2[i] ? 1 : -1;
55 }
56 }
57
58 return 0;
59}
60
61static inline size_t strlen(const char *str)
62{
63 size_t i;
64 for (i = 0; *str; i++) {
65 str++;
66 }
67 return i;
68}
69
70static inline int isdigit(int c)
71{
72 return (c >= '0') && (c <= '9');
73}
74
75uint64_t atoui(const char *str);
76char *uitoa(uint64_t num, char *str, size_t len);
77
90806fec 78#endif