/* SunOS Virtual User Input Device (VUID) compatibility */


typedef struct firm_event {
	unsigned short id;	  /* tag for this event */
	unsigned char  pair_type; /* unused by X11 */
        unsigned char  pair;	  /* unused by X11 */
        int            value;	  /* VKEY_UP, VKEY_DOWN or delta */
        struct timeval time;
} Firm_event;

enum {
    FE_PAIR_NONE,
    FE_PAIR_SET,
    FE_PAIR_DELTA,
    FE_PAIR_ABSOLUTE
};

/* VUID stream formats */
#define VUID_NATIVE     0	/* Native byte stream format */
#define VUID_FIRM_EVENT 1	/* send firm_event structures */

/* ioctls */
    /* Set input device byte stream format (any of VUID_{NATIVE,FIRM_EVENT}) */
#define VUIDSFORMAT   _IOW('v', 1, int)
    /* Retrieve input device byte stream format */
#define VUIDGFORMAT   _IOR('v', 2, int)

/* Possible tag values */
/*    mouse buttons: */
#define MS_LEFT         0x7f20
#define MS_MIDDLE       0x7f21
#define MS_RIGHT        0x7f22
/*    motion: */
#define LOC_X_DELTA     0x7f80
#define LOC_Y_DELTA     0x7f81
#define LOC_X_ABSOLUTE  0x7f82  /* X compat, unsupported */
#define LOC_Y_ABSOLUTE  0x7f83  /* X compat, unsupported */

#define VKEY_UP   0
#define VKEY_DOWN 1
