Mesa (master): ilo: add a wrapper to cast struct intel_bo

Chia-I Wu olv at kemper.freedesktop.org
Mon Mar 10 08:46:19 UTC 2014


Module: Mesa
Branch: master
Commit: 76ed4f75dd16a8ab8f999f6c85968f7549557da2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=76ed4f75dd16a8ab8f999f6c85968f7549557da2

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Sat Mar  8 15:55:39 2014 +0800

ilo: add a wrapper to cast struct intel_bo

It is just drm_intel_bo, but having a wrapper makes the code cleaner.

---

 src/gallium/winsys/intel/drm/intel_drm_winsys.c |   51 +++++++++++++----------
 1 file changed, 28 insertions(+), 23 deletions(-)

diff --git a/src/gallium/winsys/intel/drm/intel_drm_winsys.c b/src/gallium/winsys/intel/drm/intel_drm_winsys.c
index 1356357..cfd1add 100644
--- a/src/gallium/winsys/intel/drm/intel_drm_winsys.c
+++ b/src/gallium/winsys/intel/drm/intel_drm_winsys.c
@@ -52,6 +52,12 @@ struct intel_winsys {
    struct drm_intel_decode *decode;
 };
 
+static drm_intel_bo *
+gem_bo(const struct intel_bo *bo)
+{
+   return (drm_intel_bo *) bo;
+}
+
 static bool
 get_param(struct intel_winsys *winsys, int param, int *value)
 {
@@ -316,19 +322,19 @@ intel_winsys_export_handle(struct intel_winsys *winsys,
       {
          uint32_t name;
 
-         err = drm_intel_bo_flink((drm_intel_bo *) bo, &name);
+         err = drm_intel_bo_flink(gem_bo(bo), &name);
          if (!err)
             handle->handle = name;
       }
       break;
    case DRM_API_HANDLE_TYPE_KMS:
-      handle->handle = ((drm_intel_bo *) bo)->handle;
+      handle->handle = gem_bo(bo)->handle;
       break;
    case DRM_API_HANDLE_TYPE_FD:
       {
          int fd;
 
-         err = drm_intel_bo_gem_export_to_prime((drm_intel_bo *) bo, &fd);
+         err = drm_intel_bo_gem_export_to_prime(gem_bo(bo), &fd);
          if (!err)
             handle->handle = fd;
       }
@@ -390,49 +396,49 @@ intel_winsys_decode_commands(struct intel_winsys *winsys,
 void
 intel_bo_reference(struct intel_bo *bo)
 {
-   drm_intel_bo_reference((drm_intel_bo *) bo);
+   drm_intel_bo_reference(gem_bo(bo));
 }
 
 void
 intel_bo_unreference(struct intel_bo *bo)
 {
-   drm_intel_bo_unreference((drm_intel_bo *) bo);
+   drm_intel_bo_unreference(gem_bo(bo));
 }
 
 unsigned long
 intel_bo_get_size(const struct intel_bo *bo)
 {
-   return ((drm_intel_bo *) bo)->size;
+   return gem_bo(bo)->size;
 }
 
 unsigned long
 intel_bo_get_offset(const struct intel_bo *bo)
 {
-   return ((drm_intel_bo *) bo)->offset;
+   return gem_bo(bo)->offset;
 }
 
 void *
 intel_bo_get_virtual(const struct intel_bo *bo)
 {
-   return ((drm_intel_bo *) bo)->virtual;
+   return gem_bo(bo)->virtual;
 }
 
 int
 intel_bo_map(struct intel_bo *bo, bool write_enable)
 {
-   return drm_intel_bo_map((drm_intel_bo *) bo, write_enable);
+   return drm_intel_bo_map(gem_bo(bo), write_enable);
 }
 
 int
 intel_bo_map_gtt(struct intel_bo *bo)
 {
-   return drm_intel_gem_bo_map_gtt((drm_intel_bo *) bo);
+   return drm_intel_gem_bo_map_gtt(gem_bo(bo));
 }
 
 int
 intel_bo_map_unsynchronized(struct intel_bo *bo)
 {
-   return drm_intel_gem_bo_map_unsynchronized((drm_intel_bo *) bo);
+   return drm_intel_gem_bo_map_unsynchronized(gem_bo(bo));
 }
 
 void
@@ -440,7 +446,7 @@ intel_bo_unmap(struct intel_bo *bo)
 {
    int err;
 
-   err = drm_intel_bo_unmap((drm_intel_bo *) bo);
+   err = drm_intel_bo_unmap(gem_bo(bo));
    assert(!err);
 }
 
@@ -448,14 +454,14 @@ int
 intel_bo_pwrite(struct intel_bo *bo, unsigned long offset,
                 unsigned long size, const void *data)
 {
-   return drm_intel_bo_subdata((drm_intel_bo *) bo, offset, size, data);
+   return drm_intel_bo_subdata(gem_bo(bo), offset, size, data);
 }
 
 int
 intel_bo_pread(struct intel_bo *bo, unsigned long offset,
                unsigned long size, void *data)
 {
-   return drm_intel_bo_get_subdata((drm_intel_bo *) bo, offset, size, data);
+   return drm_intel_bo_get_subdata(gem_bo(bo), offset, size, data);
 }
 
 int
@@ -463,28 +469,27 @@ intel_bo_emit_reloc(struct intel_bo *bo, uint32_t offset,
                     struct intel_bo *target_bo, uint32_t target_offset,
                     uint32_t read_domains, uint32_t write_domain)
 {
-   return drm_intel_bo_emit_reloc((drm_intel_bo *) bo, offset,
-         (drm_intel_bo *) target_bo, target_offset,
+   return drm_intel_bo_emit_reloc(gem_bo(bo), offset,
+         gem_bo(target_bo), target_offset,
          read_domains, write_domain);
 }
 
 int
 intel_bo_get_reloc_count(struct intel_bo *bo)
 {
-   return drm_intel_gem_bo_get_reloc_count((drm_intel_bo *) bo);
+   return drm_intel_gem_bo_get_reloc_count(gem_bo(bo));
 }
 
 void
 intel_bo_clear_relocs(struct intel_bo *bo, int start)
 {
-   return drm_intel_gem_bo_clear_relocs((drm_intel_bo *) bo, start);
+   drm_intel_gem_bo_clear_relocs(gem_bo(bo), start);
 }
 
 bool
 intel_bo_references(struct intel_bo *bo, struct intel_bo *target_bo)
 {
-   return drm_intel_bo_references((drm_intel_bo *) bo,
-         (drm_intel_bo *) target_bo);
+   return drm_intel_bo_references(gem_bo(bo), gem_bo(target_bo));
 }
 
 int
@@ -492,11 +497,11 @@ intel_bo_exec(struct intel_bo *bo, int used,
               struct intel_context *ctx, unsigned long flags)
 {
    if (ctx) {
-      return drm_intel_gem_bo_context_exec((drm_intel_bo *) bo,
+      return drm_intel_gem_bo_context_exec(gem_bo(bo),
             (drm_intel_context *) ctx, used, flags);
    }
    else {
-      return drm_intel_bo_mrb_exec((drm_intel_bo *) bo,
+      return drm_intel_bo_mrb_exec(gem_bo(bo),
             used, NULL, 0, 0, flags);
    }
 }
@@ -506,7 +511,7 @@ intel_bo_wait(struct intel_bo *bo, int64_t timeout)
 {
    int err;
 
-   err = drm_intel_gem_bo_wait((drm_intel_bo *) bo, timeout);
+   err = drm_intel_gem_bo_wait(gem_bo(bo), timeout);
    /* consider the bo idle on errors */
    if (err && err != -ETIME)
       err = 0;




More information about the mesa-commit mailing list