diff options
Diffstat (limited to 'lib/libdrm/intel/intel_bufmgr.c')
-rw-r--r-- | lib/libdrm/intel/intel_bufmgr.c | 236 |
1 files changed, 7 insertions, 229 deletions
diff --git a/lib/libdrm/intel/intel_bufmgr.c b/lib/libdrm/intel/intel_bufmgr.c index ac9b5f578..25a6828ca 100644 --- a/lib/libdrm/intel/intel_bufmgr.c +++ b/lib/libdrm/intel/intel_bufmgr.c @@ -51,6 +51,13 @@ drm_intel_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name, return bufmgr->bo_alloc(bufmgr, name, size, alignment); } +drm_intel_bo * +drm_intel_bo_alloc_for_render(drm_intel_bufmgr *bufmgr, const char *name, + unsigned long size, unsigned int alignment) +{ + return bufmgr->bo_alloc_for_render(bufmgr, name, size, alignment); +} + void drm_intel_bo_reference(drm_intel_bo *bo) { @@ -205,232 +212,3 @@ int drm_intel_bo_get_tiling(drm_intel_bo *bo, uint32_t *tiling_mode, *swizzle_mode = I915_BIT_6_SWIZZLE_NONE; return 0; } - -#if 0 -/* - * $XFree86: xc/lib/XThrStub/UIThrStubs.c,v 3.3 2001/11/18 21:13:26 herrb Exp $ - * - * Copyright (c) 1995 David E. Wexelblat. All rights reserved - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL DAVID E. WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of David E. Wexelblat shall - * not be used in advertising or otherwise to promote the sale, use or - * other dealings in this Software without prior written authorization - * from David E. Wexelblat. - * - */ - -/* - * Stubs for thread functions needed by the X library. Supports - * UnixWare 2.x threads; may support Solaris 2 threads as well, but not - * tested. Defining things this way removes the dependency of the X - * library on the threads library, but still supports threads if the user - * specificies the thread library on the link line. - */ - -/* - * Modifications by Carlos A M dos Santos, XFree86 Project, November 1999. - * - * Explanation from <X11/Xos_r.h>: - * The structure below is complicated, mostly because P1003.1c (the - * IEEE POSIX Threads spec) went through lots of drafts, and some - * vendors shipped systems based on draft API that were changed later. - * Unfortunately POSIX did not provide a feature-test macro for - * distinguishing each of the drafts. - */ - -#include <stdlib.h> - -static int _Xthr_once_stub_(void *, void (*)(void)); -static int _Xthr_key_create_stub_(unsigned int *, void (*)(void *)); -static int _Xthr_setspecific_stub_(unsigned int, const void *); -static void *_Xthr_getspecific_stub_(unsigned int); - -#ifdef CTHREADS -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif -#include <cthreads.h> -typedef cthread_t xthread_t; -#define xthread_self cthread_self -#pragma weak cthread_self = _Xthr_self_stub_ -#define xmutex_init mutex_init -#pragma weak mutex_init = _Xthr_zero_stub_ -#pragma weak mutex_clear = _Xthr_zero_stub_ -#pragma weak mutex_lock = _Xthr_zero_stub_ -#pragma weak mutex_unlock = _Xthr_zero_stub_ -#pragma weak condition_init = _Xthr_zero_stub_ -#pragma weak condition_clear = _Xthr_zero_stub_ -#pragma weak condition_wait = _Xthr_zero_stub_ -#pragma weak condition_signal = _Xthr_zero_stub_ -#pragma weak condition_broadcast = _Xthr_zero_stub_ -#else /* !CTHREADS */ -#if defined(SVR4) && !defined(__sgi) -#include <thread.h> -typedef thread_t xthread_t; -#pragma weak thr_self = _Xthr_self_stub_ -#pragma weak mutex_init = _Xthr_zero_stub_ -#pragma weak mutex_destroy = _Xthr_zero_stub_ -#pragma weak mutex_lock = _Xthr_zero_stub_ -#pragma weak mutex_unlock = _Xthr_zero_stub_ -#pragma weak cond_init = _Xthr_zero_stub_ -#pragma weak cond_destroy = _Xthr_zero_stub_ -#pragma weak cond_wait = _Xthr_zero_stub_ -#pragma weak cond_signal = _Xthr_zero_stub_ -#pragma weak cond_broadcast = _Xthr_zero_stub_ -#else /* !SVR4 */ -#ifdef WIN32 - /* - * Don't know what to do here. Is there something do be done at all? - */ -#else /* !WIN32 */ -#ifdef USE_TIS_SUPPORT -#include <tis.h> -typedef pthread_t xthread_t; -#pragma weak tis_self = _Xthr_self_stub_ -#pragma weak tis_mutex_init = _Xthr_zero_stub_ -#pragma weak tis_mutex_destroy = _Xthr_zero_stub_ -#pragma weak tis_mutex_lock = _Xthr_zero_stub_ -#pragma weak tis_mutex_unlock = _Xthr_zero_stub_ -#pragma weak tis_cond_init = _Xthr_zero_stub_ -#pragma weak tis_cond_destroy = _Xthr_zero_stub_ -#pragma weak tis_cond_wait = _Xthr_zero_stub_ -#pragma weak tis_cond_signal = _Xthr_zero_stub_ -#pragma weak tis_cond_broadcast = _Xthr_zero_stub_ -#else -#include <pthread.h> -typedef pthread_t xthread_t; -#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) -xthread_t pthread_self() __attribute__ ((weak, alias ("_Xthr_self_stub_"))); -int pthread_mutex_init() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_mutex_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_mutex_lock() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_mutex_unlock() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_cond_init() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_cond_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_cond_wait() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_cond_signal() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_cond_broadcast() __attribute__ ((weak, alias ("_Xthr_zero_stub_"))); -int pthread_key_create() __attribute__ ((weak, alias ("_Xthr_key_create_stub_"))); -void *pthread_getspecific() __attribute__ ((weak, alias ("_Xthr_getspecific_stub_"))); -int pthread_setspecific() __attribute__ ((weak, alias ("_Xthr_setspecific_stub_"))); -int pthread_once() __attribute__ ((weak, alias ("_Xthr_once_stub_"))); -#else /* __GNUC__ */ -#pragma weak pthread_self = _Xthr_self_stub_ -#pragma weak pthread_mutex_init = _Xthr_zero_stub_ -#pragma weak pthread_mutex_destroy = _Xthr_zero_stub_ -#pragma weak pthread_mutex_lock = _Xthr_zero_stub_ -#pragma weak pthread_mutex_unlock = _Xthr_zero_stub_ -#pragma weak pthread_cond_init = _Xthr_zero_stub_ -#pragma weak pthread_cond_destroy = _Xthr_zero_stub_ -#pragma weak pthread_cond_wait = _Xthr_zero_stub_ -#pragma weak pthread_cond_signal = _Xthr_zero_stub_ -#pragma weak pthread_cond_broadcast = _Xthr_zero_stub_ -/* These are added for libGL */ -#pragma weak pthread_key_create = _Xthr_key_create_stub_ -#pragma weak pthread_getspecific = _Xthr_getspecific_stub_ -#pragma weak pthread_setspecific = _Xthr_setspecific_stub_ -#pragam weak pthread_once = _Xthr_once_stub_ -#endif /* __GNUC__ */ -#if defined(_DECTHREADS_) || defined(linux) -#pragma weak pthread_equal = _Xthr_equal_stub_ /* See Xthreads.h! */ -int -_Xthr_equal_stub_() -{ - return(1); -} -#endif /* _DECTHREADS_ || linux */ -#endif /* USE_TIS_SUPPORT */ -#endif /* WIN32 */ -#endif /* SVR4 */ -#endif /* CTHREADS */ - -static xthread_t -_Xthr_self_stub_() -{ - static xthread_t _X_no_thread_id; - - return(_X_no_thread_id); /* defined by <X11/Xthreads.h> */ -} - -static int -_Xthr_zero_stub_() -{ - return(0); -} - -static int -_Xthr_once_stub_(void *id, void (*routine)(void)) -{ - static int done = 0; - - if (!done) { - routine(); - done++; - } - return 0; -} - -#include <errno.h> - -#define XTHR_KEYS_CHUNK 100 - -static void **_Xthr_keys_ = NULL; -static unsigned int _Xthr_last_key_ = 0; - -static int -_Xthr_key_create_stub_(unsigned int *key, void (*destructor)(void *)) -{ - void **tmp; - unsigned int i; - - if ((_Xthr_last_key_ % XTHR_KEYS_CHUNK) == 0) { - tmp = realloc(_Xthr_keys_, - (_Xthr_last_key_ + XTHR_KEYS_CHUNK)*sizeof(void *)); - if (tmp == NULL) { - free(_Xthr_keys_); - return ENOMEM; - } - for (i = 0; i < XTHR_KEYS_CHUNK; i++) - tmp[_Xthr_last_key_ + i] = 0; - _Xthr_keys_ = tmp; - } - *key = _Xthr_last_key_++; - return 0; -} - -static int -_Xthr_setspecific_stub_(unsigned int key, const void *value) -{ - if (_Xthr_last_key_ == 0 || key >= _Xthr_last_key_) - return EINVAL; - _Xthr_keys_[key] = value; - return 0; -} - -static void * -_Xthr_getspecific_stub_(unsigned int key) -{ - if (_Xthr_last_key_ == 0 || key >= _Xthr_last_key_) - return NULL; - return(_Xthr_keys_[key]); -} -#endif |