diff options
-rw-r--r-- | hw/core/clock.c | 15 | ||||
-rw-r--r-- | include/hw/clock.h | 13 |
2 files changed, 28 insertions, 0 deletions
diff --git a/hw/core/clock.c b/hw/core/clock.c index 7066282f7b..f866717a83 100644 --- a/hw/core/clock.c +++ b/hw/core/clock.c @@ -23,6 +23,21 @@ void clock_setup_canonical_path(Clock *clk) clk->canonical_path = object_get_canonical_path(OBJECT(clk)); } +Clock *clock_new(Object *parent, const char *name) +{ + Object *obj; + Clock *clk; + + obj = object_new(TYPE_CLOCK); + object_property_add_child(parent, name, obj); + object_unref(obj); + + clk = CLOCK(obj); + clock_setup_canonical_path(clk); + + return clk; +} + void clock_set_callback(Clock *clk, ClockCallback *cb, void *opaque) { clk->callback = cb; diff --git a/include/hw/clock.h b/include/hw/clock.h index d357594df9..cbc5e6ced1 100644 --- a/include/hw/clock.h +++ b/include/hw/clock.h @@ -91,6 +91,19 @@ extern const VMStateDescription vmstate_clock; void clock_setup_canonical_path(Clock *clk); /** + * clock_new: + * @parent: the clock parent + * @name: the clock object name + * + * Helper function to create a new clock and parent it to @parent. There is no + * need to call clock_setup_canonical_path on the returned clock as it is done + * by this function. + * + * @return the newly created clock + */ +Clock *clock_new(Object *parent, const char *name); + +/** * clock_set_callback: * @clk: the clock to register the callback into * @cb: the callback function |