[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

1602.0. "DECwindows Device Driver $QIO ???" by TKTV20::WATANABE (When the evening falls...) Wed Oct 18 1989 23:01

	   
	    ***** DECwindows Device Driver $QIO ***** 

	Could anyone please tell me about IO$K_DECW_xxx ?

	I can't find file that define those function modifier.
	So far, I have no idea to compile the program . 

	Where is it ?

				Tetsuya Watanabe    VMS/TSC/CS/TOKYO/JPN

T.RTitleUserPersonal
Name
DateLines
1602.1.h file. Use with v5.3 at your own riskSTAR::BMATTHEWSThu Oct 19 1989 12:03417
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;
    } ;

1602.2Thank you for your response.TKTV20::WATANABEWhen the evening falls...Fri Oct 20 1989 08:251
1602.3is $decwdef.h available to public?CSC32::B_BRADACHTue Feb 20 1990 18:2711
    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
    
1602.4So have I !!SCOTMN::WOODRichard Wood - UK Workstation Support DTN 833 -3801Thu Mar 01 1990 09:2310
I too have a customer who has the documentation for these QIO's
but cannot find the header file.
Is there any reason why I cannot give the file in .1 out to the
customer. He's going to be pretty annoyed if I can't but I thought
I'd check just to be sure.

Thanks for any info.

Richard