From: Dongwoo Lee Date: Thu, 10 Feb 2022 11:42:14 +0000 (+0900) Subject: util: resource: Make resource has its own driver X-Git-Tag: accepted/tizen/unified/20220302.131908~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bb6dab4b977e3e22fd32b82205118b2209e2af4b;p=platform%2Fcore%2Fsystem%2Fpass.git util: resource: Make resource has its own driver Change-Id: I5355dd10289ecd51546b7db26ee769439c17a734 Signed-off-by: Dongwoo Lee --- diff --git a/include/util/resource.h b/include/util/resource.h index c996f7d..f6a18f9 100644 --- a/include/util/resource.h +++ b/include/util/resource.h @@ -95,6 +95,7 @@ struct resource_device { struct resource { char *name; + const struct resource_driver *driver; int type; int index; void *user_data; diff --git a/src/util/resource.c b/src/util/resource.c index c71c10b..25def15 100644 --- a/src/util/resource.c +++ b/src/util/resource.c @@ -144,19 +144,11 @@ static void do_delete_resource(struct resource *resource) void delete_resource(struct resource *resource) { - const struct resource_driver *driver = NULL; - if (!resource) return; - driver = find_resource_driver(resource->type); - if (!driver) { - _E("failed to find driver for resource type: %d\n", resource->type); - return; - } - - if (driver->ops.exit) - driver->ops.exit(resource); + if (resource->driver && resource->driver->ops.exit) + resource->driver->ops.exit(resource); do_delete_resource(resource); } @@ -195,6 +187,7 @@ struct resource *create_resource(int resource_type, int resource_index, resource->name = g_strdup(driver->name); resource->index = resource_index; } + resource->driver = driver; resource->user_data = user_data; resource->num_attrs = driver->num_attrs; resource->attrs = driver->attrs;