From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JjYMc-0005Rh-L7 for qemu-devel@nongnu.org; Wed, 09 Apr 2008 07:21:14 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JjYMc-0005Nt-05 for qemu-devel@nongnu.org; Wed, 09 Apr 2008 07:21:14 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JjYMa-0005NT-Oo for qemu-devel@nongnu.org; Wed, 09 Apr 2008 07:21:12 -0400 Received: from ns.suse.de ([195.135.220.2] helo=mx1.suse.de) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JjYMZ-0002mu-Kc for qemu-devel@nongnu.org; Wed, 09 Apr 2008 07:21:12 -0400 Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 6751E40A44 for ; Wed, 9 Apr 2008 13:21:08 +0200 (CEST) Message-ID: <47FCA558.3040108@suse.de> Date: Wed, 09 Apr 2008 13:15:36 +0200 From: Kevin Wolf MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] Remove osdep.c/qemu-img code duplication References: <47F3C508.8040002@suse.de> <20080408184936.GB11492@volta.aurel32.net> In-Reply-To: <20080408184936.GB11492@volta.aurel32.net> Content-Type: multipart/mixed; boundary="------------050706040306010207050205" Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------050706040306010207050205 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Aurelien Jarno schrieb: > On Wed, Apr 02, 2008 at 07:40:24PM +0200, Kevin Wolf wrote: >> There are few helper functions (e.g. qemu_malloc) in osdep.c which are >> not OS dependent at all. Even the first CVS commit comment for osdep.c >> says "most functions are generic in fact". They are duplicated in >> qemu-img because osdep.c isn't used there. >> >> This patch moves those functions to cutils.c and removes the duplicates >> from qemu-img. > > After applying this patch, some files in tcg/ starts to emit warning > about undefined function. Oops... Actually, there are quite a few more files which don't include the header but should now. And I found even a bit more of cutils.c code duplicated in tcg.c while checking the warnings. New patch is attached. Kevin --------------050706040306010207050205 Content-Type: text/x-patch; name="qemu-remove-duplication-v2.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="qemu-remove-duplication-v2.patch" Index: target-sh4/translate.c =================================================================== --- target-sh4/translate.c (Revision 4159) +++ target-sh4/translate.c (Arbeitskopie) @@ -32,6 +32,7 @@ #include "exec-all.h" #include "disas.h" #include "tcg-op.h" +#include "qemu-common.h" typedef struct DisasContext { struct TranslationBlock *tb; Index: target-cris/translate.c =================================================================== --- target-cris/translate.c (Revision 4159) +++ target-cris/translate.c (Arbeitskopie) @@ -32,6 +32,7 @@ #include "tcg-op.h" #include "helper.h" #include "crisv32-decode.h" +#include "qemu-common.h" #define CRIS_STATS 0 #if CRIS_STATS Index: Makefile.target =================================================================== --- Makefile.target (Revision 4159) +++ Makefile.target (Arbeitskopie) @@ -430,6 +430,7 @@ endif OBJS+= libqemu.a +OBJS+= ../libqemu_common.a # Note: this is a workaround. The real fix is to avoid compiling # cpu_signal_handler() in cpu-exec.c. Index: target-alpha/translate.c =================================================================== --- target-alpha/translate.c (Revision 4159) +++ target-alpha/translate.c (Arbeitskopie) @@ -26,6 +26,7 @@ #include "exec-all.h" #include "disas.h" #include "tcg-op.h" +#include "qemu-common.h" #define DO_SINGLE_STEP #define GENERATE_NOP Index: target-sparc/helper.c =================================================================== --- target-sparc/helper.c (Revision 4159) +++ target-sparc/helper.c (Arbeitskopie) @@ -27,6 +27,7 @@ #include "cpu.h" #include "exec-all.h" +#include "qemu-common.h" //#define DEBUG_MMU Index: target-m68k/helper.c =================================================================== --- target-m68k/helper.c (Revision 4159) +++ target-m68k/helper.c (Arbeitskopie) @@ -25,6 +25,7 @@ #include "config.h" #include "cpu.h" #include "exec-all.h" +#include "qemu-common.h" enum m68k_cpuid { M68K_CPUID_M5206, Index: linux-user/main.c =================================================================== --- linux-user/main.c (Revision 4159) +++ linux-user/main.c (Arbeitskopie) @@ -25,6 +25,7 @@ #include #include "qemu.h" +#include "qemu-common.h" #define DEBUG_LOGFILE "/tmp/qemu.log" Index: osdep.c =================================================================== --- osdep.c (Revision 4159) +++ osdep.c (Arbeitskopie) @@ -45,21 +45,6 @@ #include #endif -void *get_mmap_addr(unsigned long size) -{ - return NULL; -} - -void qemu_free(void *ptr) -{ - free(ptr); -} - -void *qemu_malloc(size_t size) -{ - return malloc(size); -} - #if defined(_WIN32) void *qemu_memalign(size_t alignment, size_t size) { @@ -217,26 +202,6 @@ #endif -void *qemu_mallocz(size_t size) -{ - void *ptr; - ptr = qemu_malloc(size); - if (!ptr) - return NULL; - memset(ptr, 0, size); - return ptr; -} - -char *qemu_strdup(const char *str) -{ - char *ptr; - ptr = qemu_malloc(strlen(str) + 1); - if (!ptr) - return NULL; - strcpy(ptr, str); - return ptr; -} - int qemu_create_pidfile(const char *filename) { char buffer[128]; Index: osdep.h =================================================================== --- osdep.h (Revision 4159) +++ osdep.h (Arbeitskopie) @@ -47,17 +47,10 @@ #define qemu_printf printf -void *qemu_malloc(size_t size); -void *qemu_mallocz(size_t size); -void qemu_free(void *ptr); -char *qemu_strdup(const char *str); - void *qemu_memalign(size_t alignment, size_t size); void *qemu_vmalloc(size_t size); void qemu_vfree(void *ptr); -void *get_mmap_addr(unsigned long size); - int qemu_create_pidfile(const char *filename); #ifdef _WIN32 Index: target-ppc/helper.c =================================================================== --- target-ppc/helper.c (Revision 4159) +++ target-ppc/helper.c (Arbeitskopie) @@ -28,6 +28,7 @@ #include "cpu.h" #include "exec-all.h" #include "helper_regs.h" +#include "qemu-common.h" //#define DEBUG_MMU //#define DEBUG_BATS Index: target-ppc/translate.c =================================================================== --- target-ppc/translate.c (Revision 4159) +++ target-ppc/translate.c (Arbeitskopie) @@ -27,6 +27,7 @@ #include "exec-all.h" #include "disas.h" #include "tcg-op.h" +#include "qemu-common.h" /* Include definitions for instructions classes and implementations flags */ //#define DO_SINGLE_STEP Index: cutils.c =================================================================== --- cutils.c (Revision 4159) +++ cutils.c (Arbeitskopie) @@ -95,3 +95,38 @@ t += 3600 * tm->tm_hour + 60 * tm->tm_min + tm->tm_sec; return t; } + +void *get_mmap_addr(unsigned long size) +{ + return NULL; +} + +void qemu_free(void *ptr) +{ + free(ptr); +} + +void *qemu_malloc(size_t size) +{ + return malloc(size); +} + +void *qemu_mallocz(size_t size) +{ + void *ptr; + ptr = qemu_malloc(size); + if (!ptr) + return NULL; + memset(ptr, 0, size); + return ptr; +} + +char *qemu_strdup(const char *str) +{ + char *ptr; + ptr = qemu_malloc(strlen(str) + 1); + if (!ptr) + return NULL; + strcpy(ptr, str); + return ptr; +} Index: target-mips/translate.c =================================================================== --- target-mips/translate.c (Revision 4159) +++ target-mips/translate.c (Arbeitskopie) @@ -30,6 +30,7 @@ #include "exec-all.h" #include "disas.h" #include "tcg-op.h" +#include "qemu-common.h" //#define MIPS_DEBUG_DISAS //#define MIPS_DEBUG_SIGN_EXTENSIONS Index: tcg/tcg.c =================================================================== --- tcg/tcg.c (Revision 4159) +++ tcg/tcg.c (Arbeitskopie) @@ -39,7 +39,7 @@ #endif #include "config.h" -#include "osdep.h" +#include "qemu-common.h" /* Note: the long term plan is to reduce the dependancies on the QEMU CPU definitions. Currently they are used for qemu_ld/st @@ -147,36 +147,6 @@ #include "tcg-target.c" -/* XXX: factorize */ -static void pstrcpy(char *buf, int buf_size, const char *str) -{ - int c; - char *q = buf; - - if (buf_size <= 0) - return; - - for(;;) { - c = *str++; - if (c == 0 || q >= buf + buf_size - 1) - break; - *q++ = c; - } - *q = '\0'; -} - -#if TCG_TARGET_REG_BITS == 32 -/* strcat and truncate. */ -static char *pstrcat(char *buf, int buf_size, const char *s) -{ - int len; - len = strlen(buf); - if (len < buf_size) - pstrcpy(buf + len, buf_size - len, s); - return buf; -} -#endif - /* pool based memory allocation */ void *tcg_malloc_internal(TCGContext *s, int size) { Index: qemu-common.h =================================================================== --- qemu-common.h (Revision 4159) +++ qemu-common.h (Arbeitskopie) @@ -86,6 +86,14 @@ int stristart(const char *str, const char *val, const char **ptr); time_t mktimegm(struct tm *tm); +void *qemu_malloc(size_t size); +void *qemu_mallocz(size_t size); +void qemu_free(void *ptr); +char *qemu_strdup(const char *str); + +void *get_mmap_addr(unsigned long size); + + /* Error handling. */ void hw_error(const char *fmt, ...) Index: exec.c =================================================================== --- exec.c (Revision 4159) +++ exec.c (Arbeitskopie) @@ -35,6 +35,7 @@ #include "cpu.h" #include "exec-all.h" +#include "qemu-common.h" #if defined(CONFIG_USER_ONLY) #include #endif Index: target-i386/helper2.c =================================================================== --- target-i386/helper2.c (Revision 4159) +++ target-i386/helper2.c (Arbeitskopie) @@ -28,6 +28,7 @@ #include "cpu.h" #include "exec-all.h" #include "svm.h" +#include "qemu-common.h" //#define DEBUG_MMU Index: qemu-img.c =================================================================== --- qemu-img.c (Revision 4159) +++ qemu-img.c (Arbeitskopie) @@ -30,41 +30,6 @@ #include #endif -void *get_mmap_addr(unsigned long size) -{ - return NULL; -} - -void qemu_free(void *ptr) -{ - free(ptr); -} - -void *qemu_malloc(size_t size) -{ - return malloc(size); -} - -void *qemu_mallocz(size_t size) -{ - void *ptr; - ptr = qemu_malloc(size); - if (!ptr) - return NULL; - memset(ptr, 0, size); - return ptr; -} - -char *qemu_strdup(const char *str) -{ - char *ptr; - ptr = qemu_malloc(strlen(str) + 1); - if (!ptr) - return NULL; - strcpy(ptr, str); - return ptr; -} - static void __attribute__((noreturn)) error(const char *fmt, ...) { va_list ap; Index: target-arm/helper.c =================================================================== --- target-arm/helper.c (Revision 4159) +++ target-arm/helper.c (Arbeitskopie) @@ -6,6 +6,7 @@ #include "exec-all.h" #include "gdbstub.h" #include "helpers.h" +#include "qemu-common.h" static uint32_t cortexa8_cp15_c0_c1[8] = { 0x1031, 0x11, 0x400, 0, 0x31100003, 0x20000000, 0x01202000, 0x11 }; Index: kqemu.c =================================================================== --- kqemu.c (Revision 4159) +++ kqemu.c (Arbeitskopie) @@ -40,6 +40,7 @@ #include "cpu.h" #include "exec-all.h" +#include "qemu-common.h" #ifdef USE_KQEMU --------------050706040306010207050205--