|
STREAMS Modules | vuidmice(7M) |
| vuidmice, vuidm3p, vuidm4p, vuidm5p, vuid2ps2, vuid3ps2 - converts mouse protocol
to Firm Events |
SYNOPSIS
|
#include <sys/vuid_event.h>
|
|
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);
|
|
The STREAMS modules vuidm3p, vuidm4p, vuidm5p, vuid2ps2, and vuid3ps2 convert mouse protocols to Firm
events. The Firm event structure is described in <sys/vuid_event.h>. 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. The user will need to
change the state to VUID_FIRM_EVENT mode in order 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);
|
The user can also query the state of the STREAMS module by using the VUIDGFORMAT option.
|
int format;
int fd; /* file descriptor */
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 of STREAMS messages on the read- and write-side.
Read Side Behavior
|
-
M_DATA
- The messages coming in 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 Behavior
|
-
M_IOCTL
- Messages sent downstream as a result of an ioctl(2) system call. There are two valid ioctl options processed by the vuidmice modules VUIDGFORMAT and VUIDSFORMAT.
-
VUIDGFORMAT
- This option returns the current state of the STREAMS
module. The state of the vuidmice STREAMS module may either be VUID_NATIVE (no message processing) or VUID_FIRM_EVENT (convert to Firm events).
-
VUIDSFORMAT
- This option sets the state of the STREAMS module to VUID_FIRM_EVENT.
If the state of the STREAMS module is already in VUID_FIRM_EVENT then this option is non-operational. It is not possible to set the state back to VUID_NATIVE once the state becomes VUID_FIRM_EVENT. To disable message processing, pop the STREAMS module out by calling ioctl(fd, 1I_POP, vuid*).
-
M_FLUSH
- The write queue of the module is flushed of all its data messages and the message is passed downstream.
|
Mouse Configurations
|
Module | Protocol Type | Device |
vuidm3p | 3-Byte Protocol
Microsoft 2 Button Serial Mouse | /dev/tty* |
vuidm4p | 4-Byte Protocol
Logitech 3 Button Mouseman | /dev/tty* |
vuidm5p | Logitech 3 Button Bus Mouse
Microsoft Bus Mouse | /dev/logi/ dev/msm |
vuid2ps2 | PS/2 Protocol
2 Button PS/2 Compatible Mouse | /dev/kdmouse |
vuid3ps2 | PS/2 Protocol
3 Button PS/2 Compatible Mouse | /dev/kdmouse |
|
|
|
See attributes(5) for descriptions of the following
attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | IA |
|
| |