drm_global.h revision 247834
1264377Sdes/************************************************************************** 292555Sdes * 360573Skris * Copyright 2008-2009 VMware, Inc., Palo Alto, CA., USA 465668Skris * All Rights Reserved. 565668Skris * 665668Skris * Permission is hereby granted, free of charge, to any person obtaining a 765668Skris * copy of this software and associated documentation files (the 865668Skris * "Software"), to deal in the Software without restriction, including 965668Skris * without limitation the rights to use, copy, modify, merge, publish, 1065668Skris * distribute, sub license, and/or sell copies of the Software, and to 1165668Skris * permit persons to whom the Software is furnished to do so, subject to 1265668Skris * the following conditions: 1365668Skris * 1465668Skris * The above copyright notice and this permission notice (including the 1565668Skris * next paragraph) shall be included in all copies or substantial portions 1665668Skris * of the Software. 1765668Skris * 1865668Skris * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1965668Skris * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2065668Skris * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 2165668Skris * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, 2265668Skris * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 2365668Skris * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 2465668Skris * USE OR OTHER DEALINGS IN THE SOFTWARE. 2565668Skris * 2665668Skris **************************************************************************/ 2765668Skris/* 2861209Skris * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com> 2960573Skris */ 3060573Skris/* $FreeBSD: head/sys/dev/drm2/drm_global.h 247834 2013-03-05 09:27:21Z kib $ */ 3160573Skris 3260573Skris#ifndef _DRM_GLOBAL_H_ 3360573Skris#define _DRM_GLOBAL_H_ 3460573Skrisenum drm_global_types { 3560573Skris DRM_GLOBAL_TTM_MEM = 0, 3660573Skris DRM_GLOBAL_TTM_BO, 3760573Skris DRM_GLOBAL_TTM_OBJECT, 3860573Skris DRM_GLOBAL_NUM 3960573Skris}; 4060573Skris 4160573Skrisstruct drm_global_reference { 4260573Skris enum drm_global_types global_type; 4360573Skris size_t size; 4460573Skris void *object; 4560573Skris int (*init) (struct drm_global_reference *); 4660573Skris void (*release) (struct drm_global_reference *); 4760573Skris}; 4860573Skris 4960573Skrisextern void drm_global_init(void); 5060573Skrisextern void drm_global_release(void); 5160573Skrisextern int drm_global_item_ref(struct drm_global_reference *ref); 5260573Skrisextern void drm_global_item_unref(struct drm_global_reference *ref); 5360573Skris 5460573SkrisMALLOC_DECLARE(M_DRM_GLOBAL); 5560573Skris 5660573Skris#endif 5760573Skris