[PATCH 71/72] drm: generalized *_bo_create_for_name()
"Enrico Weigelt, metux IT consult" <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]> --- src/drm/cairo-drm-bo.c | 20 ++++++++++++++++++++ src/drm/cairo-drm-private.h | 3 +++ src/drm/cairo-drm-radeon-private.h | 3 --- src/drm/cairo-drm-radeon-surface.c | 3 +-- src/drm/cairo-drm-radeon.c | 21 --------------------- 5 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/drm/cairo-drm-bo.c b/src/drm/cairo-drm-bo.c index 532700e..957d0bf 100644 --- a/src/drm/cairo-drm-bo.c +++ b/src/drm/cairo-drm-bo.c @@ -114,3 +114,23 @@ _cairo_drm_bo_unmap (cairo_drm_bo_t *bo) munmap (bo->mapped, bo->size); bo->mapped = NULL; } + +cairo_drm_bo_t * +_cairo_drm_bo_create_for_name (cairo_drm_device_t *device, + uint32_t name) +{ + cairo_status_t status; + cairo_drm_bo_t *bo = _cairo_drm_bo_from_pool (device); + + if (unlikely (bo == NULL)) + return NULL; + + status = _cairo_drm_bo_open_for_name (device, bo, name); + if (unlikely (status)) { + _cairo_freepool_free (&device->bo_pool, bo); + return NULL; + } + + CAIRO_REFERENCE_COUNT_INIT (&bo->ref_count, 1); + return bo; +} diff --git a/src/drm/cairo-drm-private.h b/src/drm/cairo-drm-private.h index 494eea4..6eaf6eb 100644 --- a/src/drm/cairo-drm-private.h +++ b/src/drm/cairo-drm-private.h @@ -196,6 +196,9 @@ _cairo_drm_bo_unmap (cairo_drm_bo_t *bo); cairo_private void _cairo_drm_bo_release (cairo_drm_device_t *device, cairo_drm_bo_t *bo); +cairo_private cairo_drm_bo_t * +_cairo_drm_bo_create_for_name (cairo_drm_device_t *device, uint32_t name); + static inline cairo_drm_bo_t * cairo_drm_bo_reference (cairo_drm_bo_t *bo) { diff --git a/src/drm/cairo-drm-radeon-private.h b/src/drm/cairo-drm-radeon-private.h index 446da84..6a1c1b5 100644 --- a/src/drm/cairo-drm-radeon-private.h +++ b/src/drm/cairo-drm-radeon-private.h @@ -185,9 +185,6 @@ radeon_bo_create (radeon_device_t *dev, uint32_t size, uint32_t initial_domain); -cairo_private cairo_drm_bo_t * -radeon_bo_create_for_name (radeon_device_t *dev, uint32_t name); - cairo_private cairo_surface_t * _cairo_drm_radeon_bo_get_image (const cairo_drm_device_t *device, cairo_drm_bo_t *bo, diff --git a/src/drm/cairo-drm-radeon-surface.c b/src/drm/cairo-drm-radeon-surface.c index 0bea74a..e890eb1 100644 --- a/src/drm/cairo-drm-radeon-surface.c +++ b/src/drm/cairo-drm-radeon-surface.c @@ -172,8 +172,7 @@ radeon_surface_create_for_name (cairo_drm_device_t *device, if (width && height) { surface->base.stride = stride; - surface->base.bo = radeon_bo_create_for_name (_cairo_drm_device_cast_radeon(device), - name); + surface->base.bo = _cairo_drm_bo_create_for_name (device, name); if (unlikely (surface->base.bo == NULL)) { status = _cairo_drm_surface_finish (&surface->base); diff --git a/src/drm/cairo-drm-radeon.c b/src/drm/cairo-drm-radeon.c index 836f643..50dfbd1 100644 --- a/src/drm/cairo-drm-radeon.c +++ b/src/drm/cairo-drm-radeon.c @@ -213,27 +213,6 @@ radeon_bo_create (radeon_device_t *device, return &bo->base; } -cairo_drm_bo_t * -radeon_bo_create_for_name (radeon_device_t *device, - uint32_t name) -{ - radeon_bo_t *bo; - cairo_status_t status; - - bo = _cairo_drm_bo_cast_radeon (_cairo_drm_bo_from_pool (&device->base)); - if (unlikely (bo == NULL)) - return NULL; - - status = _cairo_drm_bo_open_for_name (&device->base, &bo->base, name); - if (unlikely (status)) { - _cairo_freepool_free (&device->base.bo_pool, bo); - return NULL; - } - - CAIRO_REFERENCE_COUNT_INIT (&bo->base.ref_count, 1); - return &bo->base; -} - cairo_surface_t * _cairo_drm_radeon_bo_get_image (const cairo_drm_device_t *drm_dev, cairo_drm_bo_t *drm_bo, -- 2.6.4.442.g545299f -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo