libdrm_radeon: add radeon_bo_is_referenced_by_cs function
authorMaciej Cencora <m.cencora@gmail.com>
Wed, 18 Nov 2009 21:07:13 +0000 (16:07 -0500)
committerAlex Deucher <alexdeucher@gmail.com>
Wed, 18 Nov 2009 21:07:13 +0000 (16:07 -0500)
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
libdrm/radeon/radeon_bo.h

index 1e2e6c20be3e3bd61e0bd6e7831b5483d250b72d..72d3520089e0229d73701b3b7ddb0c1935ea50b6 100644 (file)
@@ -39,6 +39,7 @@
 #define RADEON_BO_FLAGS_MICRO_TILE  2
 
 struct radeon_bo_manager;
+struct radeon_cs;
 
 struct radeon_bo {
     uint32_t                    alignment;
@@ -53,6 +54,7 @@ struct radeon_bo {
     void                        *ptr;
     struct radeon_bo_manager    *bom;
     uint32_t                    space_accounted;
+    uint32_t                    referenced_in_cs;
 };
 
 /* bo functions */
@@ -74,6 +76,7 @@ struct radeon_bo_funcs {
     int (*bo_get_tiling)(struct radeon_bo *bo, uint32_t *tiling_flags,
                          uint32_t *pitch);
     int (*bo_is_busy)(struct radeon_bo *bo, uint32_t *domain);
+    int (*bo_is_referenced_by_cs)(struct radeon_bo *bo, struct radeon_cs *cs);
 };
 
 struct radeon_bo_manager {
@@ -195,6 +198,15 @@ static inline int radeon_bo_is_static(struct radeon_bo *bo)
     return 0;
 }
 
+static inline int _radeon_bo_is_referenced_by_cs(struct radeon_bo *bo,
+                                                 struct radeon_cs *cs,
+                                                 const char *file,
+                                                 const char *func,
+                                                 unsigned line)
+{
+    return bo->cref > 1;
+}
+
 #define radeon_bo_open(bom, h, s, a, d, f)\
     _radeon_bo_open(bom, h, s, a, d, f, __FILE__, __FUNCTION__, __LINE__)
 #define radeon_bo_ref(bo)\
@@ -211,5 +223,7 @@ static inline int radeon_bo_is_static(struct radeon_bo *bo)
     _radeon_bo_wait(bo, __FILE__, __func__, __LINE__)
 #define radeon_bo_is_busy(bo, domain) \
     _radeon_bo_is_busy(bo, domain, __FILE__, __func__, __LINE__)
+#define radeon_bo_is_referenced_by_cs(bo, cs) \
+    _radeon_bo_is_referenced_by_cs(bo, cs, __FILE__, __FUNCTION__, __LINE__)
 
 #endif