i915_drm_winsys.h revision e18261885334522bcb2cce6e4a2ac7c509a7e3c0
1
2#ifndef INTEL_DRM_WINSYS_H
3#define INTEL_DRM_WINSYS_H
4
5#include "i915/i915_batchbuffer.h"
6
7#include "drm.h"
8#include "intel_bufmgr.h"
9
10
11/*
12 * Winsys
13 */
14
15
16struct i915_drm_winsys
17{
18   struct i915_winsys base;
19
20   boolean dump_cmd;
21   boolean send_cmd;
22
23   int fd; /**< Drm file discriptor */
24
25   size_t max_batch_size;
26
27   struct {
28      drm_intel_bufmgr *gem;
29   } pools;
30};
31
32static INLINE struct i915_drm_winsys *
33i915_drm_winsys(struct i915_winsys *iws)
34{
35   return (struct i915_drm_winsys *)iws;
36}
37
38struct pipe_fence_handle * i915_drm_fence_create(drm_intel_bo *bo);
39
40void i915_drm_winsys_init_batchbuffer_functions(struct i915_drm_winsys *idws);
41void i915_drm_winsys_init_buffer_functions(struct i915_drm_winsys *idws);
42void i915_drm_winsys_init_fence_functions(struct i915_drm_winsys *idws);
43
44
45/*
46 * Buffer
47 */
48
49
50struct i915_drm_buffer {
51   unsigned magic;
52
53   drm_intel_bo *bo;
54
55   void *ptr;
56   unsigned map_count;
57
58   boolean flinked;
59   unsigned flink;
60};
61
62static INLINE struct i915_drm_buffer *
63i915_drm_buffer(struct i915_winsys_buffer *buffer)
64{
65   return (struct i915_drm_buffer *)buffer;
66}
67
68static INLINE drm_intel_bo *
69intel_bo(struct i915_winsys_buffer *buffer)
70{
71   return i915_drm_buffer(buffer)->bo;
72}
73
74#endif
75