From: Yunhee Seo Date: Tue, 3 Sep 2024 02:33:25 +0000 (+0900) Subject: resource-manager: Add syscommon_resman_set_resource_attr_bool() X-Git-Tag: accepted/tizen/unified/20240912.084743~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d2adf5c5be8538e2baf848b923ddedc20a3dd2d3;p=platform%2Fcore%2Fsystem%2Flibsyscommon.git resource-manager: Add syscommon_resman_set_resource_attr_bool() To support set attribute boolean type, Below function is added - int syscommon_resman_set_resource_attr_bool(int resource_id, u_int64_t attr_id, bool data); Also, omitted boolean data type memory allocation is added. Because omitted code invokes create resource manager failure. Change-Id: Ic3e9bdf621d43d09c33c38a114e402a1e1ea417b Signed-off-by: Yunhee Seo --- diff --git a/include/libsyscommon/resource-manager.h b/include/libsyscommon/resource-manager.h index 9bea67a..96e2328 100644 --- a/include/libsyscommon/resource-manager.h +++ b/include/libsyscommon/resource-manager.h @@ -235,6 +235,7 @@ int syscommon_resman_set_resource_attr_int(int resource_id, u_int64_t attr_id, i int syscommon_resman_set_resource_attr_int64(int resource_id, u_int64_t attr_id, int64_t data); int syscommon_resman_set_resource_attr_uint(int resource_id, u_int64_t attr_id, u_int32_t data); int syscommon_resman_set_resource_attr_uint64(int resource_id, u_int64_t attr_id, u_int64_t data); +int syscommon_resman_set_resource_attr_bool(int resource_id, u_int64_t attr_id, bool data); int syscommon_resman_set_resource_attr_uint64_2(int resource_id, u_int64_t attr_id, u_int64_t data1, u_int64_t data2); int syscommon_resman_set_resource_attr_uint64_3(int resource_id, u_int64_t attr_id, diff --git a/src/resource-manager/resource-manager.c b/src/resource-manager/resource-manager.c index 683c7d4..a720d33 100644 --- a/src/resource-manager/resource-manager.c +++ b/src/resource-manager/resource-manager.c @@ -1502,6 +1502,7 @@ set_resource_attr_value_data(struct syscommon_resman_resource *resource, attr_value->data = *(void **) data; break; case SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN: + *((bool *) attr_value->data) = *(bool *) data; case SYSCOMMON_RESMAN_DATA_TYPE_NUM: default: return -EINVAL; @@ -1666,6 +1667,17 @@ syscommon_resman_set_resource_attr_uint64(int resource_id, u_int64_t attr_id, u_ return set_resource_attr_value_data(resource, attr_id, SYSCOMMON_RESMAN_DATA_TYPE_UINT64, &data, 1); } +int +syscommon_resman_set_resource_attr_bool(int resource_id, u_int64_t attr_id, bool data) +{ + struct syscommon_resman_resource *resource = find_resource(resource_id); + + if (!is_valid_resource(resource, INSTANCE_TYPE_NORMAL)) + return -EINVAL; + + return set_resource_attr_value_data(resource, attr_id, SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN, &data, 1); +} + int syscommon_resman_set_resource_attr_double(int resource_id, u_int64_t attr_id, double data) { @@ -1850,6 +1862,9 @@ set_resource_attr_interest(struct syscommon_resman_resource *resource, u_int64_t */ setter_only = true; break; + case SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN: + attr_value->data = calloc(1, sizeof(bool)); + break; default: ret = -EINVAL; goto err;