/* * Copyright 2020 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include #include "cros_gralloc/cros_gralloc_driver.h" #include "cros_gralloc/cros_gralloc_handle.h" class CrosGralloc4Mapper : public android::hardware::graphics::mapper::V4_0::IMapper { public: CrosGralloc4Mapper(); ~CrosGralloc4Mapper(); android::hardware::Return createDescriptor(const BufferDescriptorInfo& description, createDescriptor_cb hidlCb) override; android::hardware::Return importBuffer(const android::hardware::hidl_handle& rawHandle, importBuffer_cb hidlCb) override; android::hardware::Return freeBuffer( void* rawHandle) override; android::hardware::Return validateBufferSize( void* rawHandle, const BufferDescriptorInfo& descriptor, uint32_t stride) override; android::hardware::Return getTransportSize(void* rawHandle, getTransportSize_cb hidlCb) override; android::hardware::Return lock(void* rawHandle, uint64_t cpuUsage, const Rect& accessRegion, const android::hardware::hidl_handle& acquireFence, lock_cb hidlCb) override; android::hardware::Return unlock(void* rawHandle, unlock_cb hidlCb) override; android::hardware::Return flushLockedBuffer(void* rawHandle, flushLockedBuffer_cb hidlCb) override; android::hardware::Return rereadLockedBuffer( void* rawHandle) override; android::hardware::Return isSupported(const BufferDescriptorInfo& descriptor, isSupported_cb hidlCb) override; android::hardware::Return get(void* rawHandle, const MetadataType& metadataType, get_cb hidlCb) override; android::hardware::Return set( void* rawHandle, const MetadataType& metadataType, const android::hardware::hidl_vec& metadata) override; android::hardware::Return getFromBufferDescriptorInfo( const BufferDescriptorInfo& descriptor, const MetadataType& metadataType, getFromBufferDescriptorInfo_cb hidlCb) override; android::hardware::Return listSupportedMetadataTypes( listSupportedMetadataTypes_cb hidlCb) override; android::hardware::Return dumpBuffer(void* rawHandle, dumpBuffer_cb hidlCb) override; android::hardware::Return dumpBuffers(dumpBuffers_cb hidlCb) override; android::hardware::Return getReservedRegion(void* rawHandle, getReservedRegion_cb hidlCb) override; private: android::hardware::Return get(cros_gralloc_handle_t crosHandle, const MetadataType& metadataType, get_cb hidlCb); android::hardware::Return dumpBuffer(cros_gralloc_handle_t crosHandle, dumpBuffer_cb hidlCb); int getResolvedDrmFormat(android::hardware::graphics::common::V1_2::PixelFormat pixelFormat, uint64_t bufferUsage, uint32_t* outDrmFormat); cros_gralloc_driver* mDriver = nullptr; }; extern "C" android::hardware::graphics::mapper::V4_0::IMapper* HIDL_FETCH_IMapper(const char* name);