1ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross/* 2ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * Copyright (C) 2013 The Android Open Source Project 3ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * 4ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * Licensed under the Apache License, Version 2.0 (the "License"); 5ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * you may not use this file except in compliance with the License. 6ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * You may obtain a copy of the License at 7ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * 8ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * http://www.apache.org/licenses/LICENSE-2.0 9ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * 10ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * Unless required by applicable law or agreed to in writing, software 11ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * distributed under the License is distributed on an "AS IS" BASIS, 12ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * See the License for the specific language governing permissions and 14ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross * limitations under the License. 15ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross */ 16ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 17ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross#include <errno.h> 18ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 19ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross#include <hardware/memtrack.h> 20ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 21ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross#include "memtrack_exynos5.h" 22ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 23ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Crossint exynos5_memtrack_init(const struct memtrack_module *module) 24ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross{ 25ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross return 0; 26ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross} 27ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 28ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Crossint exynos5_memtrack_get_memory(const struct memtrack_module *module, 29ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross pid_t pid, 30884ab8ada3f087be212c44aedc47d5e1fa959230Colin Cross int type, 31ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross struct memtrack_record *records, 32ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross size_t *num_records) 33ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross{ 34ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross if (type == MEMTRACK_TYPE_GL) { 35ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross return mali_memtrack_get_memory(pid, type, records, num_records); 36ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross } 37ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 38ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross return -EINVAL; 39ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross} 40ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 41ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Crossstatic struct hw_module_methods_t memtrack_module_methods = { 42ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross .open = NULL, 43ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross}; 44ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 45ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Crossstruct memtrack_module HAL_MODULE_INFO_SYM = { 46ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross common: { 47ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross tag: HARDWARE_MODULE_TAG, 48ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross module_api_version: MEMTRACK_MODULE_API_VERSION_0_1, 49ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross hal_api_version: HARDWARE_HAL_API_VERSION, 50ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross id: MEMTRACK_HARDWARE_MODULE_ID, 51ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross name: "Exynos5 Memory Tracker HAL", 52ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross author: "The Android Open Source Project", 53ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross methods: &memtrack_module_methods, 54ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross }, 55ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 56ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross init: exynos5_memtrack_init, 57ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross getMemory: exynos5_memtrack_get_memory, 58ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross}; 59ae453ee7dc0693c9d375baf0e1e43811cccf224fColin Cross 60