|
What follows in the .h file that the server uses to c communicate with the
driver. Up until v5.3 the server and extensions were the only reasonable
consumers of this interface. Now we have added a qio that allows events
to be generated from user mode code and fed to the X11 server which may be
used instead of writing your own class driver for a special input device.
Most of the other qios should not be used outside the server context. We would
like to clean up this file and ship it in a future release of VMS.
/***************************************************************************************************
/* Created 4-OCT-1989 13:47:01 by VAX SDL V3.2-10 Source: 16-AUG-1989 15:44:59 DECW$SERVERRESD:
/***************************************************************************************************
/*** MODULE $DECWDEF IDENT X-3 ***/
/**************************************************************************** */
/* * */
/* COPYRIGHT (c) 1988 BY * */
/* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. * */
/* ALL RIGHTS RESERVED * */
/* * */
/* THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED * */
/* ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE * */
/* INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER * */
/* COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY * */
/* OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY * */
/* TRANSFERRED. * */
/* * */
/* THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE * */
/* AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT * */
/* CORPORATION. * */
/* * */
/* DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS * */
/* SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. * */
/* * */
/**************************************************************************** */
/* */
/* QIO function codes, modifiers and submodifiers */
/* */
/* */
/* DECwindows Driver SENSEMODE and SETMODE function modifier codes */
/* */
#define IO$K_DECW_CURSOR_ASSOC 2
#define IO$K_DECW_ENABLE_INPUT 3
#define IO$K_DECW_BUTTON_INFO 4
#define IO$K_DECW_CURSOR_COLOR 5
#define IO$K_DECW_CURSOR_PATTERN 6
#define IO$K_DECW_CURSOR_POSITION 7
#define IO$K_DECW_DEVICE_INFO 8
#define IO$K_DECW_KB_INFO 9
#define IO$K_DECW_MOTION_BUFFER 10
#define IO$K_DECW_POINTER_FILTER_BOX 11
#define IO$K_DECW_POINTER_INFO 12
#define IO$K_DECW_OPWIN_KEY 13
#define IO$K_DECW_SCREEN_SAVER 14
#define IO$K_DECW_KB_LED 15
#define IO$K_DECW_RING_BELL 16
#define IO$K_DECW_ATTACH_SCREEN 17
#define IO$K_DECW_PMOUSE_KEY 18
#define IO$K_DECW_PTR_ACCEL 19
#define IO$K_DECW_MOTION_COMP 20
#define IO$K_DECW_MOTION_BUFFER_INIT 21
#define IO$K_DECW_CURSOR_BOUNDRIES 22
#define IO$K_LAST 23
/* */
/* DECwindows Driver for SETMODE of ATTACH_SCREEN call. */
/* The following are different parameters allowed by */
/* attach screen. Thus the prefix "DECW_AS_". */
/* */
#define IO$K_DECW_AS_TO_INPUT 2
#define IO$K_DECW_AS_TO_RIGHT 3
#define IO$K_DECW_AS_TO_LEFT 4
#define IO$K_DECW_AS_TO_TOP 5
#define IO$K_DECW_AS_TO_BOTTOM 6
#define IO$K_LAST 7
/* */
/* Submodifiers for SENSEMODE and SETMODE */
/* */
#define io$m_decw_bind 65536
struct decw_submodifiers1 {
unsigned io$v_fill_1 : 16; /* Skip over major func. code */
unsigned io$v_decw_bind : 1; /* Bind cursor to region */
unsigned io$v_fill_0 : 7;
} ;
/* */
/* Submodifiers for SENSEMODE and SETMODE (RELATED to decw_submodifiers1) */
/* */
#define IO$M_DECW_RESET_SCRSAV 131072
#define IO$M_DECW_KEYCLICK 262144
#define IO$M_DECW_AUTOREPEAT 524288
#define IO$M_DECW_BELL 1048576
#define IO$M_DECW_FORCE_SCRSAV 2097152
struct decw_submods {
unsigned IO$V_FILL_2 : 17; /* Skip over major func. code */
/* and decw_bind */
unsigned IO$V_DECW_RESET_SCRSAV : 1; /* Reset screen saver */
unsigned IO$V_DECW_KEYCLICK : 1; /* Enable/disable keyclick */
unsigned IO$V_DECW_AUTOREPEAT : 1; /* Enable/disable autorepeat */
unsigned IO$V_DECW_BELL : 1; /* Enable/disable bell */
unsigned IO$V_DECW_FORCE_SCRSAV : 1; /* Activate screen saver */
unsigned IO$V_fill_1 : 2;
} ;
/* */
/* Keyboard Characteristics (Info) Block */
/* */
#define kib$K_length 44
struct kbd_info {
unsigned long int kib$l_enable_mask [8];
unsigned long int kib$l_keyclick_vol;
unsigned long int kib$l_bell_vol;
unsigned long int kib$l_auto_on_off;
} ;
/* DECwindows GPX driver function codes */
/* */
#define IO$_DECW_OUTPUT_BUFFERED_FDT 58
#define IO$_DECW_OUTPUT_DIRECT_FDT 59
#define IO$_DECW_WRITEV 60
#define IO$_LAST 61
#define IO$K_DECW_ABS_PTR 0
#define IO$K_DECW_REL_PTR 1
#define IO$K_DECW_X11_PTR 2
#define IO$K_DECW_NO_PTR 3
/* */
/* NOTE: 58 can NOT change in order to guaranteed DECwindows V1 binary */
/* image compatibility. */
/* */
/* DECW_OUTPUT_BUFFERED_FDT is overlaid with IO$_TTYREADALL (58) */
/* DECW_OUTPUT_DIRECT_FDT IO$_TTYREADPALL (59) */
/* DECW_WRITEV IO$_CONINTREAD (60) */
/* */
/* NOTE: I/O function codes may NEVER exceed 63. */
/* */
/* */
/* GPX DECwindows driver device information block */
/* */
/* System defaults, static information - READ ONLY structure */
/* */
#define MAX_CURSORS 16 /* maximum number of hardware cursors */
#define dvi$m_pseudo_color 1
#define dvi$m_scrsav_enabled 2
#define dvi$m_none 1
#define dvi$m_fcc 2
#define dvi$m_color_cursor 1
#define dvi$K_LENGTH 142
struct dvi_struct {
unsigned long int dvi$l_flink; /* Forward link (eventually) */
unsigned long int dvi$l_blink; /* Backward link (eventually) */
short int dvi$w_size; /* Size of structure */
char dvi$b_type; /* Type of structure (DECwindows) */
char dvi$b_sub_type; /* Sub type of structure (Device) */
union {
long int dvi$l_flags;
struct {
struct {
unsigned dvi$v_pseudo_color : 1; /* Set if color map(s) exist */
unsigned dvi$v_scrsav_enabled : 1; /* Set if screen saver enabled */
unsigned dvi$v_fill_4 : 6;
} dvi$r_flags_struct;
} dvi$r_fill_3;
} dvi$r_fill_2;
unsigned char dvi$b_ws_type; /* Code for ws types */
union {
char dvi$b_compression_type; /* Code for hw compression types */
struct {
struct {
unsigned dvi$v_none : 1; /* Hardware cannot (de)compress bits */
unsigned dvi$v_fcc : 1; /* Hardware has FCC compression hardware */
unsigned dvi$v_fill_7 : 6;
} dvi$r_compression_struct;
} dvi$r_fill_6;
} dvi$r_fill_5;
unsigned char dvi$b_vsync_interval; /* VSYNC interval in milliseconds */
unsigned char dvi$b_spare_1;
long int dvi$l_scrsav_timeout; /* Screen saver timeout in seconds */
/* Color map info */
unsigned char dvi$b_system_color_map; /* System default color map num */
unsigned char dvi$b_color_maps; /* Number of hardware color maps */
unsigned short int dvi$w_color_map_entries; /* Max num of usable map entries */
unsigned char dvi$b_bits_per_rgb; /* bits per RGB */
/* Cursor info */
unsigned char dvi$b_system_cursor; /* System default cursor number */
unsigned char dvi$b_cursors; /* Number of hardware cursors */
unsigned char dvi$b_ci_spare_1;
unsigned char dvi$b_cursor_planes [16];
/* Planes in hardware cursor */
unsigned char dvi$b_cursor_width [16];
/* Width of cursor pattern */
unsigned char dvi$b_cursor_height [16];
/* Height of cursor pattern */
union {
char dvi$b_cursor_type [16];
struct {
struct {
unsigned dvi$v_color_cursor : 1; /* Cursor monochrome or color */
unsigned dvi$v_fill_10 : 7;
} dvi$r_cursor_struct;
} dvi$r_fill_9;
} dvi$r_fill_8;
/* Video memory description follows */
long int dvi$l_video_starting_pfn; /* Starting PFN */
short int dvi$w_video_page_count; /* Number of pages in frame buff */
unsigned char dvi$b_bits_per_pixel; /* Bits per pixel in frame buffer */
unsigned char dvi$b_bits_per_pix_btp; /* Bits per pixel in BTP op */
unsigned short int dvi$w_video_mem_width; /* Screen width in pixels */
unsigned short int dvi$w_video_mem_height; /* Screen height in pixels */
unsigned short int dvi$w_onscreen_x_origin; /* Offset to visible 0 */
unsigned short int dvi$w_onscreen_y_origin; /* Offset to visible 0 */
unsigned short int dvi$w_onscreen_width; /* Visible frame buffer width */
unsigned short int dvi$w_onscreen_height; /* Visible frame buffer height */
unsigned short int dvi$w_opwin_x_origin; /* Offset to operator window x */
unsigned short int dvi$w_opwin_y_origin; /* Offset to operator window y */
unsigned short int dvi$w_opwin_width; /* Width of operator window */
unsigned short int dvi$w_opwin_height; /* Height of operator window */
/* Tablet info */
unsigned short int dvi$w_tablet_width; /* Width of tablet */
unsigned short int dvi$w_tablet_height; /* Height of tablet */
/* LEGSS virtual memory mapping */
unsigned long int dvi$l_legss_start; /* start of VA space mapped */
unsigned long int dvi$l_legss_size; /* total number of pages */
/* LEGSS D chips configuration info */
unsigned long int dvi$l_lego_p0_mask; /* plane mask */
unsigned short int dvi$w_lego_p0; /* plane 0 */
} ;
/* */
/* Device types for sub_type field of the device structure */
/* */
#define DVI$K_VS1 1
#define DVI$K_VS2 2
#define DVI$K_VS2_GPX_4PLANE 3
#define DVI$K_VS2_GPX_8PLANE 4
#define DVI$K_VS2000 5
#define DVI$K_VS2000_GPX_4PLANE 6
#define DVI$K_VS2000_GPX_8PLANE 7
#define DVI$K_FIREFOX 8
#define DVI$K_LYNX1 9
#define DVI$K_VAXTERM1 10
#define DVI$K_VAXTERM2 11
#define DVI$K_LYNX2 12
#define DVI$K_CVAXSTAR 13
#define DVI$K_VAXSTAR2 14
#define DVI$K_SCANPROC 15
#define DVI$K_LCG 16
/* */
/* keyboard characteristics definitions */
/* */
#define decw$m_autorpt 1
#define decw$m_keyclick 2
#define decw$m_udf1 4
#define decw$m_udf6 8
#define decw$m_udf11 16
#define decw$m_udf17 32
#define decw$m_udhelpdo 64
#define decw$m_ude1 128
#define decw$m_udarrow 256
#define decw$m_udnumkey 512
#define decw$m_ret_tab 1024
#define decw$m_lock_comp 2048
#define decw$m_shift_ctrl 4096
#define decw$m_main 8192
#define decw$m_delete 16384
struct kbd_definitions {
unsigned decw$v_autorpt : 1; /* Keyboard autorepeat */
unsigned decw$v_keyclick : 1; /* Keyclick */
unsigned decw$v_udf1 : 1; /* keys F1-F5 generate up/down trans */
unsigned decw$v_udf6 : 1; /* keys F6-F10 generate up/down transitions */
unsigned decw$v_udf11 : 1; /* keys F11-F14 generate up/down transitions */
unsigned decw$v_udf17 : 1; /* keys F17-F20 generate up/down transitions */
unsigned decw$v_udhelpdo : 1; /* keys HELP and DO generate up/down transitions */
unsigned decw$v_ude1 : 1; /* keys E1-E6 generate up/down transitions */
unsigned decw$v_udarrow : 1; /* Arrow keys generate up/down transitions */
unsigned decw$v_udnumkey : 1; /* Numeric keypad keys generate up/down transitions */
unsigned decw$v_ret_tab : 1; /* RETURN and TAB gen up/down */
unsigned decw$v_lock_comp : 1; /* LOCK and COMPOSE gen up/down */
unsigned decw$v_shift_ctrl : 1; /* SHIFT and CTRL gen up/down */
unsigned decw$v_main : 1; /* main array */
unsigned decw$v_delete : 1; /* DELETE */
unsigned decw$v_fill_11 : 1;
} ;
/* */
/* Pointer characteristics definitions */
/* */
#define decw$m_ptr_left_hand 1
#define decw$m_ptr_invert_stylus 2
struct ptr_definitions {
unsigned decw$v_ptr_left_hand : 1; /* Treat puck or mouse as left handed. */
unsigned decw$v_ptr_invert_stylus : 1; /* Switch buttons on stylus. */
unsigned decw$v_fill_12 : 6;
} ;
/* */
/* Mouse button definitions */
/* */
#define decw$m_uptodown 1
struct button_definitions {
unsigned decw$v_uptodown : 1; /* Up down transitions */
unsigned decw$v_fill_13 : 7;
} ;
#define key$c_select 400
#define key$c_button_1 400
#define key$c_button_2 401
#define key$c_button_3 402
/* */
/* Keyboard LED definitions */
/* */
#define DECW$K_LIGHT1 129
#define DECW$K_LIGHT2 130
#define DECW$K_LIGHT3 132
#define DECW$K_LIGHT4 136
#define DECW$K_ALL 143
#define DECW$M_LIGHT1 1
#define DECW$M_LIGHT2 2
#define DECW$M_LIGHT3 4
#define DECW$M_LIGHT4 8
/* */
/* The following are types which may appear in Xevents. */
/* Subset of those defined in X.H. */
/* */
#define KeyPress 2
#define KeyRelease 3
#define ButtonPress 4
#define ButtonRelease 5
#define MotionNotify 6
/* */
/* The following structures are passed as $QIO parameters. */
/* */
/* */
/* Cursor Pattern Descriptor */
/* */
#define cpa$K_DATA_OFFSET 8
struct cursor_patt {
unsigned char cpa$b_number;
unsigned char cpa$b_style;
unsigned short int cpa$w_hot_spot_x;
unsigned short int cpa$w_hot_spot_y;
unsigned short int cpa$w_bitmap_length;
char cpa$t_bitmap_image [];
} ;
/* */
/* Cursor Position Descriptor */
/* */
struct cursor_pos {
unsigned char cpo$b_number;
unsigned short int cpo$w_x;
unsigned short int cpo$w_y;
} ;
/* */
/* Cursor Color Descriptor */
/* */
struct cursor_color {
unsigned char cco$b_number;
unsigned short int cco$w_fcolor_red;
unsigned short int cco$w_fcolor_green;
unsigned short int cco$w_fcolor_blue;
unsigned short int cco$w_bcolor_red;
unsigned short int cco$w_bcolor_green;
unsigned short int cco$w_bcolor_blue;
} ;
/* */
/* Input Event Packet - same as Xevent defined by X11 Protocol */
/* */
/* Packets are put into the input queue by the driver, removed */
/* by the server and returned to a free list. */
/* */
#define inp$m_shiftmask 1
#define inp$m_capslockmask 2
#define inp$m_controlmask 4
#define inp$m_mod1mask 8
#define inp$m_mod2mask 16
#define inp$m_mod3mask 32
#define inp$m_mod4mask 64
#define inp$m_mod5mask 128
#define inp$m_button1mask 256
#define inp$m_button2mask 512
#define inp$m_button3mask 1024
#define inp$m_button4mask 2048
#define inp$m_button5mask 4096
#define inp$m_unused1 8192
#define inp$m_unused2 16384
#define inp$m_anymodifier 32768
#define inp$K_length 38
struct inp_struct {
struct inp_struct *inp$a_flink;
struct inp_struct *inp$a_blink;
char inp$b_type; /* X event type */
char inp$b_detail; /* detail = key,button,motion */
unsigned short int inp$w_sequence; /* sequence number */
unsigned long int inp$l_timestamp; /* timestamp */
unsigned long int inp$l_root_win; /* root window */
unsigned long int inp$l_event_win; /* event window */
unsigned long int inp$l_child_win; /* child window */
short int inp$w_root_x; /* root x,y */
short int inp$w_root_y;
short int inp$w_event_x; /* event x,y */
short int inp$w_event_y;
union {
unsigned short int inp$w_key_button_mask; /* key button mask */
struct {
struct {
unsigned inp$v_shiftmask : 1; /* key masks */
unsigned inp$v_capslockmask : 1;
unsigned inp$v_controlmask : 1;
unsigned inp$v_mod1mask : 1;
unsigned inp$v_mod2mask : 1;
unsigned inp$v_mod3mask : 1;
unsigned inp$v_mod4mask : 1;
unsigned inp$v_mod5mask : 1;
unsigned inp$v_button1mask : 1; /* button masks */
unsigned inp$v_button2mask : 1;
unsigned inp$v_button3mask : 1;
unsigned inp$v_button4mask : 1;
unsigned inp$v_button5mask : 1;
unsigned inp$v_unused1 : 1;
unsigned inp$v_unused2 : 1;
unsigned inp$v_anymodifier : 1; /* bit 15 used in GrabButton, GrabKey */
} inp$r_key_button_mask_struct;
} inp$r_fill_15;
} inp$r_fill_14;
} ;
|
| Is this file accessible with vms5.3. I have a customer who wants to
use the $qio call, and can't find the include file.
1. Is the include file available?
2. If so, where can I find it, extract it, or whatever.
thanks in adavance
bernie
csc/cs
|