diff options
Diffstat (limited to 'chips/screen.h')
-rw-r--r-- | chips/screen.h | 289 |
1 files changed, 0 insertions, 289 deletions
diff --git a/chips/screen.h b/chips/screen.h deleted file mode 100644 index 69154d4..0000000 --- a/chips/screen.h +++ /dev/null @@ -1,289 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989 Carnegie Mellon University - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ -/* - * File: screen.h - * Author: Alessandro Forin, Carnegie Mellon University - * Date: 9/90 - * - * Definitions for the Generic Screen Driver. - */ - -/* - * Most of these structures are defined so that the - * resulting structure mapped to user space appears - * to be compatible with the one used by the DEC X - * servers (pm_info..). Keep it that way and the - * X servers will keep on running. - */ - -/* - * Generic structures and defines - */ - -/* colors */ -typedef struct { - unsigned short red; - unsigned short green; - unsigned short blue; -} color_map_t; - -typedef struct { - short unused; - unsigned short index; - color_map_t value; -} color_map_entry_t; - -typedef struct { - unsigned int Bg_rgb[3]; - unsigned int Fg_rgb[3]; -} cursor_color_t; - -/* generic input event */ -typedef struct { - short x; /* x position */ - short y; /* y position */ - unsigned int time; /* 1 millisecond units */ - - unsigned char type; /* button up/down/raw or motion */ -# define EVT_BUTTON_UP 0 -# define EVT_BUTTON_DOWN 1 -# define EVT_BUTTON_RAW 2 -# define EVT_PTR_MOTION 3 - - unsigned char key; /* the key (button only) */ -# define KEY_LEFT_BUTTON 1 -# define KEY_MIDDLE_BUTTON 2 -# define KEY_RIGHT_BUTTON 3 -# define KEY_TBL_LEFT_BUTTON 0 -# define KEY_TBL_FRONT_BUTTON 1 -# define KEY_TBL_RIGHT_BUTTON 2 -# define KEY_TBL_BACK_BUTTON 3 - - unsigned char index; /* which instance of device */ - - unsigned char device; /* which device */ -# define DEV_NULL 0 -# define DEV_MOUSE 1 -# define DEV_KEYBD 2 -# define DEV_TABLET 3 -# define DEV_AUX 4 -# define DEV_CONSOLE 5 -# define DEV_KNOB 8 -# define DEV_JOYSTICK 9 - -} screen_event_t; - -/* timed coordinate info */ -typedef struct { - unsigned int time; - short x, y; -} screen_timed_point_t; - -/* queue of input events, and ring of mouse motions track */ -typedef struct { - screen_event_t *events; - unsigned int q_size; - unsigned int q_head; - unsigned int q_tail; - unsigned long timestamp; - screen_timed_point_t *track; - unsigned int t_size; - unsigned int t_next; -} screen_evque_t; - -/* mouse/cursor position */ -typedef struct { - short x; - short y; -} screen_point_t; - -/* mouse motion bounding boxes */ -typedef struct { - short bottom; - short right; - short left; - short top; -} screen_rect_t; - -/* - * Here it is, each field is marked as - * - * Kset : kernel sets it unconditionally - * Kuse : kernel uses it, safely - * Kdep : kernel might depend on it - */ -typedef struct { - screen_evque_t evque; /* Kset, Kuse */ - short mouse_buttons; /* Kset */ - screen_point_t xx3 /*tablet*/; - short xx4 /*tswitches*/; - screen_point_t cursor; /* Kset */ - short row; /* Kdep */ - short col; /* Kdep */ - short max_row; /* Kdep */ - short max_col; /* Kdep */ - short max_x; /* Kset */ - short max_y; /* Kset */ - short max_cur_x; /* Kdep */ - short max_cur_y; /* Kdep */ - int version; /* Kset */ - union { - struct { - unsigned char * bitmap; /* Kset */ - short * x16 /*scanmap*/; - short * x17 /*cursorbits*/; - short * x18 /*pmaddr*/; - unsigned char * planemask; /* Kset */ - } pm; - struct { - int x15 /* flags */; - int * gram /* Kset */; - int * rb_addr /* Kset */; - int rb_phys /* Kset */; - int rb_size /* Kset */; - } gx; - } dev_dep_1; - screen_point_t mouse_loc; /* Kdep */ - screen_rect_t mouse_box; /* Kdep */ - short mouse_threshold;/* Kuse */ - short mouse_scale; /* Kuse */ - short min_cur_x; /* Kdep */ - short min_cur_y; /* Kdep */ - union { - struct { - int x26 /*dev_type*/; - char * x27 /*framebuffer*/; - char * x28 /*volatile struct bt459 *bt459*/; - int x29 /*slot*/; - char cursor_sprite[1024];/* Kset */ - unsigned char Bg_color[3]; /* Kset */ - unsigned char Fg_color[3]; /* Kset */ - int tablet_scale_x; /* Kuse */ - int tablet_scale_y; /* Kuse */ - } pm; - struct { - char * gxo /* Kset */; - char stamp_width /* Kset */; - char stamp_height /* Kset */; - char nplanes /* Kset */; - char x27_4 /* n10_present */; - char x28_1 /* dplanes */; - char zplanes /* Kset */; - char zzplanes /* Kset */; - unsigned char cursor_sprite[1024] /* Kuse */; - char x285_0 /* padding for next, which was int */; - unsigned char Fg_color[4] /* Kuse */; - unsigned char Bg_color[4] /* Kuse */; - unsigned short cmap_index /* Kuse */; - unsigned short cmap_count /* Kuse */; - unsigned int colormap[256] /* Kuse */; - int * stic_dma_rb /* Kset */; - int * stic_reg /* Kset */; - int ptpt_phys /* Kdep */; - int ptpt_size /* Kdep */; - int * ptpt_pgin /* Kset */; - } gx; - } dev_dep_2; - short frame_scanline_width; /* in pixels, Kset */ - short frame_height; /* in scanlines, Kset */ - /* - * Event queues are allocated right after that - */ -#define MAX_EVENTS 64 -#define MAX_TRACK 100 - screen_event_t event_queue[MAX_EVENTS]; /* Kset */ - screen_timed_point_t point_track[MAX_TRACK]; /* Kset */ - /* - * Some like it hot - */ - unsigned int event_id; - int interrupt_info; -} user_info_t; - - -/* - * Screen get_status codes and arguments - */ -#include <sys/ioctl.h> - - /* Get size (and offset) of mapped info */ -#define SCREEN_GET_OFFSETS _IOR('q', 6, unsigned **) - - /* Get screen status flags */ -#define SCREEN_STATUS_FLAGS _IOR('q', 22, int *) -# define MONO_SCREEN 0x01 -# define COLOR_SCREEN 0x02 -# define SCREEN_BEING_UPDATED 0x04 - -/* - * Screen set_status codes and arguments - */ - - /* start/stop screen saver, control fading interval */ -#define SCREEN_FADE _IOW('q', 114, int) /* fade screen */ -# define NO_FADE -1 - - /* Turn video on/off manually */ -#define SCREEN_ON _IO('q', 10) -#define SCREEN_OFF _IO('q', 11) - - /* Fixup pointers inside mapped info structure */ -#define SCREEN_ADJ_MAPPED_INFO _IOR('q', 1, user_info_t *) - - /* Initialize anything that needs to, hw-wise */ -#define SCREEN_INIT _IO('q', 4) - - /* Position cursor to a specific spot */ -#define SCREEN_SET_CURSOR _IOW('q', 2, screen_point_t) - - /* Load Bg/Fg colors for cursor */ -#define SCREEN_SET_CURSOR_COLOR _IOW('q', 3, cursor_color_t) - - /* Load cursor sprite, small cursor form */ -typedef unsigned short cursor_sprite_t[32]; - -#define SCREEN_LOAD_CURSOR _IOW('q', 7, cursor_sprite_t) - - /* Load cursor sprite, large 64x64 cursor form */ -typedef char cursor_sprite_long_t[1024]; - -#define SCREEN_LOAD_CURSOR_LONG _IOW('q', 13, cursor_sprite_long_t) - - /* Modify a given entry in the color map (VDAC) */ -#define SCREEN_SET_CMAP_ENTRY _IOW('q', 12, color_map_entry_t) - - /* Return some other information about hardware (optional) */ -typedef struct { - int frame_width; - int frame_height; - int frame_visible_width; - int frame_visible_height; -} screen_hw_info_t; -#define SCREEN_HARDWARE_INFO _IOR('q', 23, screen_hw_info_t) - - /* Screen-dependent, unspecified (and despised) */ -#define SCREEN_HARDWARE_DEP _IO('q', 24) - |