blob: 7d97fc28c02b7596abfa4fe38a1e763c010fa1b6 [file] [log] [blame]
Roman Kiryanovb6fce5b2018-09-27 16:18:58 -07001/*
2 * Copyright (C) 2018 Google, Inc.
3 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 */
14
15#ifndef ANDROID_INCLUDE_HARDWARE_AUTO_GOLDFISH_DMA_CONTEXT_H
16#define ANDROID_INCLUDE_HARDWARE_AUTO_GOLDFISH_DMA_CONTEXT_H
17
18#include <inttypes.h>
19#include "goldfish_dma.h"
20
21// A C++ wrapper for goldfish_dma_context that releases resources in dctor.
22class AutoGoldfishDmaContext {
23public:
24 AutoGoldfishDmaContext();
25 explicit AutoGoldfishDmaContext(goldfish_dma_context *ctx);
26 ~AutoGoldfishDmaContext();
27
28 const goldfish_dma_context &get() const { return m_ctx; }
29 void reset(goldfish_dma_context *ctx);
30 goldfish_dma_context release();
31
32private:
33 AutoGoldfishDmaContext(const AutoGoldfishDmaContext &rhs);
34 AutoGoldfishDmaContext& operator=(const AutoGoldfishDmaContext &rhs);
35
36 goldfish_dma_context m_ctx;
37};
38
39#endif // ANDROID_INCLUDE_HARDWARE_AUTO_GOLDFISH_DMA_CONTEXT_H