1*03ce13f7SAndroid Build Coastguard Worker /* 2*03ce13f7SAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project 3*03ce13f7SAndroid Build Coastguard Worker * 4*03ce13f7SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*03ce13f7SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*03ce13f7SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*03ce13f7SAndroid Build Coastguard Worker * 8*03ce13f7SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*03ce13f7SAndroid Build Coastguard Worker * 10*03ce13f7SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*03ce13f7SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*03ce13f7SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*03ce13f7SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*03ce13f7SAndroid Build Coastguard Worker * limitations under the License. 15*03ce13f7SAndroid Build Coastguard Worker */ 16*03ce13f7SAndroid Build Coastguard Worker 17*03ce13f7SAndroid Build Coastguard Worker #pragma once 18*03ce13f7SAndroid Build Coastguard Worker 19*03ce13f7SAndroid Build Coastguard Worker #include <cutils/native_handle.h> 20*03ce13f7SAndroid Build Coastguard Worker 21*03ce13f7SAndroid Build Coastguard Worker #include <hardware/hardware.h> 22*03ce13f7SAndroid Build Coastguard Worker 23*03ce13f7SAndroid Build Coastguard Worker struct android_ycbcr; 24*03ce13f7SAndroid Build Coastguard Worker 25*03ce13f7SAndroid Build Coastguard Worker enum { 26*03ce13f7SAndroid Build Coastguard Worker GRALLOC_USAGE_SW_READ_OFTEN = 0x00000003U, 27*03ce13f7SAndroid Build Coastguard Worker GRALLOC_USAGE_SW_WRITE_OFTEN = 0x00000030U, 28*03ce13f7SAndroid Build Coastguard Worker GRALLOC_USAGE_HW_TEXTURE = 0x00000100U, 29*03ce13f7SAndroid Build Coastguard Worker GRALLOC_USAGE_HW_RENDER = 0x00000200U, 30*03ce13f7SAndroid Build Coastguard Worker }; 31*03ce13f7SAndroid Build Coastguard Worker 32*03ce13f7SAndroid Build Coastguard Worker struct gralloc_module_t { 33*03ce13f7SAndroid Build Coastguard Worker hw_module_t common; 34*03ce13f7SAndroid Build Coastguard Worker int (*registerBuffer)(gralloc_module_t const*, buffer_handle_t); 35*03ce13f7SAndroid Build Coastguard Worker int (*unregisterBuffer)(gralloc_module_t const*, buffer_handle_t); 36*03ce13f7SAndroid Build Coastguard Worker int (*lock)(gralloc_module_t const*, buffer_handle_t, int, int, int, int, int, void**); 37*03ce13f7SAndroid Build Coastguard Worker int (*unlock)(gralloc_module_t const*, buffer_handle_t); 38*03ce13f7SAndroid Build Coastguard Worker int (*perform)(gralloc_module_t const*, int, ...); 39*03ce13f7SAndroid Build Coastguard Worker int (*lock_ycbcr)(gralloc_module_t const*, buffer_handle_t, int, int, int, int, int, 40*03ce13f7SAndroid Build Coastguard Worker android_ycbcr*); 41*03ce13f7SAndroid Build Coastguard Worker int (*lockAsync)(gralloc_module_t const*, buffer_handle_t, int, int, int, int, int, void**, int); 42*03ce13f7SAndroid Build Coastguard Worker int (*unlockAsync)(gralloc_module_t const*, buffer_handle_t, int*); 43*03ce13f7SAndroid Build Coastguard Worker int (*lockAsync_ycbcr)(gralloc_module_t const*, buffer_handle_t, int, int, int, int, int, 44*03ce13f7SAndroid Build Coastguard Worker android_ycbcr*, int); 45*03ce13f7SAndroid Build Coastguard Worker int32_t (*getTransportSize)(gralloc_module_t const*, buffer_handle_t, uint32_t, uint32_t); 46*03ce13f7SAndroid Build Coastguard Worker int32_t (*validateBufferSize)(gralloc_module_t const*, buffer_handle_t, uint32_t, uint32_t, int32_t, int, uint32_t); 47*03ce13f7SAndroid Build Coastguard Worker 48*03ce13f7SAndroid Build Coastguard Worker void* reserved_proc[1]; 49*03ce13f7SAndroid Build Coastguard Worker }; 50