qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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).