From patchwork Wed Jun 11 14:01:28 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 4336331 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 7A3979F357 for ; Wed, 11 Jun 2014 14:02:15 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5486920218 for ; Wed, 11 Jun 2014 14:02:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2FDE6201FE for ; Wed, 11 Jun 2014 14:02:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932281AbaFKOCA (ORCPT ); Wed, 11 Jun 2014 10:02:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1424 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932235AbaFKOB7 (ORCPT ); Wed, 11 Jun 2014 10:01:59 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s5BE1vNG020991 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 11 Jun 2014 10:01:57 -0400 Received: from dhcp-27-201.brq.redhat.com (dhcp-1-235.brq.redhat.com [10.34.1.235]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s5BE1Zbd014365; Wed, 11 Jun 2014 10:01:56 -0400 From: Andrew Jones To: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org Cc: christoffer.dall@linaro.org, pbonzini@redhat.com Subject: [PATCH v5 13/19] libcflat: clean up libcflat.h and add string.h Date: Wed, 11 Jun 2014 16:01:28 +0200 Message-Id: <1402495294-30737-14-git-send-email-drjones@redhat.com> In-Reply-To: <1402495294-30737-1-git-send-email-drjones@redhat.com> References: <1402495294-30737-1-git-send-email-drjones@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Use libgcc's stddef.h and stdint.h, and then remove the redundant defines from libcflat.h. Also separate out the string function declarations into a new file string.h. These changes have no affect on code including libcflat.h, but are needed in order to compile an unmodified libfdt for kvm-unit-tests using an arm cross-compiler. While at it, add strcpy. Signed-off-by: Andrew Jones Acked-by: Christoffer Dall --- lib/libcflat.h | 55 +++++++++++++++++++++---------------------------------- lib/string.c | 6 ++++++ lib/string.h | 15 +++++++++++++++ 3 files changed, 42 insertions(+), 34 deletions(-) create mode 100644 lib/string.h diff --git a/lib/libcflat.h b/lib/libcflat.h index 5939cee54890b..404560cd103e5 100644 --- a/lib/libcflat.h +++ b/lib/libcflat.h @@ -21,60 +21,47 @@ #define __LIBCFLAT_H #include +#include +#include +#include "string.h" #define __unused __attribute__((__unused__)) #define xstr(s) xxstr(s) #define xxstr(s) #s -typedef unsigned char u8; -typedef signed char s8; -typedef unsigned short u16; -typedef signed short s16; -typedef unsigned u32; -typedef signed s32; -typedef unsigned long ulong; -typedef unsigned long long u64; -typedef signed long long s64; -typedef unsigned long size_t; -typedef _Bool bool; - -#define true 1 +typedef uint8_t u8; +typedef int8_t s8; +typedef uint16_t u16; +typedef int16_t s16; +typedef uint32_t u32; +typedef int32_t s32; +typedef uint64_t u64; +typedef int64_t s64; +typedef unsigned long ulong; + +typedef _Bool bool; #define false 0 +#define true 1 +extern void puts(const char *s); extern void exit(int code); -extern unsigned long strlen(const char *buf); -extern char *strcat(char *dest, const char *src); -extern int strcmp(const char *a, const char *b); -extern char *strchr(const char *s, int c); - extern int printf(const char *fmt, ...); extern int snprintf(char *buf, int size, const char *fmt, ...); extern int vsnprintf(char *buf, int size, const char *fmt, va_list va); +extern long atol(const char *ptr); -extern void puts(const char *s); - -extern void *memset(void *s, int c, size_t n); -extern void *memcpy(void *dest, const void *src, size_t n); -extern int memcmp(const void *s1, const void *s2, size_t n); -extern void *memmove(void *dest, const void *src, size_t n); -extern void *memchr(const void *s, int c, size_t n); +void report(const char *msg_fmt, bool pass, ...); +int report_summary(void); -extern long atol(const char *ptr); -#define ARRAY_SIZE(_a) (sizeof(_a)/sizeof((_a)[0])) +#define ARRAY_SIZE(_a) (sizeof(_a)/sizeof((_a)[0])) -#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER) #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) -#define NULL ((void *)0UL) - -void report(const char *msg_fmt, bool pass, ...); -int report_summary(void); - -#define abort() exit(64) /* 129 exit status from qemu */ +#define abort() exit(64) /* 129 exit status from qemu */ #define assert(cond) \ do { \ if (!(cond)) \ diff --git a/lib/string.c b/lib/string.c index fe90c8b1289f2..026f50252287c 100644 --- a/lib/string.c +++ b/lib/string.c @@ -20,6 +20,12 @@ char *strcat(char *dest, const char *src) return dest; } +char *strcpy(char *dest, const char *src) +{ + *dest = 0; + return strcat(dest, src); +} + int strcmp(const char *a, const char *b) { while (*a == *b) { diff --git a/lib/string.h b/lib/string.h new file mode 100644 index 0000000000000..dbab368b1b9e4 --- /dev/null +++ b/lib/string.h @@ -0,0 +1,15 @@ +#ifndef __STRING_H +#define __STRING_H + +extern unsigned long strlen(const char *buf); +extern char *strcat(char *dest, const char *src); +extern char *strcpy(char *dest, const char *src); +extern int strcmp(const char *a, const char *b); +extern char *strchr(const char *s, int c); +extern void *memset(void *s, int c, size_t n); +extern void *memcpy(void *dest, const void *src, size_t n); +extern int memcmp(const void *s1, const void *s2, size_t n); +extern void *memmove(void *dest, const void *src, size_t n); +extern void *memchr(const void *s, int c, size_t n); + +#endif /* _STRING_H */