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