winsys/svga: Update the drm interface file
[mesa.git] / src / gallium / winsys / svga / drm / vmw_buffer.h
index 41fb4476da52bbd8f22ca9d2a55167acfc29db8c..8ed56d4aa1e7ddd0351bbc0301ad63f2361f7266 100644 (file)
@@ -1,5 +1,5 @@
 /**********************************************************
- * Copyright 2009 VMware, Inc.  All rights reserved.
+ * Copyright 2009-2015 VMware, Inc.  All rights reserved.
  *
  * Permission is hereby granted, free of charge, to any person
  * obtaining a copy of this software and associated documentation
 
 #include <assert.h>
 #include "pipe/p_compiler.h"
+#include "pipebuffer/pb_bufmgr.h"
+#include "util/u_debug_flush.h"
+
+
+/* These extra flags are used wherever the pb_usage_flags enum type is used */
+#define VMW_BUFFER_USAGE_SHARED    (1 << 20)
+#define VMW_BUFFER_USAGE_SYNC      (1 << 21)
 
 struct SVGAGuestPtr;
 struct pb_buffer;
@@ -37,8 +44,23 @@ struct svga_winsys_buffer;
 struct svga_winsys_surface;
 struct vmw_winsys_screen;
 
+struct vmw_buffer_desc {
+   struct pb_desc pb_desc;
+   struct vmw_region *region;
+};
+
+
+#ifdef DEBUG
 
-static INLINE struct pb_buffer *
+struct pb_buffer *
+vmw_pb_buffer(struct svga_winsys_buffer *buffer);
+struct svga_winsys_buffer *
+vmw_svga_winsys_buffer_wrap(struct pb_buffer *buffer);
+struct debug_flush_buf *
+vmw_debug_flush_buf(struct svga_winsys_buffer *buffer);
+
+#else
+static inline struct pb_buffer *
 vmw_pb_buffer(struct svga_winsys_buffer *buffer)
 {
    assert(buffer);
@@ -46,13 +68,24 @@ vmw_pb_buffer(struct svga_winsys_buffer *buffer)
 }
 
 
-static INLINE struct svga_winsys_buffer *
-vmw_svga_winsys_buffer(struct pb_buffer *buffer)
+static inline struct svga_winsys_buffer *
+vmw_svga_winsys_buffer_wrap(struct pb_buffer *buffer)
 {
-   assert(buffer);
    return (struct svga_winsys_buffer *)buffer;
 }
+#endif
+
+void
+vmw_svga_winsys_buffer_destroy(struct svga_winsys_screen *sws,
+                               struct svga_winsys_buffer *buf);
+void *
+vmw_svga_winsys_buffer_map(struct svga_winsys_screen *sws,
+                           struct svga_winsys_buffer *buf,
+                           unsigned flags);
 
+void
+vmw_svga_winsys_buffer_unmap(struct svga_winsys_screen *sws,
+                             struct svga_winsys_buffer *buf);
 
 struct pb_manager *
 vmw_gmr_bufmgr_create(struct vmw_winsys_screen *vws);