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