197b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi/*
297b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * Copyright (C) 2016 The Android Open Source Project
397b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi *
497b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * Licensed under the Apache License, Version 2.0 (the "License");
597b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * you may not use this file except in compliance with the License.
697b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * You may obtain a copy of the License at
797b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi *
897b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi *      http://www.apache.org/licenses/LICENSE-2.0
997b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi *
1097b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * Unless required by applicable law or agreed to in writing, software
1197b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * distributed under the License is distributed on an "AS IS" BASIS,
1297b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1397b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * See the License for the specific language governing permissions and
1497b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi * limitations under the License.
1597b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi */
1697b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
17d6e4f03acf5fa1e76b75e33af7a26f248a92be9aSteven Moreland#ifndef ANDROID_HARDWARE_MEMTRACK_V1_0_MEMTRACK_H
18d6e4f03acf5fa1e76b75e33af7a26f248a92be9aSteven Moreland#define ANDROID_HARDWARE_MEMTRACK_V1_0_MEMTRACK_H
1997b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
2097b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi#include <android/hardware/memtrack/1.0/IMemtrack.h>
2197b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi#include <hidl/Status.h>
2297b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
2397b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi#include <hidl/MQDescriptor.h>
2497b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoinamespace android {
2597b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoinamespace hardware {
2697b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoinamespace memtrack {
2797b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoinamespace V1_0 {
2897b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoinamespace implementation {
2997b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
3097b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::memtrack::V1_0::IMemtrack;
3197b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::memtrack::V1_0::MemtrackRecord;
3297b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::memtrack::V1_0::MemtrackStatus;
3397b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::memtrack::V1_0::MemtrackType;
3497b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::Return;
3597b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::Void;
3697b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::hidl_vec;
3797b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::hardware::hidl_string;
3897b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiusing ::android::sp;
3997b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
4097b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoistruct Memtrack : public IMemtrack {
4156dfb756b87ad4974eef07b7815767c07d807eadConnor O'Brien    Memtrack(const memtrack_module_t* module);
4297b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi    ~Memtrack();
4397b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi    Return<void> getMemory(int32_t pid, MemtrackType type, getMemory_cb _hidl_cb)  override;
4497b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
4597b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi  private:
4656dfb756b87ad4974eef07b7815767c07d807eadConnor O'Brien    const memtrack_module_t* mModule;
4797b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi};
4897b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
4997b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoiextern "C" IMemtrack* HIDL_FETCH_IMemtrack(const char* name);
5097b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
5197b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi}  // namespace implementation
5297b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi}  // namespace V1_0
5397b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi}  // namespace memtrack
5497b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi}  // namespace hardware
5597b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi}  // namespace android
5697b2f250880468ad8c7ed370a420d2f6ba904c6dRuchi Kandoi
57d6e4f03acf5fa1e76b75e33af7a26f248a92be9aSteven Moreland#endif  // ANDROID_HARDWARE_MEMTRACK_V1_0_MEMTRACK_H
58