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 const char *dump_raw_file; 22 boolean send_cmd; 23 24 int fd; /**< Drm file discriptor */ 25 26 size_t max_batch_size; 27 28 drm_intel_bufmgr *gem_manager; 29}; 30 31static inline struct i915_drm_winsys * 32i915_drm_winsys(struct i915_winsys *iws) 33{ 34 return (struct i915_drm_winsys *)iws; 35} 36 37struct pipe_fence_handle * i915_drm_fence_create(drm_intel_bo *bo); 38 39void i915_drm_winsys_init_batchbuffer_functions(struct i915_drm_winsys *idws); 40void i915_drm_winsys_init_buffer_functions(struct i915_drm_winsys *idws); 41void i915_drm_winsys_init_fence_functions(struct i915_drm_winsys *idws); 42 43 44/* 45 * Buffer 46 */ 47 48 49struct i915_drm_buffer { 50 unsigned magic; 51 52 drm_intel_bo *bo; 53 54 void *ptr; 55 unsigned map_count; 56 57 boolean flinked; 58 unsigned flink; 59}; 60 61static inline struct i915_drm_buffer * 62i915_drm_buffer(struct i915_winsys_buffer *buffer) 63{ 64 return (struct i915_drm_buffer *)buffer; 65} 66 67static inline drm_intel_bo * 68intel_bo(struct i915_winsys_buffer *buffer) 69{ 70 return i915_drm_buffer(buffer)->bo; 71} 72 73#endif 74