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