diff options
Diffstat (limited to 'gralloc4/src/libGralloc4Wrapper/wrapper.cpp')
-rw-r--r-- | gralloc4/src/libGralloc4Wrapper/wrapper.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gralloc4/src/libGralloc4Wrapper/wrapper.cpp b/gralloc4/src/libGralloc4Wrapper/wrapper.cpp index c516f21..07374ad 100644 --- a/gralloc4/src/libGralloc4Wrapper/wrapper.cpp +++ b/gralloc4/src/libGralloc4Wrapper/wrapper.cpp @@ -5,6 +5,7 @@ #include "core/format_info.h" #include "core/mali_gralloc_bufferdescriptor.h" #include "core/mali_gralloc_bufferallocation.h" +#include "core/mali_gralloc_reference.h" #include "allocator/mali_gralloc_ion.h" #include "hidl_common/SharedMetadata.h" #include "gralloc_priv.h" @@ -186,4 +187,23 @@ buffer_handle_t createNativeHandle(const Descriptor &descriptor) { return tmp_buffer; } + +android::hardware::graphics::mapper::V4_0::Error retain(buffer_handle_t handle) { + int err = mali_gralloc_reference_retain(handle); + if (err == -EINVAL) { + return android::hardware::graphics::mapper::V4_0::Error::BAD_BUFFER; + } else if (err) { + return android::hardware::graphics::mapper::V4_0::Error::NO_RESOURCES; + } + return android::hardware::graphics::mapper::V4_0::Error::NONE; +} + +android::hardware::graphics::mapper::V4_0::Error release(buffer_handle_t handle) { + int err = mali_gralloc_reference_release(handle, true); + if (err) { + return android::hardware::graphics::mapper::V4_0::Error::BAD_BUFFER; + } + return android::hardware::graphics::mapper::V4_0::Error::NONE; +} + } // namespace android::hardware::graphics::allocator::priv |