aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2009-08-04 20:38:39 +0100
committerThomas White <taw@bitwiz.org.uk>2010-05-23 09:51:34 +0200
commit60d2ef954d11b257f3fd818b3d7046975e2bde4e (patch)
tree6243a49be3e6188442790b8ef083013e3bea448d
parent3465d3faefe43560fafc5329beb55de8da5c1194 (diff)
Formatting and copyright notices
-rw-r--r--glamo/glamo_bo_gem.c268
1 files changed, 152 insertions, 116 deletions
diff --git a/glamo/glamo_bo_gem.c b/glamo/glamo_bo_gem.c
index 43d847de..481481b7 100644
--- a/glamo/glamo_bo_gem.c
+++ b/glamo/glamo_bo_gem.c
@@ -1,5 +1,8 @@
/*
* Copyright © 2009 Thomas White
+ *
+ * Based on radeon_bo_gem.c, to which the following notice applies:
+ *
* Copyright © 2008 Dave Airlie
* Copyright © 2008 Jérôme Glisse
* All Rights Reserved.
@@ -29,7 +32,43 @@
* Authors:
* Dave Airlie
* Jérôme Glisse <glisse@freedesktop.org>
- * Thomas White <taw@bitwiz.org.uk>
+ *
+ *
+ * Memory mapping functions are based on intel_bufmgr_gem.c, to which the
+ * following notice applies:
+ *
+ * Copyright © 2007 Red Hat Inc.
+ * Copyright © 2007 Intel Corporation
+ * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND., USA
+ * 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, sub license, 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 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 NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS 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.
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ *
+ **************************************************************************/
+/*
+ * Authors: Thomas Hellström <thomas-at-tungstengraphics-dot-com>
+ * Keith Whitwell <keithw-at-tungstengraphics-dot-com>
+ * Eric Anholt <eric@anholt.net>
+ * Dave Airlie <airlied@linux.ie>
*/
#ifdef HAVE_CONFIG_H
@@ -51,13 +90,13 @@
#include "glamo_bo_gem.h"
struct glamo_bo_gem {
- struct glamo_bo base;
- uint32_t name;
- int map_count;
+ struct glamo_bo base;
+ uint32_t name;
+ int map_count;
};
struct bo_manager_gem {
- struct glamo_bo_manager base;
+ struct glamo_bo_manager base;
};
static struct glamo_bo *bo_open(struct glamo_bo_manager *bom,
@@ -67,59 +106,58 @@ static struct glamo_bo *bo_open(struct glamo_bo_manager *bom,
uint32_t domains,
uint32_t flags)
{
- struct glamo_bo_gem *bo;
- int r;
-
- printf("bo_open, size=%i\n", size);fflush(stdout);
-
- bo = (struct glamo_bo_gem*)calloc(1, sizeof(struct glamo_bo_gem));
- if (bo == NULL) {
- return NULL;
- }
-
- bo->base.bom = bom;
- bo->base.handle = 0;
- bo->base.size = size;
- bo->base.alignment = alignment;
- bo->base.domains = domains;
- bo->base.flags = flags;
- bo->map_count = 0;
- bo->base.virtual = NULL;
- if (handle) {
- struct drm_gem_open open_arg;
-
- memset(&open_arg, 0, sizeof(open_arg));
- open_arg.name = handle;
- r = ioctl(bom->fd, DRM_IOCTL_GEM_OPEN, &open_arg);
- if (r != 0) {
- free(bo);
- return NULL;
- }
- bo->base.handle = open_arg.handle;
- bo->base.size = open_arg.size;
- bo->name = handle;
- } else {
- struct drm_glamo_gem_create args;
-
- args.size = size;
- args.alignment = alignment;
- args.initial_domain = bo->base.domains;
- args.no_backing_store = 0;
- args.handle = 0;
- r = drmCommandWriteRead(bom->fd, DRM_GLAMO_GEM_CREATE,
- &args, sizeof(args));
- bo->base.handle = args.handle;
- if (r) {
- fprintf(stderr, "Failed to allocate :\n");
- fprintf(stderr, " size : %d bytes\n", size);
- fprintf(stderr, " alignment : %d bytes\n", alignment);
- fprintf(stderr, " domains : %d\n", bo->base.domains);
- free(bo);
- return NULL;
- }
- }
- glamo_bo_ref((struct glamo_bo*)bo);
- return (struct glamo_bo*)bo;
+ struct glamo_bo_gem *bo;
+ int r;
+
+ printf("bo_open, size=%i\n", size);fflush(stdout);
+
+ bo = (struct glamo_bo_gem*)calloc(1, sizeof(struct glamo_bo_gem));
+ if (bo == NULL) {
+ return NULL;
+ }
+
+ bo->base.bom = bom;
+ bo->base.handle = 0;
+ bo->base.size = size;
+ bo->base.alignment = alignment;
+ bo->base.domains = domains;
+ bo->base.flags = flags;
+ bo->map_count = 0;
+ bo->base.virtual = NULL;
+ if (handle) {
+ struct drm_gem_open open_arg;
+
+ memset(&open_arg, 0, sizeof(open_arg));
+ open_arg.name = handle;
+ r = ioctl(bom->fd, DRM_IOCTL_GEM_OPEN, &open_arg);
+ if (r != 0) {
+ free(bo);
+ return NULL;
+ }
+ bo->base.handle = open_arg.handle;
+ bo->base.size = open_arg.size;
+ bo->name = handle;
+ } else {
+ struct drm_glamo_gem_create args;
+
+ args.size = size;
+ args.alignment = alignment;
+ args.initial_domain = bo->base.domains;
+ args.no_backing_store = 0;
+ args.handle = 0;
+ r = drmCommandWriteRead(bom->fd, DRM_GLAMO_GEM_CREATE,
+ &args, sizeof(args));
+ bo->base.handle = args.handle;
+ if (r) {
+ fprintf(stderr, "Failed to allocate :\n");
+ fprintf(stderr, " size : %d bytes\n", size);
+ fprintf(stderr, " alignment : %d bytes\n", alignment);
+ free(bo);
+ return NULL;
+ }
+ }
+ glamo_bo_ref((struct glamo_bo*)bo);
+ return (struct glamo_bo*)bo;
}
static void bo_ref(struct glamo_bo *bo)
@@ -128,25 +166,25 @@ static void bo_ref(struct glamo_bo *bo)
static struct glamo_bo *bo_unref(struct glamo_bo *bo)
{
- struct glamo_bo_gem *bo_gem = (struct glamo_bo_gem*)bo;
- struct drm_gem_close args;
-
- if (bo == NULL) {
- return NULL;
- }
- if (bo->cref) {
- return bo;
- }
- if (bo_gem->map_count) {
- munmap(bo->virtual, bo->size);
- }
-
- /* close object */
- args.handle = bo->handle;
- ioctl(bo->bom->fd, DRM_IOCTL_GEM_CLOSE, &args);
- memset(bo_gem, 0, sizeof(struct glamo_bo_gem));
- free(bo_gem);
- return NULL;
+ struct glamo_bo_gem *bo_gem = (struct glamo_bo_gem*)bo;
+ struct drm_gem_close args;
+
+ if (bo == NULL) {
+ return NULL;
+ }
+ if (bo->cref) {
+ return bo;
+ }
+ if (bo_gem->map_count) {
+ munmap(bo->virtual, bo->size);
+ }
+
+ /* close object */
+ args.handle = bo->handle;
+ ioctl(bo->bom->fd, DRM_IOCTL_GEM_CLOSE, &args);
+ memset(bo_gem, 0, sizeof(struct glamo_bo_gem));
+ free(bo_gem);
+ return NULL;
}
static int bo_map(struct glamo_bo *bo, int write)
@@ -195,65 +233,63 @@ static int bo_map(struct glamo_bo *bo, int write)
static int bo_unmap(struct glamo_bo *bo)
{
- struct glamo_bo_gem *bo_gem = (struct glamo_bo_gem*)bo;
-
- if (--bo_gem->map_count > 0) {
- return 0;
- }
- munmap(bo->virtual, bo->size);
- bo->virtual = NULL;
- return 0;
+ struct glamo_bo_gem *bo_gem = (struct glamo_bo_gem*)bo;
+
+ if (--bo_gem->map_count > 0) {
+ return 0;
+ }
+ munmap(bo->virtual, bo->size);
+ bo->virtual = NULL;
+ return 0;
}
static int bo_wait(struct glamo_bo *bo)
{
- struct drm_glamo_gem_wait_rendering args;
- int ret;
-
- args.handle = bo->handle;
- do {
- ret = drmCommandWriteRead(bo->bom->fd, DRM_GLAMO_GEM_WAIT_RENDERING,
- &args, sizeof(args));
- } while (ret == -EAGAIN);
- return ret;
+ struct drm_glamo_gem_wait_rendering args;
+ int ret;
+
+ args.handle = bo->handle;
+ do {
+ ret = drmCommandWriteRead(bo->bom->fd,
+ DRM_GLAMO_GEM_WAIT_RENDERING,
+ &args, sizeof(args));
+ } while (ret == -EAGAIN);
+ return ret;
}
static struct glamo_bo_funcs bo_gem_funcs = {
- bo_open,
- bo_ref,
- bo_unref,
- bo_map,
- bo_unmap,
- bo_wait
+ bo_open,
+ bo_ref,
+ bo_unref,
+ bo_map,
+ bo_unmap,
+ bo_wait
};
struct glamo_bo_manager *glamo_bo_manager_gem_ctor(int fd)
{
- struct bo_manager_gem *bomg;
+ struct bo_manager_gem *bomg;
+
+ printf("Creating a new glamo_bo_manager\n");fflush(stdout);
- printf("Creating a new glamo_bo_manager\n");fflush(stdout);
+ bomg = (struct bo_manager_gem*)calloc(1, sizeof(struct bo_manager_gem));
+ if (bomg == NULL) return NULL;
- bomg = (struct bo_manager_gem*)calloc(1, sizeof(struct bo_manager_gem));
- if (bomg == NULL) {
- return NULL;
- }
- bomg->base.funcs = &bo_gem_funcs;
- bomg->base.fd = fd;
- return (struct glamo_bo_manager*)bomg;
+ bomg->base.funcs = &bo_gem_funcs;
+ bomg->base.fd = fd;
+ return (struct glamo_bo_manager*)bomg;
}
void glamo_bo_manager_gem_dtor(struct glamo_bo_manager *bom)
{
- struct bo_manager_gem *bomg = (struct bo_manager_gem*)bom;
+ struct bo_manager_gem *bomg = (struct bo_manager_gem*)bom;
- if (bom == NULL) {
- return;
- }
- free(bomg);
+ if (bom == NULL) return;
+ free(bomg);
}
uint32_t glamo_gem_name_bo(struct glamo_bo *bo)
{
- struct glamo_bo_gem *bo_gem = (struct glamo_bo_gem*)bo;
- return bo_gem->name;
+ struct glamo_bo_gem *bo_gem = (struct glamo_bo_gem*)bo;
+ return bo_gem->name;
}