resource-manager: Add syscommon_resman_get_resource_attr_bool() 80/311980/1
authorYunhee Seo <yuni.seo@samsung.com>
Fri, 31 May 2024 06:29:07 +0000 (15:29 +0900)
committerYunhee Seo <yuni.seo@samsung.com>
Fri, 31 May 2024 07:26:30 +0000 (16:26 +0900)
To support get attribute boolean type,
syscommon_resman_get_resource_attr_bool() is added.

Change-Id: I43e25e5fa8945ac6ea4deb42fef40272a677b93c
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
include/libsyscommon/resource-manager.h
src/resource-manager/resource-manager.c

index efac317edc70699e7645a805c8a8795bc183740a..609b8e9dab4faf325aca35a3bf8699b055403057 100644 (file)
@@ -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);
index 2e6eecffdb67a5f75a17bd9a02681be689b8823b..0a2e39bdc347f060969f204bb0075f071221fcf4 100644 (file)
@@ -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)
 {