18b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol/* 28b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Copyright (c) 2014 Intel Corporation 38b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 48b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Licensed under the Apache License, Version 2.0 (the "License"); 58b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// you may not use this file except in compliance with the License. 68b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// You may obtain a copy of the License at 78b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 88b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// http://www.apache.org/licenses/LICENSE-2.0 98b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 108b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Unless required by applicable law or agreed to in writing, software 118b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// distributed under the License is distributed on an "AS IS" BASIS, 128b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// See the License for the specific language governing permissions and 148b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// limitations under the License. 158b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol*/ 168b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#ifndef TNG_GRALLOC_BUFFER_MAPPER_H 178b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#define TNG_GRALLOC_BUFFER_MAPPER_H 188b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 198b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#include <BufferMapper.h> 208b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#include <hal_public.h> 218b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#include <common/GrallocBufferMapperBase.h> 228b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#include <tangier/TngGrallocBuffer.h> 238b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 248b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolnamespace android { 258b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolnamespace intel { 268b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 278b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolclass TngGrallocBufferMapper : public GrallocBufferMapperBase { 288b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolpublic: 293413b71d9be6302c07d792b40cb232be5d683420Alistair Strachan TngGrallocBufferMapper(gralloc_module_t const& module, 308b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol DataBuffer& buffer); 318b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol virtual ~TngGrallocBufferMapper(); 328b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolpublic: 338b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol bool map(); 348b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol bool unmap(); 358b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol buffer_handle_t getKHandle(int subIndex); 368b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol buffer_handle_t getFbHandle(int subIndex); 378b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol void putFbHandle(); 388b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolprivate: 398b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol bool gttMap(void *vaddr, uint32_t size, uint32_t gttAlign, int *offset); 408b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol bool gttUnmap(void *vaddr); 418b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol bool mapKhandle(); 428b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 438b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolprivate: 443413b71d9be6302c07d792b40cb232be5d683420Alistair Strachan gralloc_module_t const& mGrallocModule; 458b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol void* mBufferObject; 468b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol native_handle_t* mClonedHandle; 478b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol}; 488b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 498b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol} // namespace intel 508b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol} // namespace android 518b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 528b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#endif /* TNG_GRALLOC_BUFFER_MAPPER_H */ 53