blob: 918c6b9c0bf394cb7a5fcc823a75963ff97e50c5 [file] [log] [blame]
Naseer Ahmede36f2242017-12-01 15:33:56 -05001/*
Tharaga Balachandran74ab1112020-01-08 17:17:56 -05002 * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
Naseer Ahmede36f2242017-12-01 15:33:56 -05003 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of The Linux Foundation. nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30#ifndef __QTIALLOCATOR_H__
31#define __QTIALLOCATOR_H__
32
33#include <hidl/MQDescriptor.h>
34#include <hidl/Status.h>
Tharaga Balachandranab150ab2019-09-26 19:17:58 -040035#include <vendor/qti/hardware/display/allocator/3.0/IQtiAllocator.h>
Tharaga Balachandran74ab1112020-01-08 17:17:56 -050036#include <vendor/qti/hardware/display/allocator/4.0/IQtiAllocator.h>
Naseer Ahmede36f2242017-12-01 15:33:56 -050037
38#include "gr_buf_mgr.h"
Tharaga Balachandran74ab1112020-01-08 17:17:56 -050039#include "gr_utils.h"
Naseer Ahmede36f2242017-12-01 15:33:56 -050040
41namespace vendor {
42namespace qti {
43namespace hardware {
44namespace display {
45namespace allocator {
Tharaga Balachandranab150ab2019-09-26 19:17:58 -040046namespace V3_0 {
Naseer Ahmede36f2242017-12-01 15:33:56 -050047namespace implementation {
48
Tharaga Balachandranab150ab2019-09-26 19:17:58 -040049using ::android::sp;
Naseer Ahmede36f2242017-12-01 15:33:56 -050050using ::android::hardware::hidl_array;
51using ::android::hardware::hidl_memory;
52using ::android::hardware::hidl_string;
53using ::android::hardware::hidl_vec;
Tharaga Balachandranab150ab2019-09-26 19:17:58 -040054using ::android::hardware::Return;
55using ::android::hardware::Void;
Tharaga Balachandran74ab1112020-01-08 17:17:56 -050056using android::hardware::graphics::allocator::V3_0::IAllocator;
Naseer Ahmede36f2242017-12-01 15:33:56 -050057using ::android::hidl::base::V1_0::DebugInfo;
58using ::android::hidl::base::V1_0::IBase;
Naseer Ahmede36f2242017-12-01 15:33:56 -050059using gralloc::BufferManager;
Tharaga Balachandran74ab1112020-01-08 17:17:56 -050060using vendor::qti::hardware::display::allocator::V3_0::IQtiAllocator;
Naseer Ahmede36f2242017-12-01 15:33:56 -050061
Ashish Kumarf04c3de2018-08-01 14:45:14 +053062class QtiAllocator : public IQtiAllocator {
Naseer Ahmede36f2242017-12-01 15:33:56 -050063 public:
64 QtiAllocator();
Tharaga Balachandran74ab1112020-01-08 17:17:56 -050065
Naseer Ahmede36f2242017-12-01 15:33:56 -050066 // Methods from ::android::hardware::graphics::allocator::V2_0::IAllocator follow.
67 Return<void> dumpDebugInfo(dumpDebugInfo_cb _hidl_cb) override;
68 Return<void> allocate(const hidl_vec<uint32_t> &descriptor, uint32_t count,
69 allocate_cb _hidl_cb) override;
70
71 // Methods from ::android::hidl::base::V1_0::IBase follow.
72 private:
73 BufferManager *buf_mgr_ = nullptr;
74};
75
Naseer Ahmede36f2242017-12-01 15:33:56 -050076} // namespace implementation
Tharaga Balachandranab150ab2019-09-26 19:17:58 -040077} // namespace V3_0
Naseer Ahmede36f2242017-12-01 15:33:56 -050078} // namespace allocator
79} // namespace display
80} // namespace hardware
81} // namespace qti
82} // namespace vendor
83
Tharaga Balachandran74ab1112020-01-08 17:17:56 -050084namespace vendor {
85namespace qti {
86namespace hardware {
87namespace display {
88namespace allocator {
89namespace V4_0 {
90namespace implementation {
91
92using ::android::sp;
93using ::android::hardware::hidl_array;
94using ::android::hardware::hidl_memory;
95using ::android::hardware::hidl_string;
96using ::android::hardware::hidl_vec;
97using ::android::hardware::Return;
98using ::android::hardware::Void;
99using android::hardware::graphics::allocator::V4_0::IAllocator;
100using ::android::hidl::base::V1_0::DebugInfo;
101using ::android::hidl::base::V1_0::IBase;
102using gralloc::BufferManager;
103using vendor::qti::hardware::display::allocator::V4_0::IQtiAllocator;
104
105class QtiAllocator : public IQtiAllocator {
106 public:
107 QtiAllocator();
108
109 // Methods from ::android::hardware::graphics::allocator::V4_0::IAllocator follow.
110 Return<void> allocate(const hidl_vec<uint8_t> &descriptor, uint32_t count,
111 allocate_cb _hidl_cb) override;
112
113 // Methods from ::android::hidl::base::V1_0::IBase follow.
114 private:
115 BufferManager *buf_mgr_ = nullptr;
116};
117
118} // namespace implementation
119} // namespace V4_0
120} // namespace allocator
121} // namespace display
122} // namespace hardware
123} // namespace qti
124} // namespace vendor
125
Naseer Ahmede36f2242017-12-01 15:33:56 -0500126#endif // __QTIALLOCATOR_H__