enum monitor_data_type {
DATA_TYPE_UNKNOWN = 0,
DATA_TYPE_INT,
+ DATA_TYPE_INT64,
+ DATA_TYPE_UINT,
+ DATA_TYPE_UINT64,
DATA_TYPE_DOUBLE,
DATA_TYPE_STRING,
DATA_TYPE_ARRAY,
struct resource_attribute_value *
get_resource_attr_value(struct resource *resource, u_int64_t attr_id);
-int get_resource_attr_integer(struct resource *resource, u_int64_t attr_id, int *data);
+int get_resource_attr_int(struct resource *resource, u_int64_t attr_id, int32_t *data);
+int get_resource_attr_int64(struct resource *resource, u_int64_t attr_id, int64_t *data);
+int get_resource_attr_uint(struct resource *resource, u_int64_t attr_id, u_int32_t *data);
+int get_resource_attr_uint64(struct resource *resource, u_int64_t attr_id, u_int32_t *data);
int get_resource_attr_double(struct resource *resource, u_int64_t attr_id, double *data);
int get_resource_attr_string(struct resource *resource, u_int64_t attr_id, char **data);
int put_resource_attr_string(struct resource *resource, u_int64_t attr_id);
return true;
}
-int get_resource_attr_integer(struct resource *resource, u_int64_t attr_id, int *data)
+int get_resource_attr_int(struct resource *resource, u_int64_t attr_id, int32_t *data)
{
struct resource_attribute_value *attr_value = NULL;
if (!attr_value)
return -EINVAL;
- *data = (int)(intptr_t)attr_value->data;
+ *data = (int32_t)(intptr_t)attr_value->data;
+
+ return 0;
+}
+
+int get_resource_attr_int64(struct resource *resource, u_int64_t attr_id, int64_t *data)
+{
+ struct resource_attribute_value *attr_value = NULL;
+
+ if (!check_attr_validate(resource, attr_id, DATA_TYPE_INT))
+ return -EINVAL;
+
+ attr_value = get_resource_attr_value(resource, attr_id);
+ if (!attr_value)
+ return -EINVAL;
+
+ *data = (int64_t)(intptr_t)attr_value->data;
+
+ return 0;
+}
+
+int get_resource_attr_uint(struct resource *resource, u_int64_t attr_id, u_int32_t *data)
+{
+ struct resource_attribute_value *attr_value = NULL;
+
+ if (!check_attr_validate(resource, attr_id, DATA_TYPE_INT))
+ return -EINVAL;
+
+ attr_value = get_resource_attr_value(resource, attr_id);
+ if (!attr_value)
+ return -EINVAL;
+
+ *data = (u_int32_t)(intptr_t)attr_value->data;
+
+ return 0;
+}
+
+int get_resource_attr_uint64(struct resource *resource, u_int64_t attr_id, u_int32_t *data)
+{
+ struct resource_attribute_value *attr_value = NULL;
+
+ if (!check_attr_validate(resource, attr_id, DATA_TYPE_INT))
+ return -EINVAL;
+
+ attr_value = get_resource_attr_value(resource, attr_id);
+ if (!attr_value)
+ return -EINVAL;
+
+ *data = (u_int64_t)(intptr_t)attr_value->data;
return 0;
}