* [Qemu-devel] [6412] linux-user: add qemu_realloc() implementation to unbreak the build ( Gerd Hoffman)
@ 2009-01-23 15:02 Anthony Liguori
2009-01-23 15:38 ` Laurent Desnogues
0 siblings, 1 reply; 5+ messages in thread
From: Anthony Liguori @ 2009-01-23 15:02 UTC (permalink / raw)
To: qemu-devel
Revision: 6412
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6412
Author: aliguori
Date: 2009-01-23 15:02:20 +0000 (Fri, 23 Jan 2009)
Log Message:
-----------
linux-user: add qemu_realloc() implementation to unbreak the build (Gerd Hoffman)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Modified Paths:
--------------
trunk/linux-user/mmap.c
Modified: trunk/linux-user/mmap.c
===================================================================
--- trunk/linux-user/mmap.c 2009-01-22 22:09:55 UTC (rev 6411)
+++ trunk/linux-user/mmap.c 2009-01-23 15:02:20 UTC (rev 6412)
@@ -123,6 +123,19 @@
munmap(p, *p);
}
+void *qemu_realloc(void *ptr, size_t size)
+{
+ size_t old_size, copy;
+ void *new_ptr;
+
+ old_size = *(size_t *)((char *)ptr - 16);
+ copy = old_size < size ? old_size : size;
+ new_ptr = qemu_malloc(size);
+ memcpy(new_ptr, ptr, copy);
+ qemu_free(ptr);
+ return new_ptr;
+}
+
/* NOTE: all the constants are the HOST ones, but addresses are target. */
int target_mprotect(abi_ulong start, abi_ulong len, int prot)
{
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [6412] linux-user: add qemu_realloc() implementation to unbreak the build ( Gerd Hoffman)
2009-01-23 15:02 [Qemu-devel] [6412] linux-user: add qemu_realloc() implementation to unbreak the build ( Gerd Hoffman) Anthony Liguori
@ 2009-01-23 15:38 ` Laurent Desnogues
2009-01-23 16:35 ` Anthony Liguori
0 siblings, 1 reply; 5+ messages in thread
From: Laurent Desnogues @ 2009-01-23 15:38 UTC (permalink / raw)
To: qemu-devel
On Fri, Jan 23, 2009 at 4:02 PM, Anthony Liguori <anthony@codemonkey.ws> wrote:
> Revision: 6412
> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6412
> Author: aliguori
> Date: 2009-01-23 15:02:20 +0000 (Fri, 23 Jan 2009)
>
> Log Message:
> -----------
> linux-user: add qemu_realloc() implementation to unbreak the build (Gerd Hoffman)
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
>
> Modified Paths:
> --------------
> trunk/linux-user/mmap.c
>
> Modified: trunk/linux-user/mmap.c
> ===================================================================
> --- trunk/linux-user/mmap.c 2009-01-22 22:09:55 UTC (rev 6411)
> +++ trunk/linux-user/mmap.c 2009-01-23 15:02:20 UTC (rev 6412)
> @@ -123,6 +123,19 @@
> munmap(p, *p);
> }
>
> +void *qemu_realloc(void *ptr, size_t size)
> +{
> + size_t old_size, copy;
> + void *new_ptr;
> +
> + old_size = *(size_t *)((char *)ptr - 16);
> + copy = old_size < size ? old_size : size;
> + new_ptr = qemu_malloc(size);
> + memcpy(new_ptr, ptr, copy);
> + qemu_free(ptr);
> + return new_ptr;
> +}
Is it really the correct fix? The original error comes from the fact
we compile qemu_iovec_* in cutils.c. Do we really need these
iovec functions for user-mode?
Laurent
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [6412] linux-user: add qemu_realloc() implementation to unbreak the build ( Gerd Hoffman)
2009-01-23 15:38 ` Laurent Desnogues
@ 2009-01-23 16:35 ` Anthony Liguori
2009-01-23 17:15 ` Laurent Desnogues
2009-01-23 18:52 ` Paul Brook
0 siblings, 2 replies; 5+ messages in thread
From: Anthony Liguori @ 2009-01-23 16:35 UTC (permalink / raw)
To: qemu-devel
Laurent Desnogues wrote:
> On Fri, Jan 23, 2009 at 4:02 PM, Anthony Liguori <anthony@codemonkey.ws> wrote:
>
>> Revision: 6412
>> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6412
>> Author: aliguori
>> Date: 2009-01-23 15:02:20 +0000 (Fri, 23 Jan 2009)
>>
>> Log Message:
>> -----------
>> linux-user: add qemu_realloc() implementation to unbreak the build (Gerd Hoffman)
>>
>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
>>
>> Modified Paths:
>> --------------
>> trunk/linux-user/mmap.c
>>
>> Modified: trunk/linux-user/mmap.c
>> ===================================================================
>> --- trunk/linux-user/mmap.c 2009-01-22 22:09:55 UTC (rev 6411)
>> +++ trunk/linux-user/mmap.c 2009-01-23 15:02:20 UTC (rev 6412)
>> @@ -123,6 +123,19 @@
>> munmap(p, *p);
>> }
>>
>> +void *qemu_realloc(void *ptr, size_t size)
>> +{
>> + size_t old_size, copy;
>> + void *new_ptr;
>> +
>> + old_size = *(size_t *)((char *)ptr - 16);
>> + copy = old_size < size ? old_size : size;
>> + new_ptr = qemu_malloc(size);
>> + memcpy(new_ptr, ptr, copy);
>> + qemu_free(ptr);
>> + return new_ptr;
>> +}
>>
>
> Is it really the correct fix? The original error comes from the fact
> we compile qemu_iovec_* in cutils.c. Do we really need these
> iovec functions for user-mode?
>
I think the better question is, why isn't linux-user sharing
qemu_malloc/qemu_realloc implementations with the system emulation?
Regards,
Anthony Liguori
> Laurent
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [6412] linux-user: add qemu_realloc() implementation to unbreak the build ( Gerd Hoffman)
2009-01-23 16:35 ` Anthony Liguori
@ 2009-01-23 17:15 ` Laurent Desnogues
2009-01-23 18:52 ` Paul Brook
1 sibling, 0 replies; 5+ messages in thread
From: Laurent Desnogues @ 2009-01-23 17:15 UTC (permalink / raw)
To: qemu-devel
On Fri, Jan 23, 2009 at 5:35 PM, Anthony Liguori <anthony@codemonkey.ws> wrote:
> Laurent Desnogues wrote:
>>
>> On Fri, Jan 23, 2009 at 4:02 PM, Anthony Liguori <anthony@codemonkey.ws>
>> wrote:
>>
>>>
>>> Revision: 6412
>>> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6412
>>> Author: aliguori
>>> Date: 2009-01-23 15:02:20 +0000 (Fri, 23 Jan 2009)
>>>
>>> Log Message:
>>> -----------
>>> linux-user: add qemu_realloc() implementation to unbreak the build (Gerd
>>> Hoffman)
>>>
>>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>>> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
>>>
>>> Modified Paths:
>>> --------------
>>> trunk/linux-user/mmap.c
>>>
>>> Modified: trunk/linux-user/mmap.c
>>> ===================================================================
>>> --- trunk/linux-user/mmap.c 2009-01-22 22:09:55 UTC (rev 6411)
>>> +++ trunk/linux-user/mmap.c 2009-01-23 15:02:20 UTC (rev 6412)
>>> @@ -123,6 +123,19 @@
>>> munmap(p, *p);
>>> }
>>>
>>> +void *qemu_realloc(void *ptr, size_t size)
>>> +{
>>> + size_t old_size, copy;
>>> + void *new_ptr;
>>> +
>>> + old_size = *(size_t *)((char *)ptr - 16);
>>> + copy = old_size < size ? old_size : size;
>>> + new_ptr = qemu_malloc(size);
>>> + memcpy(new_ptr, ptr, copy);
>>> + qemu_free(ptr);
>>> + return new_ptr;
>>> +}
>>>
>>
>> Is it really the correct fix? The original error comes from the fact
>> we compile qemu_iovec_* in cutils.c. Do we really need these
>> iovec functions for user-mode?
>>
>
> I think the better question is, why isn't linux-user sharing
> qemu_malloc/qemu_realloc implementations with the system emulation?
Well that's just *another* question and both yours and mine are
valid, I guess :-) OTOH one is easier to answer.
Laurent
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [6412] linux-user: add qemu_realloc() implementation to unbreak the build ( Gerd Hoffman)
2009-01-23 16:35 ` Anthony Liguori
2009-01-23 17:15 ` Laurent Desnogues
@ 2009-01-23 18:52 ` Paul Brook
1 sibling, 0 replies; 5+ messages in thread
From: Paul Brook @ 2009-01-23 18:52 UTC (permalink / raw)
To: qemu-devel
> > Is it really the correct fix? The original error comes from the fact
> > we compile qemu_iovec_* in cutils.c. Do we really need these
> > iovec functions for user-mode?
>
> I think the better question is, why isn't linux-user sharing
> qemu_malloc/qemu_realloc implementations with the system emulation?
Because userspace emulation has special requirements, and need to keep track
of address space usage. You can't just blindly use malloc/mmap.
Paul
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-01-23 18:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-23 15:02 [Qemu-devel] [6412] linux-user: add qemu_realloc() implementation to unbreak the build ( Gerd Hoffman) Anthony Liguori
2009-01-23 15:38 ` Laurent Desnogues
2009-01-23 16:35 ` Anthony Liguori
2009-01-23 17:15 ` Laurent Desnogues
2009-01-23 18:52 ` Paul Brook
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).