qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] check for available room when formatting OpenFi


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] check for available room when formatting OpenFirmware device path
Date: Mon, 23 Jul 2012 13:39:16 +0100

On 23 July 2012 13:34, Peter Maydell <address@hidden> wrote:
> On 23 July 2012 12:33, Laszlo Ersek <address@hidden> wrote:
>>
>> Signed-off-by: Laszlo Ersek <address@hidden>
>
> I think it would be much nicer to just rewrite qdev_get_fw_dev_path
> so we weren't trying to fill the path into a fixed string buffer
> at all. Here is an entirely untested implementation:
>
> char *qdev_get_fw_dev_path(DeviceState *dev)
> {
>     char *path;
>     char **strarray;
>     int depth = 0;
>     DeviceState *d = dev;
>     for (d = dev; d && d->parent_bus; d = d->parent_bus->parent) {
>         depth++;
>     }
>     depth++;
>     strarray = g_new(char*, depth);
>     for (d = dev; d && d->parent_bus; d = d->parent_bus->parent) {
>         depth--;
>         strarray[depth] = bus_get_fw_dev_path(dev->parent_bus, dev);

"d" not "dev" here and in the line below, obviously. I said it was
untested :-)

>         if (!strarray[depth]) {
>             strarray[depth] = g_strdup(object_get_typename(OBJECT(dev)));
>         }
>     }
>     strarray[0] = g_strdup("");
>     path = g_strjoinv("/", strarray);
>     g_strfreev(strarray);
>     return path;
> }

-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]