From 3b8c536f437a6114c1653eb1635a84116c08e8f6 Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Sat, 26 May 2018 21:49:47 +0200 Subject: Add missing headers --- doomdev.h | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 doomdev.h (limited to 'doomdev.h') diff --git a/doomdev.h b/doomdev.h new file mode 100644 index 0000000..01f9961 --- /dev/null +++ b/doomdev.h @@ -0,0 +1,144 @@ +#ifndef DOOMDEV_H +#define DOOMDEV_H + +#ifdef __KERNEL__ +#include +#else +#include +#endif + +#include + +/* /dev/doom* ioctls. */ + +struct doomdev_ioctl_create_surface { + uint16_t width; + uint16_t height; +}; + +struct doomdev_ioctl_create_texture { + uint64_t data_ptr; + uint32_t size; + uint16_t height; + uint16_t _pad; +}; + +struct doomdev_ioctl_create_flat { + uint64_t data_ptr; +}; + +struct doomdev_ioctl_create_colormaps { + uint64_t data_ptr; + uint32_t num; + uint32_t _pad; +}; + +#define DOOMDEV_IOCTL_CREATE_SURFACE _IOW('D', 0x00, struct doomdev_ioctl_create_surface) +#define DOOMDEV_IOCTL_CREATE_TEXTURE _IOW('D', 0x01, struct doomdev_ioctl_create_texture) +#define DOOMDEV_IOCTL_CREATE_FLAT _IOW('D', 0x02, struct doomdev_ioctl_create_flat) +#define DOOMDEV_IOCTL_CREATE_COLORMAPS _IOW('D', 0x03, struct doomdev_ioctl_create_colormaps) + +struct doomdev_surf_ioctl_copy_rects { + uint64_t rects_ptr; + uint32_t surf_src_fd; + uint16_t rects_num; + uint16_t _pad; +}; + +struct doomdev_copy_rect { + uint16_t pos_dst_x; + uint16_t pos_dst_y; + uint16_t pos_src_x; + uint16_t pos_src_y; + uint16_t width; + uint16_t height; +}; + +struct doomdev_surf_ioctl_fill_rects { + uint64_t rects_ptr; + uint16_t rects_num; + uint16_t _pad[3]; +}; + +struct doomdev_fill_rect { + uint16_t pos_dst_x; + uint16_t pos_dst_y; + uint16_t width; + uint16_t height; + uint8_t color; + uint8_t _pad; +}; + +struct doomdev_surf_ioctl_draw_lines { + uint64_t lines_ptr; + uint16_t lines_num; + uint16_t _pad[3]; +}; + +struct doomdev_line { + uint16_t pos_a_x; + uint16_t pos_a_y; + uint16_t pos_b_x; + uint16_t pos_b_y; + uint8_t color; + uint8_t _pad; +}; + +struct doomdev_surf_ioctl_draw_background { + uint32_t flat_fd; +}; + +struct doomdev_surf_ioctl_draw_columns { + uint64_t columns_ptr; + uint32_t texture_fd; + uint32_t translations_fd; + uint32_t colormaps_fd; + uint16_t columns_num; + uint8_t draw_flags; + uint8_t translation_idx; +}; + +struct doomdev_column { + uint32_t texture_offset; + uint32_t ustart; + uint32_t ustep; + uint16_t y1; + uint16_t y2; + uint16_t x; + uint8_t colormap_idx; + uint8_t _pad; +}; + +struct doomdev_surf_ioctl_draw_spans { + uint64_t spans_ptr; + uint32_t flat_fd; + uint32_t translations_fd; + uint32_t colormaps_fd; + uint16_t spans_num; + uint8_t draw_flags; + uint8_t translation_idx; +}; + +struct doomdev_span { + uint32_t ustart; + uint32_t vstart; + uint32_t ustep; + uint32_t vstep; + uint16_t x1, x2; + uint16_t y; + uint8_t colormap_idx; + uint8_t _pad; +}; + +#define DOOMDEV_SURF_IOCTL_COPY_RECTS _IOW('D', 0x10, struct doomdev_surf_ioctl_copy_rects) +#define DOOMDEV_SURF_IOCTL_FILL_RECTS _IOW('D', 0x11, struct doomdev_surf_ioctl_fill_rects) +#define DOOMDEV_SURF_IOCTL_DRAW_LINES _IOW('D', 0x12, struct doomdev_surf_ioctl_draw_lines) +#define DOOMDEV_SURF_IOCTL_DRAW_BACKGROUND _IOW('D', 0x13, struct doomdev_surf_ioctl_draw_background) +#define DOOMDEV_SURF_IOCTL_DRAW_COLUMNS _IOW('D', 0x14, struct doomdev_surf_ioctl_draw_columns) +#define DOOMDEV_SURF_IOCTL_DRAW_SPANS _IOW('D', 0x15, struct doomdev_surf_ioctl_draw_spans) + +#define DOOMDEV_DRAW_FLAGS_FUZZ 0x01 +#define DOOMDEV_DRAW_FLAGS_TRANSLATE 0x02 +#define DOOMDEV_DRAW_FLAGS_COLORMAP 0x04 + +#endif -- cgit v1.2.3