util: add mutex lock in u_debug_memory.c code
[mesa.git] / src / gallium / auxiliary / pipebuffer / pb_bufmgr.h
index fec8db91c7160bed46659c91a89e772b0208403c..960068c494db584ae2a81bf0dc01236b91bcb70a 100644 (file)
@@ -50,8 +50,7 @@
 #define PB_BUFMGR_H_
 
 
-#include "pipe/p_compiler.h"
-#include "pipe/p_error.h"
+#include "pb_buffer.h"
 
 
 #ifdef __cplusplus
@@ -60,7 +59,6 @@ extern "C" {
 
 
 struct pb_desc;
-struct pipe_buffer;
 
 
 /** 
@@ -73,7 +71,7 @@ struct pb_manager
 
    struct pb_buffer *
    (*create_buffer)( struct pb_manager *mgr, 
-                    size_t size,
+                    pb_size size,
                     const struct pb_desc *desc);
 
    /**
@@ -84,6 +82,10 @@ struct pb_manager
     */
    void
    (*flush)( struct pb_manager *mgr );
+
+   boolean
+   (*is_buffer_busy)( struct pb_manager *mgr,
+                      struct pb_buffer *buf );
 };
 
 
@@ -106,7 +108,7 @@ pb_malloc_bufmgr_create(void);
  */
 struct pb_manager *
 pool_bufmgr_create(struct pb_manager *provider, 
-                   size_t n, size_t size,
+                   pb_size n, pb_size size,
                    const struct pb_desc *desc);
 
 
@@ -119,7 +121,7 @@ pool_bufmgr_create(struct pb_manager *provider,
  */
 struct pb_manager *
 mm_bufmgr_create(struct pb_manager *provider, 
-                 size_t size, size_t align2);
+                 pb_size size, pb_size align2);
 
 /**
  * Same as mm_bufmgr_create.
@@ -128,7 +130,7 @@ mm_bufmgr_create(struct pb_manager *provider,
  */
 struct pb_manager *
 mm_bufmgr_create_from_buffer(struct pb_buffer *buffer, 
-                             size_t size, size_t align2);
+                             pb_size size, pb_size align2);
 
 
 /**
@@ -136,8 +138,8 @@ mm_bufmgr_create_from_buffer(struct pb_buffer *buffer,
  */
 struct pb_manager *
 pb_slab_manager_create(struct pb_manager *provider,
-                       size_t bufSize,
-                       size_t slabSize,
+                       pb_size bufSize,
+                       pb_size slabSize,
                        const struct pb_desc *desc);
 
 /**
@@ -146,9 +148,9 @@ pb_slab_manager_create(struct pb_manager *provider,
  */
 struct pb_manager *
 pb_slab_range_manager_create(struct pb_manager *provider,
-                             size_t minBufSize,
-                             size_t maxBufSize,
-                             size_t slabSize,
+                             pb_size minBufSize,
+                             pb_size maxBufSize,
+                             pb_size slabSize,
                              const struct pb_desc *desc);
 
 
@@ -175,7 +177,9 @@ struct pb_fence_ops;
  */
 struct pb_manager *
 fenced_bufmgr_create(struct pb_manager *provider,
-                     struct pb_fence_ops *ops);
+                     struct pb_fence_ops *ops,
+                     pb_size max_buffer_size,
+                     pb_size max_cpu_total_size);
 
 
 struct pb_manager *
@@ -200,10 +204,11 @@ pb_ondemand_manager_create(struct pb_manager *provider);
 /** 
  * Debug buffer manager to detect buffer under- and overflows.
  *
- * Band size should be a multiple of the largest alignment
+ * Under/overflow sizes should be a multiple of the largest alignment
  */
 struct pb_manager *
-pb_debug_manager_create(struct pb_manager *provider, size_t band_size); 
+pb_debug_manager_create(struct pb_manager *provider,
+                        pb_size underflow_size, pb_size overflow_size); 
 
 
 #ifdef __cplusplus