--- /dev/null
+/*
+ * PASS (Power Aware System Service) - Header file of Unified Resource Monitor
+ *
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file monitor.h
+ * @brief Define the data structure for Unified Resource Monitor
+ * @ingroup COM_POWER_MGNT
+ */
+
+#include <hal/hal-power.h>
+
+#ifndef __UNIFIED_RESOURCE_MONITOR__
+#define __UNIFIED_RESOURCE_MONITOR__
+
+#define RESOURCE_TYPE_SHIFT 16
+#define RESOURCE_ATTR_INDEX_MASK (0xffff)
+
+#define RESOURCE_TYPE(command) (command >> RESOURCE_TYPE_SHIFT)
+#define RESOURCE_ATTR_INDEX(command) (command & RESOURCE_ATTR_INDEX_MASK)
+
+enum monitor_data_type {
+ DATA_TYPE_UNKNOWN = 0,
+ DATA_TYPE_INT,
+ DATA_TYPE_DOUBLE,
+ DATA_TYPE_STRING,
+ DATA_TYPE_ARRAY,
+
+ DATA_TYPE_NUM
+};
+
+#define CPU_CUR_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 0)
+#define CPU_MIN_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 1)
+#define CPU_MAX_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 2)
+#define CPU_AVAILABLE_MIN_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 3)
+#define CPU_AVAILABLE_MAX_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 4)
+#define CPU_CUR_GOVERNOR (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 5)
+#define CPU_ONLINE_CPU (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 6)
+#define CPU_TEMPERATURE (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 7)
+
+#define BUS_CUR_FREQ (PASS_RESOURCE_BUS_ID << RESOURCE_TYPE_SHIFT | 0)
+#define BUS_MIN_FREQ (PASS_RESOURCE_BUS_ID << RESOURCE_TYPE_SHIFT | 1)
+#define BUS_MAX_FREQ (PASS_RESOURCE_BUS_ID << RESOURCE_TYPE_SHIFT | 2)
+#define BUS_AVAILABLE_MIN_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 3)
+#define BUS_AVAILABLE_MAX_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 4)
+#define BUS_CUR_GOVERNOR (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 5)
+
+#define GPU_CUR_FREQ (PASS_RESOURCE_GPU_ID << RESOURCE_TYPE_SHIFT | 0)
+#define GPU_MIN_FREQ (PASS_RESOURCE_GPU_ID << RESOURCE_TYPE_SHIFT | 1)
+#define GPU_MAX_FREQ (PASS_RESOURCE_GPU_ID << RESOURCE_TYPE_SHIFT | 2)
+#define GPU_AVAILABLE_MIN_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 3)
+#define GPU_AVAILABLE_MAX_FREQ (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 4)
+#define GPU_CUR_GOVERNOR (PASS_RESOURCE_CPU_ID << RESOURCE_TYPE_SHIFT | 5)
+#define GPU_TEMPERATURE (PASS_RESOURCE_GPU_ID << RESOURCE_TYPE_SHIFT | 6)
+
+#define MEMORY_TOTAL (PASS_RESOURCE_MEMORY_ID << RESOURCE_TYPE_SHIFT | 0)
+#define MEMORY_FREE (PASS_RESOURCE_MEMORY_ID << RESOURCE_TYPE_SHIFT | 1)
+#define MEMORY_USED (PASS_RESOURCE_MEMORY_ID << RESOURCE_TYPE_SHIFT | 2)
+#define MEMORY_AVAIALBLE (PASS_RESOURCE_MEMORY_ID << RESOURCE_TYPE_SHIFT | 3)
+#define MEMORY_FAULT_AROUND_BYTES (PASS_RESOURCE_MEMORY_ID << RESOURCE_TYPE_SHIFT | 4)
+
+#define BATTERY_CAPACITY (PASS_RESOURCE_BATTERY_ID << RESOURCE_TYPE_SHIFT | 0)
+#define BATTERY_CHARGING_STATUS (PASS_RESOURCE_BATTERY_ID << RESOURCE_TYPE_SHIFT | 1)
+#define BATTERY_TEMPERATURE (PASS_RESOURCE_BATTERY_ID << RESOURCE_TYPE_SHIFT | 2)
+
+#endif /* __UNIFIED_RESOURCE_MONITOR__ */