usbms(7M)
NAME
usbms - USB mouse STREAMS module
SYNOPSIS
#include <sys/vuid_event.h>
#include <sys/vuid_wheel.h>
#include <sys/msio.h>
#include <sys/msreg.h>
DESCRIPTION
The usbms STREAMS module processes byte streams generated
by a USB mouse. A USB mouse is a member of the Human Inter-
face Device (HID) class and the usbms module supports only
the mouse boot protocol defined in the HID specification.
The usbms module must be pushed on top of the HID class
driver (see hid(7D)). In the VUID_FIRM_EVENT mode, the
usbms module translates packets from the USB mouse into Firm
events. The Firm event structure is defined in
<sys/vuid_event.h>. The STREAMS module state is initially
set to raw or VUID_NATIVE mode which performs no message
processing. See the HID 1.0 specification for the raw for-
mat of the mouse packets. To initiate mouse protocol
conversion to Firm events, change the state to
VUID_FIRM_EVENT.
IOCTLS
VUIDGFORMAT
This option returns the current state of the STREAMS
module. The state of the usbms STREAMS module may be
either VUID_NATIVE (no message processing) or
VUID_FIRM_EVENT (convert to Firm events).
VUIDSFORMAT
The argument is a pointer to an int. Set the state of
the STREAMS module to the int pointed to by the argu-
ment.
typedef struct vuid_addr_probe {
short base; /* default vuid device addr directed too */
union {
short next; /* next addr for default when VUIDSADDR */
short current; /* current addr of default when VUIDGADDR */
} data;
} Vuid_addr_probe;
VUIDSADDR
The argument is a pointer to a Vuid_addr_probe struc-
ture. VUIDSADDR sets the virtual input device seg-
ment address indicated by base to next.
If base does not equal VKEY_FIRST, ENODEV is
returned.
VUIDGADDR
The argument is a pointer to a Vuid_addr_probe struc-
ture. Return the address of the virtual input device
segment indicated by base to current.
If base does not equal VKEY_FIRST, ENODEV is returned.
VUIDGWHEELCOUNT
This ioctl takes a pointer to an integer as argu-
ment which conveys the number of available wheels on
the device upon return.
The returned value of the integer is 1 if wheel(s)
are present and zero if no wheels are present.
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 either
VUID_WHEEL_FORMAT_VERTICAL or
VUID_WHEEL_FORMAT_HORIZONTAL. If the module cannot
distinguish the orientation of the wheel or the wheel
is of some other format, the format is set to
VUID_WHEEL_FORMAT_UNKNOWN.
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 information is desired.
VUIDSWHEELSTATE/VUIDGWHEELSTATE
VUIDSWHEELSTATE sets the state of the wheel to that
specified in the stateflags. VUIDGWHEELSTATE returns
the current state settings in the stateflags field.
stateflags is an OR'ed set of flag bits. The only
flag currently defined is VUID_WHEEL_STATE_ENABLED.
When stateflags is set to VUID_WHEEL_STATE_ENABLED the
module converts motion of the specified wheel into
VUID events and sends those up stream.
Wheel events are enabled by default.
Applications that want to change the stateflags should
first get the current stateflags and then change only
the bit they want.
typedef struct {
int vers;
int id;
uint32_t stateflags;
} wheel_state;
These ioctls take a pointer to "wheel_state" as an
argument with the "vers" and "id" members filled in.
These members have the same meaning as that for
'VUIDGWHEEL INFO' ioctl.
ioctl() requests for changing and retrieving mouse parame-
ters use the Ms_parms structure:
typedef struct {
int jitter_thresh;
int speed_law;
int speed_limit;
} Ms_parms;
jitter_thresh is the "jitter threshold" of the mouse.
Motions fewer than jitter_thresh units along both axes are
accumulated and then sent up the stream after 1/12 second.
speed_law indicates whether extremely large motions are to
be ignored. If it is 1, a "speed limit" is applied to mouse
motions. Motions along either axis of more than speed_limit
units are discarded.
MSIOGETPARMS
The argument is a pointer to a Ms_params structure.
The usbms module parameters are returned in the struc-
ture.
MSIOSETPARMS
The argument is a pointer to a Ms_params structure.
The usbms module parameters are set according to the
values in the structure.
FILES
/kernel/strmod/usbms
32-bit ELF kernel STREAMS module for original USBA
framework.*
/kernel/strmod/sparcv9/usbms
64-bit ELF kernel STREAMS module for original USBA
framework.* (SPARC only).
/kernel/strmod/usbms1
32 bit ELF kernel module for USBA 1.0 framework.*
/kernel/strmod/sparcv9/usbms1
64 bit ELF kernel module for USBA 1.0 framework.*
(SPARC only).
* Please see www.sun.com/desktop/whitepapers.html for more
information regarding USB dual framework implementation,
USBA 1.0, and USB 2.0.
ATTRIBUTES
See attributes(5) for a description of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| ____________________________|_____________________________|_
| Architecture | PCI-based systems |
| ____________________________|_____________________________|_
| Availability | SUNWusb (All architectures)|
| | SUNWusbx (SPARC only) |
|_____________________________|_____________________________|
| Interface Stability | Evolving |
|_____________________________|_____________________________|
SEE ALSO
ioctl(2), attributes(5), hid(7D), usba(7D)
System Administration Guide: Basic Administration
http://www.sun.com/desktop/whitepapers.html
http://www/sun.com/io
DIAGNOSTICS
None
Man(1) output converted with
man2html