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