STREAMS Modules vuidmice(7M)
NAME
vuidmice, vuidm3p, vuidm4p, vuidm5p, vuid2ps2, vuid3ps2 -
converts mouse protocol to Firm EventsSYNOPSIS
#include
#include
#include
int ioctl(fd, I_PUSH, vuidm3p);
int ioctl(fd, I_PUSH, vuidm4p);
int ioctl(fd, I_PUSH, vuidm5p);
int ioctl(fd, I_PUSH, vuid2ps2);
int ioctl(fd, I_PUSH, vuid3ps2);
DESCRIPTION
The STREAMS modules vuidm3p, vuidm4p, vuidm5p, vuid2ps2,
and vuid3ps2 convert mouse protocols to Firm events. TheFirm event structure is described in
Pushing a STREAMS module does not automatically enable mouse protocol conversion to Firm events. The STREAMS. module state is initially set to raw or VUID_NATIVE mode
which performs no message processing. You must change thestate to VUID_FIRM_EVENT mode to initiate mouse protocol
conversion to Firm events. This can be accomplished by the following code: int format;format = VUID_FIRM_EVENT;
ioctl(fd, VUIDSFORMAT, &format); You can also query the state of the STREAMS module by using the VUIDGFORMAT option. int format; int fd; /* file descriptor */SunOS 5.11 Last change: 21 June 2005 1
STREAMS Modules vuidmice(7M) ioctl(fd, VUIDGFORMAT, &format);if ( format == VUID_NATIVE );
/* The state of the module is in raw mode. * Message processing is not enabled. */if ( format == VUID_FIRM_EVENT );
/* Message processing is enabled. * Mouse protocol conversion to Firm events * are performed. The remainder of this section describes the processing ofSTREAMS messages on the read- and write-side.
Read Side BehaviorM_DATA Incoming messages are queued and converted to
Firm events.M_FLUSH The read queue of the module is flushed of all
its data messages and all data in the record being accumulated are also flushed. The message is passed upstream. Write Side BehaviorM_IOCTL Messages sent downstream as a result of an
ioctl(2) system call. The two valid ioctl options processed by the vuidmice modules are VUIDGFORMAT and VUIDSFORMAT.M_FLUSH The write queue of the module is flushed of
all its data messages and the message is passed downstream. VUIDGFORMAT This option returns the current state of the STREAMS module. The state of the vuidmiceSTREAMS module may either be VUID_NATIVE (no
message processing) or VUID_FIRM_EVENT (con-
vert to Firm events). VUIDSFORMAT This option sets the state of the STREAMSmodule to VUID_FIRM_EVENT. If the state of
the STREAMS module is already inVUID_FIRM_EVENT, this option is non-
operational. It is not possible to set thestate back to VUID_NATIVE once the state
becomes VUID_FIRM_EVENT. To disable message
SunOS 5.11 Last change: 21 June 2005 2
STREAMS Modules vuidmice(7M) processing, pop the STREAMS module out bycalling ioctl(fd, 1I_POP, vuid*).
The following wheel support ioctls are defined for PS/2 mouse only: VUIDGWHEELCOUNT This ioctl takes a pointer to an integer as argument and sets the value of the integer to the number of wheels available on this device. VUIDGWHEELINFO This command returns static information about the wheel that does not change while a device is in use. Currently the only information defined is the wheel orientation which is eitherVUID_WHEEL_FORMAT_VERTICAL or
VUID_WHEEL_FORMAT_HORIZONTAL.
typedef struct { int vers; int id; int format;} wheel_info;
The ioctl takes a pointer to"wheel_info" structure with the "vers"
set to the current version of the"wheel_info" structure and "id" set to
the id of the wheel for which the infor-
mation is desired. VUIDSWHEELSTATE VUIDSWHEELSTATE sets the state of theVUIDGWHEELSTATE wheel to that specified in the sta-
teflags. VUIDGWHEELSTATE returns the current state settings in the stateflags field. stateflags is an OR'ed set of flag bits. The only flag currently defined isVUID_WHEEL_STATE_ENABLED.
When stateflags is set toVUID_WHEEL_STATE_ENABLED the module con-
verts motion of the specified wheel into VUID events and sends those up stream.SunOS 5.11 Last change: 21 June 2005 3
STREAMS Modules vuidmice(7M) Wheel events are disabled by default. Applications that want to change a flag should first get the current flags and then change only the bit they want. typedef struct { int vers; int id;uint32_t stateflags;
} wheel_state;
These ioctls take pointer to'wheel_state' as an argument with the
'vers' and 'id' members filled up. These members have the same meaning as that for 'VUIDGWHEELINFO' ioctl. Mouse Configurations_______________________________________________________________
| Module | Protocol Type | Device ||_____________|___________________________|____________________|
| vuidm3p | 3-Byte Protocol Microsoft| /dev/tty* |
| | 2 Button Serial Mouse | ||_____________|___________________________|____________________|
| vuidm4p | 4-Byte Protocol Logitech| /dev/tty* |
| | 3 Button Mouseman | ||_____________|___________________________|____________________|
| vuidm5p | Logitech 3 Button Bus| /dev/logi/ dev/msm| | | Mouse Microsoft Bus Mouse| ||_____________|___________________________|____________________|
| vuid2ps2 | PS/2 Protocol 2 Button| /dev/kdmouse | | | PS/2 Compatible Mouse | ||_____________|___________________________|____________________|
| vuid3ps2 | PS/2 Protocol 3 Button| /dev/kdmouse | | | PS/2 Compatible Mouse | ||_____________|___________________________|____________________|
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 21 June 2005 4
STREAMS Modules vuidmice(7M)____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Architecture | x86 ||_____________________________|_____________________________|
SEE ALSO
attributes(5), virtualkm(7D) STREAMS Programming GuideSunOS 5.11 Last change: 21 June 2005 5