From: Yunhee Seo Date: Fri, 31 May 2024 06:29:07 +0000 (+0900) Subject: resource-manager: Add syscommon_resman_get_resource_attr_bool() X-Git-Tag: accepted/tizen/unified/20240618.060027~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e735650ad5fc230f021de2d9cdf93fbfd20f83f;p=platform%2Fcore%2Fsystem%2Flibsyscommon.git resource-manager: Add syscommon_resman_get_resource_attr_bool() To support get attribute boolean type, syscommon_resman_get_resource_attr_bool() is added. Change-Id: I43e25e5fa8945ac6ea4deb42fef40272a677b93c Signed-off-by: Yunhee Seo --- diff --git a/include/libsyscommon/resource-manager.h b/include/libsyscommon/resource-manager.h index c038c4a..9bea67a 100644 --- a/include/libsyscommon/resource-manager.h +++ b/include/libsyscommon/resource-manager.h @@ -220,6 +220,7 @@ int syscommon_resman_get_resource_attr_double(int resource_id, u_int64_t attr_id int syscommon_resman_get_resource_attr_string(int resource_id, u_int64_t attr_id, char *data); int syscommon_resman_get_resource_attr_array(int resource_id, u_int64_t attr_id, struct syscommon_resman_array_value **data); int syscommon_resman_get_resource_attr_ptr(int resource_id, u_int64_t attr_id, void **data); +int syscommon_resman_get_resource_attr_bool(int resource_id, u_int64_t attr_id, bool *data); int syscommon_resman_monitor_get_resource_attr_int(int resource_id, u_int64_t attr_id, int32_t *data); int syscommon_resman_monitor_get_resource_attr_int64(int resource_id, u_int64_t attr_id, int64_t *data); diff --git a/src/resource-manager/resource-manager.c b/src/resource-manager/resource-manager.c index b106cff..683c7d4 100644 --- a/src/resource-manager/resource-manager.c +++ b/src/resource-manager/resource-manager.c @@ -1142,6 +1142,8 @@ get_resource_attr_value_data(struct syscommon_resman_resource *resource, u_int64 *(void **) data = attr_value->data; break; case SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN: + *(bool *) data = *((bool *) attr_value->data); + break; case SYSCOMMON_RESMAN_DATA_TYPE_NUM: default: return -EINVAL; @@ -1340,6 +1342,25 @@ syscommon_resman_get_resource_attr_ptr(int resource_id, u_int64_t attr_id, void return get_resource_attr_value_data(resource, attr_id, SYSCOMMON_RESMAN_DATA_TYPE_PTR, data); } +int +syscommon_resman_get_resource_attr_bool(int resource_id, u_int64_t attr_id, bool *data) +{ + struct syscommon_resman_resource *resource = find_resource(resource_id); + int ret; + + if (!is_valid_resource(resource, INSTANCE_TYPE_NORMAL)) + return -EINVAL; + + if (!check_attr_validate(resource, attr_id, SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN)) + return -EINVAL; + + ret = update_resource_attr(resource, attr_id); + if (ret < 0) + return ret; + + return get_resource_attr_value_data(resource, attr_id, SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN, data); +} + int syscommon_resman_monitor_get_resource_attr_int(int resource_id, u_int64_t attr_id, int32_t *data) {