1*7688df22SAndroid Build Coastguard Worker /************************************************************************** 2*7688df22SAndroid Build Coastguard Worker * 3*7688df22SAndroid Build Coastguard Worker * Copyright © 2009 VMware, Inc., Palo Alto, CA., USA 4*7688df22SAndroid Build Coastguard Worker * All Rights Reserved. 5*7688df22SAndroid Build Coastguard Worker * 6*7688df22SAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a 7*7688df22SAndroid Build Coastguard Worker * copy of this software and associated documentation files (the 8*7688df22SAndroid Build Coastguard Worker * "Software"), to deal in the Software without restriction, including 9*7688df22SAndroid Build Coastguard Worker * without limitation the rights to use, copy, modify, merge, publish, 10*7688df22SAndroid Build Coastguard Worker * distribute, sub license, and/or sell copies of the Software, and to 11*7688df22SAndroid Build Coastguard Worker * permit persons to whom the Software is furnished to do so, subject to 12*7688df22SAndroid Build Coastguard Worker * the following conditions: 13*7688df22SAndroid Build Coastguard Worker * 14*7688df22SAndroid Build Coastguard Worker * The above copyright notice and this permission notice (including the 15*7688df22SAndroid Build Coastguard Worker * next paragraph) shall be included in all copies or substantial portions 16*7688df22SAndroid Build Coastguard Worker * of the Software. 17*7688df22SAndroid Build Coastguard Worker * 18*7688df22SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19*7688df22SAndroid Build Coastguard Worker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20*7688df22SAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 21*7688df22SAndroid Build Coastguard Worker * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, 22*7688df22SAndroid Build Coastguard Worker * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 23*7688df22SAndroid Build Coastguard Worker * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 24*7688df22SAndroid Build Coastguard Worker * USE OR OTHER DEALINGS IN THE SOFTWARE. 25*7688df22SAndroid Build Coastguard Worker * 26*7688df22SAndroid Build Coastguard Worker **************************************************************************/ 27*7688df22SAndroid Build Coastguard Worker 28*7688df22SAndroid Build Coastguard Worker 29*7688df22SAndroid Build Coastguard Worker #ifndef INTERNAL_H_ 30*7688df22SAndroid Build Coastguard Worker #define INTERNAL_H_ 31*7688df22SAndroid Build Coastguard Worker 32*7688df22SAndroid Build Coastguard Worker #include "libdrm_macros.h" 33*7688df22SAndroid Build Coastguard Worker #include "libkms.h" 34*7688df22SAndroid Build Coastguard Worker 35*7688df22SAndroid Build Coastguard Worker struct kms_driver 36*7688df22SAndroid Build Coastguard Worker { 37*7688df22SAndroid Build Coastguard Worker int (*get_prop)(struct kms_driver *kms, const unsigned key, 38*7688df22SAndroid Build Coastguard Worker unsigned *out); 39*7688df22SAndroid Build Coastguard Worker int (*destroy)(struct kms_driver *kms); 40*7688df22SAndroid Build Coastguard Worker 41*7688df22SAndroid Build Coastguard Worker int (*bo_create)(struct kms_driver *kms, 42*7688df22SAndroid Build Coastguard Worker unsigned width, 43*7688df22SAndroid Build Coastguard Worker unsigned height, 44*7688df22SAndroid Build Coastguard Worker enum kms_bo_type type, 45*7688df22SAndroid Build Coastguard Worker const unsigned *attr, 46*7688df22SAndroid Build Coastguard Worker struct kms_bo **out); 47*7688df22SAndroid Build Coastguard Worker int (*bo_get_prop)(struct kms_bo *bo, const unsigned key, 48*7688df22SAndroid Build Coastguard Worker unsigned *out); 49*7688df22SAndroid Build Coastguard Worker int (*bo_map)(struct kms_bo *bo, void **out); 50*7688df22SAndroid Build Coastguard Worker int (*bo_unmap)(struct kms_bo *bo); 51*7688df22SAndroid Build Coastguard Worker int (*bo_destroy)(struct kms_bo *bo); 52*7688df22SAndroid Build Coastguard Worker 53*7688df22SAndroid Build Coastguard Worker int fd; 54*7688df22SAndroid Build Coastguard Worker }; 55*7688df22SAndroid Build Coastguard Worker 56*7688df22SAndroid Build Coastguard Worker struct kms_bo 57*7688df22SAndroid Build Coastguard Worker { 58*7688df22SAndroid Build Coastguard Worker struct kms_driver *kms; 59*7688df22SAndroid Build Coastguard Worker void *ptr; 60*7688df22SAndroid Build Coastguard Worker size_t size; 61*7688df22SAndroid Build Coastguard Worker size_t offset; 62*7688df22SAndroid Build Coastguard Worker size_t pitch; 63*7688df22SAndroid Build Coastguard Worker unsigned handle; 64*7688df22SAndroid Build Coastguard Worker }; 65*7688df22SAndroid Build Coastguard Worker 66*7688df22SAndroid Build Coastguard Worker drm_private int linux_create(int fd, struct kms_driver **out); 67*7688df22SAndroid Build Coastguard Worker 68*7688df22SAndroid Build Coastguard Worker drm_private int vmwgfx_create(int fd, struct kms_driver **out); 69*7688df22SAndroid Build Coastguard Worker 70*7688df22SAndroid Build Coastguard Worker drm_private int intel_create(int fd, struct kms_driver **out); 71*7688df22SAndroid Build Coastguard Worker 72*7688df22SAndroid Build Coastguard Worker drm_private int dumb_create(int fd, struct kms_driver **out); 73*7688df22SAndroid Build Coastguard Worker 74*7688df22SAndroid Build Coastguard Worker drm_private int nouveau_create(int fd, struct kms_driver **out); 75*7688df22SAndroid Build Coastguard Worker 76*7688df22SAndroid Build Coastguard Worker drm_private int radeon_create(int fd, struct kms_driver **out); 77*7688df22SAndroid Build Coastguard Worker 78*7688df22SAndroid Build Coastguard Worker drm_private int exynos_create(int fd, struct kms_driver **out); 79*7688df22SAndroid Build Coastguard Worker 80*7688df22SAndroid Build Coastguard Worker #endif 81