diff --git a/drivers/include/display.h b/drivers/include/display.h new file mode 100644 index 0000000000..671c3f2531 --- /dev/null +++ b/drivers/include/display.h @@ -0,0 +1,59 @@ + +typedef struct tag_display display_t; + +typedef struct +{ + kobj_t header; + + uint32_t *data; + uint32_t hot_x; + uint32_t hot_y; + + struct list_head list; + void *cobj; +}cursor_t; + +#define KMS_CURSOR_WIDTH 64 +#define KMS_CURSOR_HEIGHT 64 + +struct tag_display +{ + u32 x; + u32 y; + u32 width; + u32 height; + u32 bpp; + u32 vrefresh; + void *lfb; + u32 lfb_pitch; + + struct rw_semaphore win_map_lock; + void *win_map; + u32 win_map_pitch; + u32 win_map_size; + + u32 supported_modes; + struct drm_device *ddev; + struct drm_connector *connector; + struct drm_crtc *crtc; + + struct list_head cursors; + + cursor_t *cursor; + int (*init_cursor)(cursor_t*); + cursor_t* (__stdcall *select_cursor)(cursor_t*); + void (*show_cursor)(int show); + void (__stdcall *move_cursor)(cursor_t *cursor, int x, int y); + void (__stdcall *restore_cursor)(int x, int y); + void (*disable_mouse)(void); + u32 mask_seqno; + u32 check_mouse; + u32 check_m_pixel; + + u32 bytes_per_pixel; +}; + +extern display_t *os_display; + +int init_cursor(cursor_t *cursor); +void __stdcall restore_cursor(int x, int y);