Revision 71193433

b/device_tree.c
304 304
    g_free(dupname);
305 305
    return retval;
306 306
}
307

  
308
void qemu_devtree_dumpdtb(void *fdt, int size)
309
{
310
    QemuOpts *machine_opts;
311

  
312
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
313
    if (machine_opts) {
314
        const char *dumpdtb = qemu_opt_get(machine_opts, "dumpdtb");
315
        if (dumpdtb) {
316
            /* Dump the dtb to a file and quit */
317
            FILE *f = fopen(dumpdtb, "wb");
318
            size_t len;
319
            len = fwrite(fdt, size, 1, f);
320
            fclose(f);
321
            if (len != size) {
322
                exit(1);
323
            }
324
            exit(0);
325
        }
326
    }
327

  
328
}
b/device_tree.h
49 49
                             sizeof(qdt_tmp));                                \
50 50
    } while (0)
51 51

  
52
void qemu_devtree_dumpdtb(void *fdt, int size);
53

  
52 54
#endif /* __DEVICE_TREE_H__ */
b/hw/ppc/e500.c
139 139
            0x0, 0x10000,
140 140
        };
141 141
    QemuOpts *machine_opts;
142
    const char *dumpdtb = NULL;
143 142
    const char *dtb_file = NULL;
144 143

  
145 144
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
146 145
    if (machine_opts) {
147
        dumpdtb = qemu_opt_get(machine_opts, "dumpdtb");
148 146
        dtb_file = qemu_opt_get(machine_opts, "dtb");
149 147
        toplevel_compat = qemu_opt_get(machine_opts, "dt_compatible");
150 148
    }
......
334 332
    }
335 333

  
336 334
done:
337
    if (dumpdtb) {
338
        /* Dump the dtb to a file and quit */
339
        FILE *f = fopen(dumpdtb, "wb");
340
        size_t len;
341
        len = fwrite(fdt, fdt_size, 1, f);
342
        fclose(f);
343
        if (len != fdt_size) {
344
            exit(1);
345
        }
346
        exit(0);
347
    }
348

  
335
    qemu_devtree_dumpdtb(fdt, fdt_size);
349 336
    ret = rom_add_blob_fixed(BINARY_DEVICE_TREE_FILE, fdt, fdt_size, addr);
350 337
    if (ret < 0) {
351 338
        goto out;

Also available in: Unified diff