From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=47437 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q8nwV-00082v-0e for qemu-devel@nongnu.org; Sun, 10 Apr 2011 02:16:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q8nwT-0007hP-Gl for qemu-devel@nongnu.org; Sun, 10 Apr 2011 02:16:14 -0400 Received: from moutng.kundenserver.de ([212.227.17.9]:57140) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q8nwT-0007g6-12 for qemu-devel@nongnu.org; Sun, 10 Apr 2011 02:16:13 -0400 Message-ID: <4DA14B25.5000202@mail.berlios.de> Date: Sun, 10 Apr 2011 08:16:05 +0200 From: Stefan Weil MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 1/3] cpu-common: Modify cpu_physical_memory_read and cpu_physical_memory_write References: <1301170017-12368-1-git-send-email-weil@mail.berlios.de> <20110409223704.GD11487@volta.aurel32.net> In-Reply-To: <20110409223704.GD11487@volta.aurel32.net> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: Blue Swirl , QEMU Developers Am 10.04.2011 00:37, schrieb Aurelien Jarno: > On Sat, Mar 26, 2011 at 09:06:55PM +0100, Stefan Weil wrote: >> A lot of calls don't operate on bytes but on words or on structured data. >> So instead of a pointer to uint8_t, a void pointer is the better choice. >> >> This allows removing many type casts. >> >> (Some very early implementations of memcpy used char pointers >> which were replaced by void pointers for the same reason). >> >> Cc: Blue Swirl >> Signed-off-by: Stefan Weil >> --- >> cpu-common.h | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/cpu-common.h b/cpu-common.h >> index ef4e8da..f44a2b0 100644 >> --- a/cpu-common.h >> +++ b/cpu-common.h >> @@ -68,12 +68,12 @@ void cpu_unregister_io_memory(int table_address); >> void cpu_physical_memory_rw(target_phys_addr_t addr, uint8_t *buf, >> int len, int is_write); >> static inline void cpu_physical_memory_read(target_phys_addr_t addr, >> - uint8_t *buf, int len) >> + void *buf, int len) >> { >> cpu_physical_memory_rw(addr, buf, len, 0); >> } >> static inline void cpu_physical_memory_write(target_phys_addr_t addr, >> - const uint8_t *buf, int len) >> + const void *buf, int len) >> { >> cpu_physical_memory_rw(addr, (uint8_t *)buf, len, 1); > > We might want to also do the change here, that is replacing (uint8_t *) > to (void *). Also instead of doing half the job, it would be nice to do > the same changes on cpu_physical_memory_rw(). Hello Aurelien, this type cast removes the const attribute from buf, so it is needed. And I did not change cpu_physical_memory_rw (and some more functions) because the gain is small: there are only 10 type casts used with cpu_physical_memory_rw, and at least some of them are needed because of const attributes. I don't like type casts which remove the const attribute, so there should be additional changes. But I don't think that it would be a good idea to mix them with this patch.