Revision 036f7166 hw/qdev-properties.c
b/hw/qdev-properties.c | ||
---|---|---|
402 | 402 |
|
403 | 403 |
/* --- pointer --- */ |
404 | 404 |
|
405 |
static int print_ptr(DeviceState *dev, Property *prop, char *dest, size_t len) |
|
406 |
{ |
|
407 |
void **ptr = qdev_get_prop_ptr(dev, prop); |
|
408 |
return snprintf(dest, len, "<%p>", *ptr); |
|
409 |
} |
|
410 |
|
|
405 |
/* Not a proper property, just for dirty hacks. TODO Remove it! */ |
|
411 | 406 |
PropertyInfo qdev_prop_ptr = { |
412 | 407 |
.name = "ptr", |
413 | 408 |
.type = PROP_TYPE_PTR, |
414 | 409 |
.size = sizeof(void*), |
415 |
.print = print_ptr, |
|
416 | 410 |
}; |
417 | 411 |
|
418 | 412 |
/* --- mac address --- */ |
... | ... | |
547 | 541 |
int ret; |
548 | 542 |
|
549 | 543 |
prop = qdev_prop_find(dev, name); |
550 |
if (!prop) { |
|
544 |
/* |
|
545 |
* TODO Properties without a parse method are just for dirty |
|
546 |
* hacks. qdev_prop_ptr is the only such PropertyInfo. It's |
|
547 |
* marked for removal. The test !prop->info->parse should be |
|
548 |
* removed along with it. |
|
549 |
*/ |
|
550 |
if (!prop || !prop->info->parse) { |
|
551 | 551 |
fprintf(stderr, "property \"%s.%s\" not found\n", |
552 | 552 |
dev->info->name, name); |
553 | 553 |
return -1; |
554 | 554 |
} |
555 |
if (!prop->info->parse) { |
|
556 |
fprintf(stderr, "property \"%s.%s\" has no parser\n", |
|
557 |
dev->info->name, name); |
|
558 |
return -1; |
|
559 |
} |
|
560 | 555 |
ret = prop->info->parse(dev, prop, value); |
561 | 556 |
if (ret < 0) { |
562 | 557 |
switch (ret) { |
Also available in: Unified diff