resource: Operate based on resource id 92/285192/1 accepted/tizen/7.0/unified/20221209.015651
authorYoungjae Cho <y0.cho@samsung.com>
Mon, 7 Nov 2022 07:29:01 +0000 (16:29 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Wed, 7 Dec 2022 08:25:07 +0000 (17:25 +0900)
The resource-manager of libsyscommon has been revamped to work based on
resource id instead of actual instance. Therefore the pass doesn't need
to manage actual resource instance of libsyscommon anymore. Instead, the
only thing to do is managing id of resource instance, which can be used
in any place to which resource instance could have been used.

Change-Id: I5b47eb6ad9b5743fdb4a71f21cfe32af83300957
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
16 files changed:
include/monitor/monitor.h
src/monitor/monitor-command.c
src/monitor/monitor-thread.c
src/monitor/monitor.c
src/monitor/request-handler.c
src/resource/resource-battery.c
src/resource/resource-bus.c
src/resource/resource-cpu.c
src/resource/resource-disk.c
src/resource/resource-display.c
src/resource/resource-gpu.c
src/resource/resource-memory.c
src/resource/resource-network.c
src/resource/resource-process-group.c
src/resource/resource-process.c
src/resource/resource-system.c

index 036fa63a4b43f661aee9d70a6313d94299344c40..f5d94f0b9683e3b248b26c341e4bff3eec8ea74b 100644 (file)
 #ifndef __MONITOR_H__
 #define __MONITOR_H__
 
-#include <libsyscommon/resource-manager.h>
+#include <glib.h>
 #include <util/thread.h>
 #include <util/queue.h>
+#include <util/common.h>
 
 #define MONITOR_POLLING_DURATION 100
 
 struct monitor_command {
-       struct syscommon_resman_resource *resource;
+       int resource_id;
        volatile bool done;
        mtx_t lock;
        cnd_t signal;
@@ -49,7 +50,7 @@ void monitor_thread_exit(struct monitor *monitor);
 void monitor_command_wait_done(struct monitor_command *cmd);
 void monitor_command_submit(struct monitor_command *cmd);
 void monitor_command_submit_sync(struct monitor_command *cmd);
-void monitor_command_bind_resource(struct monitor_command *cmd, struct syscommon_resman_resource *res);
+void monitor_command_bind_resource(struct monitor_command *cmd, int resource_id);
 void monitor_command_unbind_resource(struct monitor_command *cmd);
 int monitor_command_init(struct monitor_command **cmd);
 void monitor_command_exit(struct monitor_command *cmd);
index a9894e1082759b0b1165dd0be2fa045cd5ef38a3..b9b9a0854a42068a9866ed424fa5c5b380bfd12c 100644 (file)
@@ -55,24 +55,24 @@ void monitor_command_submit_sync(struct monitor_command *cmd)
        _monitor_command_wait_done(cmd, MONITOR_POLLING_DURATION);
 }
 
-void monitor_command_bind_resource(struct monitor_command *cmd, struct syscommon_resman_resource *res)
+void monitor_command_bind_resource(struct monitor_command *cmd, int resource_id)
 {
-       if (cmd->resource) {
+       if (cmd->resource_id >= 0) {
                _E("resource is already bound\n");
                return;
        }
 
-       cmd->resource = res;
+       cmd->resource_id = resource_id;
 }
 
 void monitor_command_unbind_resource(struct monitor_command *cmd)
 {
-       if (!cmd->resource) {
+       if (cmd->resource_id < 0) {
                _E("resource is not bound yet\n");
                return;
        }
 
-       cmd->resource = NULL;
+       cmd->resource_id = -1;
 }
 
 int monitor_command_init(struct monitor_command **cmd)
@@ -85,6 +85,7 @@ int monitor_command_init(struct monitor_command **cmd)
 
        mtx_init(&new_cmd->lock, mtx_plain);
        cnd_init(&new_cmd->signal);
+       new_cmd->resource_id = -1;
        new_cmd->done = false;
 
        *cmd = new_cmd;
@@ -97,7 +98,7 @@ void monitor_command_exit(struct monitor_command *cmd)
        cnd_destroy(&cmd->signal);
        mtx_destroy(&cmd->lock);
 
-       if (cmd->resource)
+       if (cmd->resource_id >= 0)
                _W("resource is not unbound before destroying request\n");
 
        free(cmd);
index 132e224369e5e75ab4b07ffa999f9ff8c6d4b907..55b4bfeeb378e2639b20e5052e1a1dcc429c899f 100644 (file)
@@ -19,6 +19,8 @@
 #include <util/log.h>
 #include <monitor/monitor.h>
 
+#include <libsyscommon/resource-manager.h>
+
 thread_local int empty_counter = 0;
 
 static int monitor_func(void *data, void **result)
@@ -38,7 +40,7 @@ new_command:
                return THREAD_RETURN_CONTINUE;
        }
 
-       syscommon_resman_update_resource_attrs(cmd->resource);
+       syscommon_resman_update_resource_attrs(cmd->resource_id);
 
        cmd->done = true;
        smp_wmb();
index 60a2c93b27639487a2e36c6f585704e366c8ae7b..d90237bc61f5d109b8b2244aa73fc3d85d7f5fdb 100644 (file)
@@ -24,6 +24,8 @@
 #include <util/gdbus-util.h>
 #include <monitor/monitor.h>
 
+#include <libsyscommon/resource-manager.h>
+
 static struct monitor g_monitor;
 static gboolean g_debug_mode;
 
index d503ab63aa5032df2fa315a426f93cbc91b82061..e31b2c6c9b915f1dee1c11b60584c3a8c816c01b 100644 (file)
@@ -40,6 +40,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/un.h>
+#include <sys/stat.h>
 #include <netinet/in.h>
 #include <sys/time.h>
 #include <assert.h>
@@ -59,13 +60,10 @@ struct request_client {
 
 struct resource_instance {
        int id;
-       struct syscommon_resman_resource *res;
-
        int64_t ts_start;
        int64_t ts_end;
 };
 
-static int g_resource_id;
 static bool g_request_server_run;
 static struct thread *g_server_thread;
 
@@ -89,23 +87,6 @@ get_resource_instance_by_id(struct request_client *client, int resource_id)
        return g_hash_table_lookup(client->resource_table, GINT_TO_POINTER(resource_id));
 }
 
-static struct syscommon_resman_resource *
-get_resource_by_id(struct request_client *client, int resource_id)
-{
-       struct resource_instance *res_inst = get_resource_instance_by_id(client, resource_id);
-
-       res_inst = get_resource_instance_by_id(client, resource_id);
-       if (!res_inst)
-               return NULL;
-
-       return res_inst->res;
-}
-
-static int clear_sign_bit(unsigned int val)
-{
-       return (int)((val << 1) >> 1);
-}
-
 static int handle_request_create_resource(struct request_client *client, char *args)
 {
        struct resource_instance *res_inst;
@@ -126,16 +107,13 @@ static int handle_request_create_resource(struct request_client *client, char *a
         */
        resource_type = atoi(args);
 
-       ret = syscommon_resman_create_resource(&res_inst->res, resource_type);
+       ret = syscommon_resman_create_resource(&res_inst->id, resource_type);
        if (ret < 0) {
                _E("failed to create resource, res:type(%d)\n", resource_type);
                free(res_inst);
                return ret;
        }
 
-       res_inst->id = clear_sign_bit(
-                       (unsigned int)__sync_fetch_and_add(&g_resource_id, 1));
-
        register_resource_to_client(client, res_inst);
 
        return res_inst->id;
@@ -172,7 +150,6 @@ inline __attribute__((always_inline)) int64_t get_time_now(void)
 static int handle_request_update_resource(struct request_client *client, char *args)
 {
        struct resource_instance *res_inst;
-       struct syscommon_resman_resource *res;
        int resource_id;
        int ret;
 
@@ -193,15 +170,13 @@ static int handle_request_update_resource(struct request_client *client, char *a
                return -EINVAL;
        }
 
-       res = res_inst->res;
-
        res_inst->ts_start = get_time_now();
-       ret = syscommon_resman_update_resource_attrs(res);
+       ret = syscommon_resman_update_resource_attrs(resource_id);
        res_inst->ts_end = get_time_now();
        if (ret < 0) {
                res_inst->ts_start = res_inst->ts_end = 0;
                _E("failed to update resource attributes, res:name(%s)id(%d)\n",
-                               syscommon_resman_get_resource_name(res), resource_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id);
                return ret;
        }
 
@@ -257,13 +232,12 @@ static int handle_request_get_resource_count(struct request_client *client, char
 static void update_resource(gpointer key, gpointer value, gpointer user_data)
 {
        struct resource_instance *res_inst = value;
-       struct syscommon_resman_resource *res = res_inst->res;
        int ret;
 
-       ret = syscommon_resman_update_resource_attrs(res);
+       ret = syscommon_resman_update_resource_attrs(res_inst->id);
        if (ret < 0)
                _E("failed to update resource attributes (name:%s,id:%d)\n",
-                               syscommon_resman_get_resource_name(res), res_inst->id);
+                               syscommon_resman_get_resource_name(res_inst->id), res_inst->id);
 }
 
 
@@ -286,7 +260,6 @@ static int handle_request_update_resource_all(struct request_client *client, cha
 
 static int handle_request_set_resource_attr(struct request_client *client, char *args, int request_type)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t interest_masks;
 
@@ -305,30 +278,23 @@ static int handle_request_set_resource_attr(struct request_client *client, char
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                                       client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
        switch (request_type) {
        case REQUEST_SET_RESOURCE_ATTR:
-               ret = syscommon_resman_set_resource_attr_interest(res, interest_masks);
+               ret = syscommon_resman_set_resource_attr_interest(resource_id, interest_masks);
                if (ret < 0)
                        _E("failed to set attribute interest, client(%d) | res:name(%s)id(%d)\n",
                                        client->socket_fd,
-                                       syscommon_resman_get_resource_name(res), resource_id);
+                                       syscommon_resman_get_resource_name(resource_id), resource_id);
                break;
        case REQUEST_UNSET_RESOURCE_ATTR:
-               ret = syscommon_resman_unset_resource_attr_interest(res, interest_masks);
+               ret = syscommon_resman_unset_resource_attr_interest(resource_id, interest_masks);
                if (ret < 0)
                        _E("failed to unset attribute interest, client(%d) | res:name(%s)id(%d)\n",
                                        client->socket_fd,
-                                       syscommon_resman_get_resource_name(res), resource_id);
+                                       syscommon_resman_get_resource_name(resource_id), resource_id);
                break;
        case REQUEST_IS_RESOURCE_ATTR_SET:
-               ret = (int)syscommon_resman_is_resource_attr_interested(res, interest_masks);
+               ret = (int)syscommon_resman_is_resource_attr_interested(resource_id, interest_masks);
                break;
        default:
                return -EINVAL;
@@ -339,7 +305,6 @@ static int handle_request_set_resource_attr(struct request_client *client, char
 
 static int handle_request_set_resource_flag(struct request_client *client, char *args)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t flag_mask;
 
@@ -358,18 +323,11 @@ static int handle_request_set_resource_flag(struct request_client *client, char
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                                       client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_set_resource_flag(res, flag_mask);
+       ret = syscommon_resman_set_resource_flag(resource_id, flag_mask);
        if (ret < 0) {
                _E("failed to set flag to %"PRIu64", client(%d) | res:name(%s)id(%d)\n",
                                        flag_mask, client->socket_fd,
-                                       syscommon_resman_get_resource_name(res), resource_id);
+                                       syscommon_resman_get_resource_name(resource_id), resource_id);
                return ret;
        }
 
@@ -378,7 +336,6 @@ static int handle_request_set_resource_flag(struct request_client *client, char
 
 static int handle_request_is_resource_attr_supported(struct request_client *client, char *args, bool *supported)
 {
-       struct resource *res;
        int resource_id;
        u_int64_t attr_id;
 
@@ -397,19 +354,11 @@ static int handle_request_is_resource_attr_supported(struct request_client *clie
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                                       client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       return syscommon_resman_is_resource_attr_supported(res, attr_id, supported);
+       return syscommon_resman_is_resource_attr_supported(resource_id, attr_id, supported);
 }
 
 static int handle_request_set_resource_ctrl(struct request_client *client, char *args)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, value, ret;
        u_int64_t ctrl_id;
 
@@ -428,19 +377,12 @@ static int handle_request_set_resource_ctrl(struct request_client *client, char
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                                       client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_set_resource_control(res, ctrl_id, (void *)(intptr_t)value);
+       ret = syscommon_resman_set_resource_control(resource_id, ctrl_id, (void *)(intptr_t)value);
        if (ret < 0) {
                _E("failed to set resource control, client(%d) | res:name(%s)id(%d) | ctrl:name(%s)id(%"PRId64")val(%d)\n",
                                        client->socket_fd,
-                                       syscommon_resman_get_resource_name(res), resource_id,
-                                       syscommon_resman_get_resource_control_name(res, ctrl_id), ctrl_id, value);
+                                       syscommon_resman_get_resource_name(resource_id), resource_id,
+                                       syscommon_resman_get_resource_control_name(resource_id, ctrl_id), ctrl_id, value);
                return ret;
        }
 
@@ -451,7 +393,6 @@ static int
 handle_request_get_json(struct request_client *client, char *args,
                                 int request_type, char **json_string)
 {
-       struct syscommon_resman_resource *res;
        u_int64_t attr_id;
        int resource_id;
 
@@ -482,18 +423,12 @@ handle_request_get_json(struct request_client *client, char *args,
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, res:id(%d)\n", resource_id);
-               return -EINVAL;
-       }
-
 skip_res:
        switch (request_type) {
        case REQUEST_GET_RESOURCE_JSON:
-               return syscommon_resman_get_resource_attrs_json(res, json_string);
+               return syscommon_resman_get_resource_attrs_json(resource_id, json_string);
        case REQUEST_GET_VALUE_JSON:
-               return syscommon_resman_get_resource_attr_json(res, attr_id, json_string);
+               return syscommon_resman_get_resource_attr_json(resource_id, attr_id, json_string);
        case REQUEST_GET_RESOURCE_LIST_JSON:
                return syscommon_resman_get_resource_list_json(json_string);
        default:
@@ -503,7 +438,6 @@ skip_res:
 
 static int handle_request_get_value_int(struct request_client *client, char *args, int32_t *value)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t attr_id;
 
@@ -522,19 +456,12 @@ static int handle_request_get_value_int(struct request_client *client, char *arg
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                                       client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_get_resource_attr_int(res, attr_id, value);
+       ret = syscommon_resman_get_resource_attr_int(resource_id, attr_id, value);
        if (ret < 0) {
                _E("failed to get int value, client(%d) | res:name(%s)id(%d) | attr:name(%s)id(%"PRId64")\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res), resource_id,
-                               syscommon_resman_get_resource_attr_name(res, attr_id), attr_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id,
+                               syscommon_resman_get_resource_attr_name(resource_id, attr_id), attr_id);
                return ret;
        }
 
@@ -543,7 +470,6 @@ static int handle_request_get_value_int(struct request_client *client, char *arg
 
 static int handle_request_get_value_int64(struct request_client *client, char *args, int64_t *value)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t attr_id;
 
@@ -562,19 +488,12 @@ static int handle_request_get_value_int64(struct request_client *client, char *a
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                               client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_get_resource_attr_int64(res, attr_id, value);
+       ret = syscommon_resman_get_resource_attr_int64(resource_id, attr_id, value);
        if (ret < 0) {
                _E("failed to get int64 value, client(%d) | res:name(%s)id(%d) | attr:name(%s)id(%"PRId64")\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res), resource_id,
-                               syscommon_resman_get_resource_attr_name(res, attr_id), attr_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id,
+                               syscommon_resman_get_resource_attr_name(resource_id, attr_id), attr_id);
                return ret;
        }
 
@@ -584,7 +503,6 @@ static int handle_request_get_value_int64(struct request_client *client, char *a
 static int
 handle_request_get_value_uint(struct request_client *client, char *args, u_int32_t *value)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t attr_id;
 
@@ -603,19 +521,12 @@ handle_request_get_value_uint(struct request_client *client, char *args, u_int32
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                               client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_get_resource_attr_uint(res, attr_id, value);
+       ret = syscommon_resman_get_resource_attr_uint(resource_id, attr_id, value);
        if (ret < 0) {
                _E("failed to get uint value, client(%d) | res:name(%s)id(%d) | attr:name(%s)id(%"PRId64")\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res), resource_id,
-                               syscommon_resman_get_resource_attr_name(res, attr_id), attr_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id,
+                               syscommon_resman_get_resource_attr_name(resource_id, attr_id), attr_id);
                return ret;
        }
 
@@ -625,7 +536,6 @@ handle_request_get_value_uint(struct request_client *client, char *args, u_int32
 static int
 handle_request_get_value_uint64(struct request_client *client, char *args, u_int64_t *value)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t attr_id;
 
@@ -644,19 +554,12 @@ handle_request_get_value_uint64(struct request_client *client, char *args, u_int
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                               client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_get_resource_attr_uint64(res, attr_id, value);
+       ret = syscommon_resman_get_resource_attr_uint64(resource_id, attr_id, value);
        if (ret < 0) {
                _E("failed to get uint64 value, client(%d) | res:name(%s)id(%d) | attr:name(%s)id(%"PRId64")\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res), resource_id,
-                               syscommon_resman_get_resource_attr_name(res, attr_id), attr_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id,
+                               syscommon_resman_get_resource_attr_name(resource_id, attr_id), attr_id);
                return ret;
        }
 
@@ -665,7 +568,6 @@ handle_request_get_value_uint64(struct request_client *client, char *args, u_int
 
 static int handle_request_get_value_double(struct request_client *client, char *args, double *value)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t attr_id;
 
@@ -684,19 +586,12 @@ static int handle_request_get_value_double(struct request_client *client, char *
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                               client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_get_resource_attr_double(res, attr_id, value);
+       ret = syscommon_resman_get_resource_attr_double(resource_id, attr_id, value);
        if (ret < 0) {
                _E("failed to get double value,  client(%d) | res:name(%s)id(%d) | attr:name(%s)id(%"PRId64")\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res), resource_id,
-                               syscommon_resman_get_resource_attr_name(res, attr_id), attr_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id,
+                               syscommon_resman_get_resource_attr_name(resource_id, attr_id), attr_id);
                return ret;
        }
 
@@ -705,7 +600,6 @@ static int handle_request_get_value_double(struct request_client *client, char *
 
 static int handle_request_get_value_string(struct request_client *client, char *args, char *value)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t attr_id;
 
@@ -724,19 +618,12 @@ static int handle_request_get_value_string(struct request_client *client, char *
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                               client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_get_resource_attr_string(res, attr_id, value);
+       ret = syscommon_resman_get_resource_attr_string(resource_id, attr_id, value);
        if (ret < 0) {
                _E("failed to get string value, client(%d) | res:name(%s)id(%d) | attr:name(%s)id(%"PRId64")\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res), resource_id,
-                               syscommon_resman_get_resource_attr_name(res, attr_id), attr_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id,
+                               syscommon_resman_get_resource_attr_name(resource_id, attr_id), attr_id);
                return ret;
        }
 
@@ -746,7 +633,6 @@ static int handle_request_get_value_string(struct request_client *client, char *
 static int
 handle_request_get_value_array(struct request_client *client, char *args, struct syscommon_resman_array_value **arr)
 {
-       struct syscommon_resman_resource *res;
        int resource_id, ret;
        u_int64_t attr_id;
 
@@ -765,19 +651,12 @@ handle_request_get_value_array(struct request_client *client, char *args, struct
                return -EINVAL;
        }
 
-       res = get_resource_by_id(client, resource_id);
-       if (!res) {
-               _E("failed to get resource, client(%d) | res:id(%d)\n",
-                               client->socket_fd, resource_id);
-               return -EINVAL;
-       }
-
-       ret = syscommon_resman_get_resource_attr_array(res, attr_id, arr);
+       ret = syscommon_resman_get_resource_attr_array(resource_id, attr_id, arr);
        if (ret < 0) {
                _E("failed to get array value, client(%d) | (res:name(%s)id(%d) | attr:name(%s)id(%"PRId64")\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res), resource_id,
-                               syscommon_resman_get_resource_attr_name(res, attr_id), attr_id);
+                               syscommon_resman_get_resource_name(resource_id), resource_id,
+                               syscommon_resman_get_resource_attr_name(resource_id, attr_id), attr_id);
                return ret;
        }
 
@@ -813,7 +692,7 @@ handle_request_get_resource_ts(struct request_client *client, char *args,
         */
        resource_id = atoi(args);
 
-       res_inst = get_resource_by_id(client, resource_id);
+       res_inst = get_resource_instance_by_id(client, resource_id);
        if (!res_inst) {
                _E("failed to get resource, client(%d) | res:id(%d)\n",
                                client->socket_fd, resource_id);
@@ -824,7 +703,7 @@ handle_request_get_resource_ts(struct request_client *client, char *args,
        if (ret < 0) {
                _E("failed to get timestamp value, client(%d) | res:name(%s)id(%d)\n",
                                client->socket_fd,
-                               syscommon_resman_get_resource_name(res_inst->res), resource_id);
+                               syscommon_resman_get_resource_name(res_inst->id), resource_id);
                return ret;
        }
 
@@ -1148,7 +1027,7 @@ static void delete_resource_instance(struct resource_instance *res_inst)
        if (!res_inst)
                return;
 
-       syscommon_resman_delete_resource(res_inst->res);
+       syscommon_resman_delete_resource(res_inst->id);
 
        free(res_inst);
 }
@@ -1290,29 +1169,6 @@ error_out:
        return -EIO;
 }
 
-static void init_resource_id(void)
-{
-       int val;
-       struct timeval tv;
-
-       /*
-        * Initial g_resource_id is set by a combination of
-        * tv_sec and tv_usec values of gettimeofday().
-        * It ensures that PASS assigns a unique resource id
-        * for each create_resource request.
-        *
-        * Even PASS is restarted, a newly initialized value
-        * of g_resource_id reflects the current value of
-        * gettimeofday(). Thus, the uniqueness in resource
-        * id is kept unless the number of created resources
-        * crosses the time consumed (in msecs) before
-        * restarted.
-        */
-       gettimeofday(&tv, NULL);
-       val = tv.tv_sec * 1000 + tv.tv_usec / 1000;
-       g_resource_id = clear_sign_bit(val);
-}
-
 static int request_server_func(void *ctx, void **result)
 {
        struct sockaddr_un unix_address;
@@ -1328,8 +1184,6 @@ static int request_server_func(void *ctx, void **result)
        if (!g_request_server_run)
                return THREAD_RETURN_DONE;
 
-       init_resource_id();
-
        /* 0. initialize server socket */
        ret = init_unix_socket(&server_unix_socket, &unix_address, &unix_addrlen);
        if (ret < 0)
index ecb4554ecd483d4a10f70850b60d41a3cea0d5cf..92752dd9f09cb9b02a88284ecd4b75b999d50f09 100644 (file)
@@ -31,7 +31,7 @@
 
 #include <resource-monitor/resource-monitor.h>
 
-static int battery_get_info(struct syscommon_resman_resource *res,
+static int battery_get_info(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -39,7 +39,7 @@ static int battery_get_info(struct syscommon_resman_resource *res,
        int ret;
        int *val = (int *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
        switch (attr->id) {
@@ -72,14 +72,14 @@ static int battery_get_info(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int battery_get_status(struct syscommon_resman_resource *res,
+static int battery_get_status(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        char *buf = (char *)data;
        int ret;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
        ret = sys_get_str("/sys/class/power_supply/battery/status", buf);
index b32bd5fb9ecde0ffb24ba72e53c5f0031c1c3669..8d3c63aee77e5c2b068e6150435a5390754e2b07 100644 (file)
@@ -40,7 +40,7 @@ struct bus_context {
        int index;
 };
 
-static int bus_get_value_from_hal_power(struct syscommon_resman_resource *res,
+static int bus_get_value_from_hal_power(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -49,20 +49,20 @@ static int bus_get_value_from_hal_power(struct syscommon_resman_resource *res,
        int *val = (int *)data;
        int _val;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: BUS_CTRL_DEVICE_ID is not yet initialized\n",
-                                       syscommon_resman_get_resource_name(res));
+                                       syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
-       type = syscommon_resman_get_resource_type(res);
+       type = syscommon_resman_get_resource_type(resource_id);
 
        switch (attr->id) {
        case BUS_ATTR_CUR_FREQ:
@@ -92,7 +92,7 @@ static int bus_get_value_from_hal_power(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int bus_get_string_value(struct syscommon_resman_resource *res,
+static int bus_get_string_value(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -100,22 +100,22 @@ static int bus_get_string_value(struct syscommon_resman_resource *res,
        char *buf = (char *)data;
        int val;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: BUS_CTRL_DEVICE_ID is not yet initialized\n",
-                                       syscommon_resman_get_resource_name(res));
+                                       syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
        switch (attr->id) {
        case BUS_ATTR_CUR_GOVERNOR:
-               val = hal_power_dvfs_get_curr_governor(syscommon_resman_get_resource_type(res),
+               val = hal_power_dvfs_get_curr_governor(syscommon_resman_get_resource_type(resource_id),
                                                        ctx->device_name, buf);
                if (val < 0)
                        return -EINVAL;
@@ -188,7 +188,7 @@ static const struct syscommon_resman_resource_attribute bus_attrs[] = {
        },
 };
 
-static int bus_setup_device_id(struct syscommon_resman_resource *res,
+static int bus_setup_device_id(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -196,17 +196,17 @@ static int bus_setup_device_id(struct syscommon_resman_resource *res,
        const struct syscommon_resman_resource_device *device;
        int device_id = (int)(intptr_t)data;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(res), device_id);
+       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(resource_id), device_id);
        if (!device) {
                _E("Not available resource: type: %s, index: %d\n",
-                               syscommon_resman_get_resource_name(res), device_id);
+                               syscommon_resman_get_resource_name(resource_id), device_id);
                return -EINVAL;
        }
 
@@ -229,7 +229,7 @@ static const struct syscommon_resman_resource_control bus_ctrls[] = {
        },
 };
 
-static int bus_create(struct syscommon_resman_resource *res)
+static int bus_create(int resource_id)
 {
        struct bus_context *ctx;
 
@@ -237,19 +237,19 @@ static int bus_create(struct syscommon_resman_resource *res)
        if (!ctx)
                return -ENOMEM;
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        return 0;
 }
 
-static void bus_delete(struct syscommon_resman_resource *res)
+static void bus_delete(int resource_id)
 {
        struct bus_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
@@ -258,7 +258,7 @@ static void bus_delete(struct syscommon_resman_resource *res)
                ctx->device_name = NULL;
        }
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
 static const struct syscommon_resman_resource_driver bus_resource_driver = {
index 89e318083fea1a7ca4857335c8c70e6e80a2432a..1911f9b7da32ce5ea0bf659f990d05362e34661f 100644 (file)
@@ -41,7 +41,7 @@ struct cpu_context {
        int index;
 };
 
-static int cpu_get_value_from_hal_power(struct syscommon_resman_resource *res,
+static int cpu_get_value_from_hal_power(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -49,20 +49,20 @@ static int cpu_get_value_from_hal_power(struct syscommon_resman_resource *res,
        int *val = (int *)data;
        int _val, type;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: CPU_CTRL_CLUSTER_ID is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
-       type = syscommon_resman_get_resource_type(res);
+       type = syscommon_resman_get_resource_type(resource_id);
 
        switch (attr->id) {
        case CPU_ATTR_CUR_FREQ:
@@ -92,7 +92,7 @@ static int cpu_get_value_from_hal_power(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int cpu_get_string_value(struct syscommon_resman_resource *res,
+static int cpu_get_string_value(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -100,22 +100,22 @@ static int cpu_get_string_value(struct syscommon_resman_resource *res,
        char *buf = (char *)data;
        int val;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: CPU_CTRL_CLUSTER_ID is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
        switch (attr->id) {
        case CPU_ATTR_CUR_GOVERNOR:
-               val = hal_power_dvfs_get_curr_governor(syscommon_resman_get_resource_type(res),
+               val = hal_power_dvfs_get_curr_governor(syscommon_resman_get_resource_type(resource_id),
                                                        ctx->device_name, buf);
                if (val < 0)
                        return -EINVAL;
@@ -188,7 +188,7 @@ static const struct syscommon_resman_resource_attribute cpu_attrs[] = {
        },
 };
 
-static int cpu_setup_cluster_id(struct syscommon_resman_resource *res,
+static int cpu_setup_cluster_id(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -196,17 +196,17 @@ static int cpu_setup_cluster_id(struct syscommon_resman_resource *res,
        const struct syscommon_resman_resource_device *device;
        int resource_index = (int)(intptr_t)data;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(res), resource_index);
+       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(resource_id), resource_index);
        if (!device) {
                _E("Not available resource: type: %s, index: %d\n",
-                               syscommon_resman_get_resource_name(res), resource_index);
+                               syscommon_resman_get_resource_name(resource_id), resource_index);
                return -EINVAL;
        }
 
@@ -229,27 +229,27 @@ static const struct syscommon_resman_resource_control cpu_ctrls[] = {
        },
 };
 
-static int cpu_create(struct syscommon_resman_resource *res)
+static int cpu_create(int resource_id)
 {
-       struct cpu_context *ctx = syscommon_resman_get_resource_privdata(res);
+       struct cpu_context *ctx = syscommon_resman_get_resource_privdata(resource_id);
 
        ctx = calloc(1, sizeof(struct cpu_context));
        if (!ctx)
                return -ENOMEM;
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        return 0;
 }
 
-static void cpu_delete(struct syscommon_resman_resource *res)
+static void cpu_delete(int resource_id)
 {
        struct cpu_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
@@ -259,7 +259,7 @@ static void cpu_delete(struct syscommon_resman_resource *res)
        }
 
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
 static const struct syscommon_resman_resource_driver cpu_resource_driver = {
index aff1ce3c2a98836843d683eb8a3ad96fe01e11b4..f9e7ed8a6bd2454000d480e6636da9493b746b9b 100644 (file)
@@ -77,22 +77,23 @@ struct disk_context {
        u_int32_t write_total;
 };
 
-static int disk_get_value(struct syscommon_resman_resource *res,
+static int disk_get_value(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        struct disk_context *ctx;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("DISK_CTRL_DEVICE_ID is not yet initialized, res:name(%s) | attr:name(%s)id(%"PRId64")\n",
-                                       syscommon_resman_get_resource_name(res), syscommon_resman_get_resource_attr_name(res, attr->id), attr->id);
+                                       syscommon_resman_get_resource_name(resource_id),
+                                       syscommon_resman_get_resource_attr_name(resource_id, attr->id), attr->id);
                return -EINVAL;
        }
 
@@ -163,7 +164,7 @@ static const struct syscommon_resman_resource_attribute disk_attrs[] = {
        },
 };
 
-static int disk_setup_device_id(struct syscommon_resman_resource *res,
+static int disk_setup_device_id(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -171,17 +172,17 @@ static int disk_setup_device_id(struct syscommon_resman_resource *res,
        const struct syscommon_resman_resource_device *device;
        int resource_index = (int)(intptr_t)data;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(res), resource_index);
+       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(resource_id), resource_index);
        if (!device) {
                _E("Not available resource: type: %s, index: %d\n",
-                               syscommon_resman_get_resource_name(res), resource_index);
+                               syscommon_resman_get_resource_name(resource_id), resource_index);
                return -EINVAL;
        }
 
@@ -330,7 +331,7 @@ static int calculate_disk_stats(struct disk_context *ctx)
        return 0;
 }
 
-static int disk_create(struct syscommon_resman_resource *res)
+static int disk_create(int resource_id)
 {
        struct disk_context *ctx;
 
@@ -340,19 +341,19 @@ static int disk_create(struct syscommon_resman_resource *res)
 
        ctx->index = -1;
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        return 0;
 }
 
-static void disk_delete(struct syscommon_resman_resource *res)
+static void disk_delete(int resource_id)
 {
        struct disk_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
@@ -360,24 +361,24 @@ static void disk_delete(struct syscommon_resman_resource *res)
                free(ctx->device_name);
 
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
-static int disk_prepare_update(struct syscommon_resman_resource *res)
+static int disk_prepare_update(int resource_id)
 {
        struct disk_context *ctx;
        int ret;
 
-       if (!res)
+       if (resource_id < 0)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: DISK_CTRL_DEVICE_ID is not yet initialized\n",
-                                       syscommon_resman_get_resource_name(res));
+                                       syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
index 154b7afda13d7c30573ee4bf149411df6c25318f..de4977801bc49ae3b106246a5890dcbb7fd253b0 100644 (file)
@@ -133,23 +133,23 @@ err_conn:
        return ret;
 }
 
-static int display_get_fps(struct syscommon_resman_resource *res,
+static int display_get_fps(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        struct display_context *ctx;
        double *fps = (double *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: DISPLAY_CTRL_DEVICE_ID is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
@@ -158,23 +158,23 @@ static int display_get_fps(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int display_get_name(struct syscommon_resman_resource *res,
+static int display_get_name(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        struct display_context *ctx;
        char *buf = (char *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: DISPLAY_CTRL_DEVICE_ID is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
@@ -203,7 +203,7 @@ static const struct syscommon_resman_resource_attribute display_attrs[] = {
        },
 };
 
-static int display_setup_device_id(struct syscommon_resman_resource *res,
+static int display_setup_device_id(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -211,17 +211,17 @@ static int display_setup_device_id(struct syscommon_resman_resource *res,
        const struct syscommon_resman_resource_device *device;
        int resource_index = (int)(intptr_t)data;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(res), resource_index);
+       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(resource_id), resource_index);
        if (!device) {
                _E("Not available resource: type: %s, index: %d\n",
-                               syscommon_resman_get_resource_name(res), resource_index);
+                               syscommon_resman_get_resource_name(resource_id), resource_index);
                return -EINVAL;
        }
 
@@ -254,7 +254,7 @@ static int display_monitor_func(void *data, void **result)
        return THREAD_RETURN_CONTINUE;
 }
 
-static int display_create(struct syscommon_resman_resource *res)
+static int display_create(int resource_id)
 {
        int ret = 0;
        struct display_context *ctx;
@@ -265,7 +265,7 @@ static int display_create(struct syscommon_resman_resource *res)
 
        ctx->index = -1;
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        g_mutex_lock(&g_fps_monitor.display_lock);
        if (g_fps_monitor.holder++ == 0)
@@ -275,14 +275,14 @@ static int display_create(struct syscommon_resman_resource *res)
        return ret;
 }
 
-static void display_delete(struct syscommon_resman_resource *res)
+static void display_delete(int resource_id)
 {
        struct display_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
@@ -290,7 +290,7 @@ static void display_delete(struct syscommon_resman_resource *res)
                free(ctx->device_name);
 
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 
        g_mutex_lock(&g_fps_monitor.display_lock);
        if (--g_fps_monitor.holder == 0)
index 0d9bf313a3f5a6534d025f0bc5ffd2b5cfdd1a61..1e3e51a083d0fa64b35859906974613e8192633e 100644 (file)
@@ -41,7 +41,7 @@ struct gpu_context {
        int index;
 };
 
-static int gpu_get_value_from_hal_power(struct syscommon_resman_resource *res,
+static int gpu_get_value_from_hal_power(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -50,20 +50,20 @@ static int gpu_get_value_from_hal_power(struct syscommon_resman_resource *res,
        int *val = (int *)data;
        int _val;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: GPU_CTRL_DEVICE_ID is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
-       type = syscommon_resman_get_resource_type(res);
+       type = syscommon_resman_get_resource_type(resource_id);
 
        switch (attr->id) {
        case GPU_ATTR_CUR_FREQ:
@@ -93,7 +93,7 @@ static int gpu_get_value_from_hal_power(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int gpu_get_string_value(struct syscommon_resman_resource *res,
+static int gpu_get_string_value(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -101,22 +101,22 @@ static int gpu_get_string_value(struct syscommon_resman_resource *res,
        char *buf = (char *)data;
        int val;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: GPU_CTRL_DEVICE_ID is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
        switch (attr->id) {
        case GPU_ATTR_CUR_GOVERNOR:
-               val = hal_power_dvfs_get_curr_governor(syscommon_resman_get_resource_type(res),
+               val = hal_power_dvfs_get_curr_governor(syscommon_resman_get_resource_type(resource_id),
                                                        ctx->device_name, buf);
                if (val < 0)
                        return -EINVAL;
@@ -189,7 +189,7 @@ static const struct syscommon_resman_resource_attribute gpu_attrs[] = {
        },
 };
 
-static int gpu_setup_device_id(struct syscommon_resman_resource *res,
+static int gpu_setup_device_id(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -197,17 +197,17 @@ static int gpu_setup_device_id(struct syscommon_resman_resource *res,
        const struct syscommon_resman_resource_device *device;
        int resource_index = (int)(intptr_t)data;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(res), resource_index);
+       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(resource_id), resource_index);
        if (!device) {
                _E("Not available resource: type: %s, index: %d\n",
-                               syscommon_resman_get_resource_name(res), resource_index);
+                               syscommon_resman_get_resource_name(resource_id), resource_index);
                return -EINVAL;
        }
 
@@ -230,7 +230,7 @@ static const struct syscommon_resman_resource_control gpu_ctrls[] = {
        },
 };
 
-static int gpu_create(struct syscommon_resman_resource *res)
+static int gpu_create(int resource_id)
 {
        struct gpu_context *ctx;
 
@@ -238,19 +238,19 @@ static int gpu_create(struct syscommon_resman_resource *res)
        if (!ctx)
                return -ENOMEM;
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        return 0;
 }
 
-static void gpu_delete(struct syscommon_resman_resource *res)
+static void gpu_delete(int resource_id)
 {
        struct gpu_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
@@ -259,7 +259,7 @@ static void gpu_delete(struct syscommon_resman_resource *res)
                ctx->device_name = NULL;
        }
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
 static const struct syscommon_resman_resource_driver gpu_resource_driver = {
index cee56f9a79ef0c27e7da40f16977a54c2b322988..bcec23b159741bd91f941883f432c4ae3369b325 100644 (file)
@@ -76,14 +76,14 @@ static int memory_get_swap_total(u_int64_t *val)
        return 0;
 }
 
-static int memory_get_memory_info(struct syscommon_resman_resource *res,
+static int memory_get_memory_info(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        u_int64_t *val = (u_int64_t *)data;
        int ret;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
        switch (attr->id) {
index d5b6507853c1f479f3f3d0762b3de0e72a8d9c4c..a46754853e29c7691ed6572f30c49e275d82d662 100644 (file)
@@ -41,23 +41,23 @@ struct network_context {
        int index;
 };
 
-static int network_get_name(struct syscommon_resman_resource *res,
+static int network_get_name(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        struct network_context *ctx;
        char *buf = (char *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->device_name) {
                _E("%s: NETWORK_CTRL_DEVICE_ID is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
@@ -78,7 +78,7 @@ static const struct syscommon_resman_resource_attribute network_attrs[] = {
        },
 };
 
-static int network_setup_device_id(struct syscommon_resman_resource *res,
+static int network_setup_device_id(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -86,17 +86,17 @@ static int network_setup_device_id(struct syscommon_resman_resource *res,
        const struct syscommon_resman_resource_device *device;
        int resource_index = (int)(intptr_t)data;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(res), resource_index);
+       device = syscommon_resman_find_resource_device(syscommon_resman_get_resource_type(resource_id), resource_index);
        if (!device) {
                _E("Not available resource: type: %s, index: %d\n",
-                               syscommon_resman_get_resource_name(res), resource_index);
+                               syscommon_resman_get_resource_name(resource_id), resource_index);
                return -EINVAL;
        }
 
@@ -119,7 +119,7 @@ static const struct syscommon_resman_resource_control network_ctrls[] = {
        },
 };
 
-static int network_create(struct syscommon_resman_resource *res)
+static int network_create(int resource_id)
 {
        struct network_context *ctx;
 
@@ -129,19 +129,19 @@ static int network_create(struct syscommon_resman_resource *res)
 
        ctx->index = -1;
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        return 0;
 }
 
-static void network_delete(struct syscommon_resman_resource *res)
+static void network_delete(int resource_id)
 {
        struct network_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
@@ -149,7 +149,7 @@ static void network_delete(struct syscommon_resman_resource *res)
                free(ctx->device_name);
 
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
 static const struct syscommon_resman_resource_driver network_resource_driver = {
index fcad5134373bbccf1d20bef6b1c6c33c3bc0f5cd..9ba0b0602e0ba90bf76977e870e867193bc2d961 100644 (file)
@@ -55,7 +55,7 @@ static u_int64_t total_memory;
 static long jiffy;
 static bool taskstat_support;
 
-static int process_group_get_pid_list(struct syscommon_resman_resource *res,
+static int process_group_get_pid_list(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -67,10 +67,10 @@ static int process_group_get_pid_list(struct syscommon_resman_resource *res,
        int *data_array;
        int i = 0;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
@@ -95,7 +95,7 @@ static int process_group_get_pid_list(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int process_group_get_name_list(struct syscommon_resman_resource *res,
+static int process_group_get_name_list(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -107,10 +107,10 @@ static int process_group_get_name_list(struct syscommon_resman_resource *res,
        char **data_array;
        int i = 0;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
@@ -148,17 +148,17 @@ static int process_group_get_name_list(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int process_group_get_cpu_util(struct syscommon_resman_resource *res,
+static int process_group_get_cpu_util(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        struct process_group_context *ctx;
        double *util = (double *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
@@ -170,17 +170,17 @@ static int process_group_get_cpu_util(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int process_group_get_mem(struct syscommon_resman_resource *res,
+static int process_group_get_mem(int resource_id,
                           const struct syscommon_resman_resource_attribute *attr,
                           void *data)
 {
        struct process_group_context *ctx;
        u_int64_t *mem = (u_int64_t *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
@@ -213,16 +213,16 @@ static int process_group_get_mem(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int process_group_get_disk_attrs(struct syscommon_resman_resource *res,
+static int process_group_get_disk_attrs(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        struct process_group_context *ctx;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
@@ -242,13 +242,13 @@ static int process_group_get_disk_attrs(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static bool process_group_check_taskstat_support(struct syscommon_resman_resource *resource,
+static bool process_group_check_taskstat_support(int resource_id,
                                            const struct syscommon_resman_resource_attribute *attr)
 {
        return taskstat_support;
 }
 
-static bool process_group_check_gpu_support(struct syscommon_resman_resource *resource,
+static bool process_group_check_gpu_support(int resource_id,
                                            const struct syscommon_resman_resource_attribute *attr)
 {
        return taskstat_support && kernel_check_gpu_support();
@@ -357,7 +357,7 @@ static const struct syscommon_resman_resource_attribute process_group_attrs[] =
        },
 };
 
-static int process_group_setup_root_pid(struct syscommon_resman_resource *res,
+static int process_group_setup_root_pid(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -366,10 +366,10 @@ static int process_group_setup_root_pid(struct syscommon_resman_resource *res,
        int target_pid;
        int ret;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
@@ -433,7 +433,7 @@ static u_int64_t get_total_cpu_time(void)
        return total_time;
 }
 
-static int update_aggr_taskstats(struct process_group_context *ctx, struct syscommon_resman_resource *res)
+static int update_aggr_taskstats(struct process_group_context *ctx, int resource_id)
 {
        struct process_info_node *node;
        struct taskstats *prev, *curr;
@@ -445,7 +445,7 @@ static int update_aggr_taskstats(struct process_group_context *ctx, struct sysco
        gpointer key, value;
        pid_t pid;
        int ret;
-       bool include_gpu_mem = syscommon_resman_is_resource_attr_interested(res, PROCESS_GROUP_ATTR_MEM_GPU);
+       bool include_gpu_mem = syscommon_resman_is_resource_attr_interested(resource_id, PROCESS_GROUP_ATTR_MEM_GPU);
 
        memset(&ctx->info, 0, sizeof(ctx->info));
 
@@ -519,7 +519,7 @@ static int update_aggr_taskstats(struct process_group_context *ctx, struct sysco
        return 0;
 }
 
-static int process_group_prepare_update(struct syscommon_resman_resource *res)
+static int process_group_prepare_update(int resource_id)
 {
        struct process_group_context *ctx;
        struct process_info_node *pnode, *parent_pnode;
@@ -532,10 +532,10 @@ static int process_group_prepare_update(struct syscommon_resman_resource *res)
        int ret = 0;
        pid_t tgid;
 
-       if (!res)
+       if (resource_id < 0)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
@@ -646,7 +646,7 @@ static int process_group_prepare_update(struct syscommon_resman_resource *res)
                        }
                }
 
-               ret = update_aggr_taskstats(ctx, res);
+               ret = update_aggr_taskstats(ctx, resource_id);
                if (ret < 0) {
                        ret = -EINVAL;
                        goto out_free_hash;
@@ -662,7 +662,7 @@ out_close:
        return ret;
 }
 
-static int process_group_create(struct syscommon_resman_resource *res)
+static int process_group_create(int resource_id)
 {
        struct process_group_context *ctx;
 
@@ -673,19 +673,19 @@ static int process_group_create(struct syscommon_resman_resource *res)
        ctx->pid = -1;
        ctx->pi_map = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, free_node);
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        return 0;
 }
 
-static void process_group_delete(struct syscommon_resman_resource *res)
+static void process_group_delete(int resource_id)
 {
        struct process_group_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
@@ -695,7 +695,7 @@ static void process_group_delete(struct syscommon_resman_resource *res)
        }
 
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
 static int process_group_init(void)
index f386638b619c5de068bf0e1aab546178261d5a10..511c5c31269d7678e2ee86d8505c534abbb6bb8d 100644 (file)
@@ -45,7 +45,7 @@ static u_int64_t total_memory;
 static long jiffy;
 static bool taskstat_support;
 
-static int process_get_cpu_util(struct syscommon_resman_resource *res,
+static int process_get_cpu_util(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -53,16 +53,16 @@ static int process_get_cpu_util(struct syscommon_resman_resource *res,
        struct taskstats *prev, *curr;
        double *util = (double *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->tgid) {
                _E("resource %s is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
@@ -79,7 +79,7 @@ static int process_get_cpu_util(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int process_get_mem_attrs(struct syscommon_resman_resource *res,
+static int process_get_mem_attrs(int resource_id,
                                 const struct syscommon_resman_resource_attribute *attr,
                                 void *data)
 {
@@ -87,16 +87,16 @@ static int process_get_mem_attrs(struct syscommon_resman_resource *res,
        struct taskstats *curr;
        u_int64_t *mem = (u_int64_t *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->tgid) {
                _E("resource %s is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
@@ -137,7 +137,7 @@ static int process_get_mem_attrs(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int process_get_disk_attrs(struct syscommon_resman_resource *res,
+static int process_get_disk_attrs(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -145,16 +145,16 @@ static int process_get_disk_attrs(struct syscommon_resman_resource *res,
        struct taskstats *prev, *curr;
        u_int64_t period;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->tgid) {
                _E("resource %s is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
@@ -176,22 +176,22 @@ static int process_get_disk_attrs(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int process_get_context_data(struct syscommon_resman_resource *res,
+static int process_get_context_data(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        struct process_context *ctx;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
        if (!ctx->tgid) {
                _E("resource %s is not yet initialized\n",
-                               syscommon_resman_get_resource_name(res));
+                               syscommon_resman_get_resource_name(resource_id));
                return -EINVAL;
        }
 
@@ -251,13 +251,13 @@ static int process_get_context_data(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static bool process_check_taskstat_support(struct syscommon_resman_resource *resource,
+static bool process_check_taskstat_support(int resource_idource,
                                            const struct syscommon_resman_resource_attribute *attr)
 {
        return taskstat_support;
 }
 
-static bool process_check_gpu_support(struct syscommon_resman_resource *resource,
+static bool process_check_gpu_support(int resource_idource,
                                            const struct syscommon_resman_resource_attribute *attr)
 {
        return kernel_check_gpu_support();
@@ -404,7 +404,7 @@ static u_int64_t get_total_cpu_time(void)
        return total_time;
 }
 
-static int process_setup_tgid(struct syscommon_resman_resource *res,
+static int process_setup_tgid(int resource_id,
                                const struct syscommon_resman_resource_control *ctrl,
                                const void *data)
 {
@@ -412,14 +412,14 @@ static int process_setup_tgid(struct syscommon_resman_resource *res,
        int ret;
        bool include_gpu_mem;
 
-       if (!res || !ctrl)
+       if (resource_id < 0 || !ctrl)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       include_gpu_mem = syscommon_resman_is_resource_attr_interested(res, PROCESS_ATTR_MEM_GPU);
+       include_gpu_mem = syscommon_resman_is_resource_attr_interested(resource_id, PROCESS_ATTR_MEM_GPU);
        memset(ctx, 0, sizeof(*ctx));
 
        ctx->tgid = (pid_t)(intptr_t)data;
@@ -462,21 +462,21 @@ static const struct syscommon_resman_resource_control process_ctrls[] = {
        },
 };
 
-static int process_prepare_update(struct syscommon_resman_resource *res)
+static int process_prepare_update(int resource_id)
 {
        struct process_context *ctx;
        u_int64_t total_time;
        int ret, online;
        bool include_gpu_mem;
 
-       if (!res)
+       if (resource_id < 0)
                return -EINVAL;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return -EINVAL;
 
-       include_gpu_mem = syscommon_resman_is_resource_attr_interested(res, PROCESS_ATTR_MEM_GPU);
+       include_gpu_mem = syscommon_resman_is_resource_attr_interested(resource_id, PROCESS_ATTR_MEM_GPU);
 
        if (taskstat_support) {
                memcpy(&ctx->prev, &ctx->curr, sizeof(struct taskstats));
@@ -499,7 +499,7 @@ static int process_prepare_update(struct syscommon_resman_resource *res)
        return 0;
 }
 
-static int process_create(struct syscommon_resman_resource *res)
+static int process_create(int resource_id)
 {
        struct process_context *ctx;
 
@@ -507,24 +507,24 @@ static int process_create(struct syscommon_resman_resource *res)
        if (!ctx)
                return -ENOMEM;
 
-       syscommon_resman_set_resource_privdata(res, ctx);
+       syscommon_resman_set_resource_privdata(resource_id, ctx);
 
        return 0;
 }
 
-static void process_delete(struct syscommon_resman_resource *res)
+static void process_delete(int resource_id)
 {
        struct process_context *ctx;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       ctx = syscommon_resman_get_resource_privdata(res);
+       ctx = syscommon_resman_get_resource_privdata(resource_id);
        if (!ctx)
                return;
 
        free(ctx);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
 static int process_init(void)
index e615ca9580b9df6799739d9b630d741d61c151c6..4f90c714c04980fdea61f42777f65ad84486afea 100644 (file)
@@ -79,7 +79,7 @@ static double __calculate_cpu_util(int64_t id, struct cpu_stat *prev,
        return util;
 }
 
-static int system_get_avg_cpu_util(struct syscommon_resman_resource *res,
+static int system_get_avg_cpu_util(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -87,10 +87,10 @@ static int system_get_avg_cpu_util(struct syscommon_resman_resource *res,
        double util, sum = 0.0;
        int i;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       sysdata = syscommon_resman_get_resource_privdata(res);
+       sysdata = syscommon_resman_get_resource_privdata(resource_id);
        if (!sysdata)
                return -EINVAL;
 
@@ -100,7 +100,7 @@ static int system_get_avg_cpu_util(struct syscommon_resman_resource *res,
                                        &sysdata->curr_cpus[i]);
                if (util < 0.0) {
                        _W("failed to calculate per-cpu util (%s: %s)\n",
-                                       syscommon_resman_get_resource_name(res), attr->name);
+                                       syscommon_resman_get_resource_name(resource_id), attr->name);
                        continue;
                }
 
@@ -118,7 +118,7 @@ static int system_get_avg_cpu_util(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int system_get_per_cpu_util(struct syscommon_resman_resource *res,
+static int system_get_per_cpu_util(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
@@ -127,10 +127,10 @@ static int system_get_per_cpu_util(struct syscommon_resman_resource *res,
        double *utils;
        int i;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
-       sysdata = syscommon_resman_get_resource_privdata(res);
+       sysdata = syscommon_resman_get_resource_privdata(resource_id);
        if (!sysdata)
                return -EINVAL;
 
@@ -152,7 +152,7 @@ static int system_get_per_cpu_util(struct syscommon_resman_resource *res,
                                        &sysdata->curr_cpus[i]);
                if (utils[i] < 0) {
                        _W("failed to calculate per-cpu util (%s: %s)\n",
-                                       syscommon_resman_get_resource_name(res), attr->name);
+                                       syscommon_resman_get_resource_name(resource_id), attr->name);
                        utils[i] = 0;
                }
        }
@@ -160,13 +160,13 @@ static int system_get_per_cpu_util(struct syscommon_resman_resource *res,
        return 0;
 }
 
-static int system_get_cpu_num(struct syscommon_resman_resource *res,
+static int system_get_cpu_num(int resource_id,
                                const struct syscommon_resman_resource_attribute *attr,
                                void *data)
 {
        int *cpu_num = (int *)data;
 
-       if (!res || !attr || !data)
+       if (resource_id < 0 || !attr || !data)
                return -EINVAL;
 
        switch (attr->id) {
@@ -251,10 +251,10 @@ static const struct syscommon_resman_resource_attribute system_attrs[] = {
        },
 };
 
-static int system_create(struct syscommon_resman_resource *res)
+static int system_create(int resource_id)
 {
        struct system_resource_data *sysdata;
-       const char *res_name = syscommon_resman_get_resource_name(res);
+       const char *res_name = syscommon_resman_get_resource_name(resource_id);
        int ret;
 
        sysdata = calloc(1, sizeof(struct system_resource_data));
@@ -284,7 +284,7 @@ static int system_create(struct syscommon_resman_resource *res)
                goto err_prev_cpus;
        }
 
-       syscommon_resman_set_resource_privdata(res, (void *)sysdata);
+       syscommon_resman_set_resource_privdata(resource_id, (void *)sysdata);
 
        return 0;
 
@@ -297,30 +297,30 @@ err:
        return ret;
 }
 
-static void system_delete(struct syscommon_resman_resource *res)
+static void system_delete(int resource_id)
 {
        struct system_resource_data *sysdata;
 
-       if (!res)
+       if (resource_id < 0)
                return;
 
-       sysdata = syscommon_resman_get_resource_privdata(res);
+       sysdata = syscommon_resman_get_resource_privdata(resource_id);
        if (!sysdata)
                return;
 
        free(sysdata->prev_cpus);
        free(sysdata->curr_cpus);
        free(sysdata);
-       syscommon_resman_set_resource_privdata(res, NULL);
+       syscommon_resman_set_resource_privdata(resource_id, NULL);
 }
 
-static int system_driver_prepare_update(struct syscommon_resman_resource *res)
+static int system_driver_prepare_update(int resource_id)
 {
        struct system_resource_data *sysdata;
-       const char *res_name = syscommon_resman_get_resource_name(res);
+       const char *res_name = syscommon_resman_get_resource_name(resource_id);
        int ret;
 
-       sysdata = syscommon_resman_get_resource_privdata(res);
+       sysdata = syscommon_resman_get_resource_privdata(resource_id);
        if (!sysdata)
                return -EINVAL;