diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-09-19 17:16:53 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-09-19 21:36:33 +0800 |
commit | f611bde3f182e9a4befb48a0160d1831708aca67 (patch) | |
tree | cacf467246c85c491bf91b3fe46c448c5fdbab94 /test/parser/utils.c | |
parent | 4926cde5c97d09794ec33cca1321bb05a8d43304 (diff) | |
download | petitboot-f611bde3f182e9a4befb48a0160d1831708aca67.zip petitboot-f611bde3f182e9a4befb48a0160d1831708aca67.tar.gz |
discover: Remove unnecessary event passing
Currently, we pass "events" between the udev, user-event and
device-handler layers. These events all get sent through
device_handler_event, then de-multiplexed to an appropriate handler,
depending on their source.
Instead, just export relevant device_handler functions, and have the
(old) event sources call these functions directly.
This also means we can include a lot more of the device hander code in
the parser tests.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'test/parser/utils.c')
-rw-r--r-- | test/parser/utils.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/test/parser/utils.c b/test/parser/utils.c index 407ac80..de1dc13 100644 --- a/test/parser/utils.c +++ b/test/parser/utils.c @@ -41,25 +41,22 @@ static void __attribute__((destructor)) __cleanup_parsers(void) } static struct discover_device *test_create_device_simple( - struct discover_context *ctx) + struct parser_test *test) { static int dev_idx; char name[10]; sprintf(name, "__test%d", dev_idx++); - return test_create_device(ctx, name); + return test_create_device(test, name); } -struct discover_device *test_create_device(struct discover_context *ctx, +struct discover_device *test_create_device(struct parser_test *test, const char *name) { struct discover_device *dev; - dev = talloc_zero(ctx, struct discover_device); - dev->device = talloc_zero(dev, struct device); - - list_init(&dev->boot_options); + dev = discover_device_create(test->handler, name); dev->device->id = talloc_strdup(dev, name); dev->device_path = talloc_asprintf(dev, "/dev/%s", name); @@ -76,16 +73,20 @@ static struct discover_context *test_create_context(struct parser_test *test) assert(ctx); list_init(&ctx->boot_options); - ctx->device = test_create_device_simple(ctx); + ctx->device = test_create_device_simple(test); + device_handler_add_device(test->handler, ctx->device); return ctx; } +extern struct config *test_config_init(struct parser_test *test); + struct parser_test *test_init(void) { struct parser_test *test; test = talloc_zero(NULL, struct parser_test); + test->config = test_config_init(test); test->handler = device_handler_init(NULL, NULL, 0); test->ctx = test_create_context(test); @@ -175,9 +176,6 @@ void boot_option_resolve(struct device_handler *handler, resource_resolve(handler, opt->source, opt->icon); } -extern void device_handler_add_device(struct device_handler *handler, - struct discover_device *dev); - void test_hotplug_device(struct parser_test *test, struct discover_device *dev) { struct discover_boot_option *opt; |