usbms(4m) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

usbms(4m)

usbms(4M)                       Streams Modules                      usbms(4M)

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  Interface  Device  (HID)
       class  and  the  usbms module supports only the mouse boot protocol de‐
       fined in the HID specification.


       The usbms module must be pushed on top of the  HID  class  driver  (see
       hid(4D)).  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 format of the mouse  packets.
       To  initiate mouse protocol conversion to Firm events, change the state
       to VUID_FIRM_EVENT.


       When the usb mouse is opened or hot plugged in, the MOUSE_TYPE_ABSOLUTE
       event (Firm event) is sent to the upper level to notify the VUID appli‐
       cation that it is the absolute mouse.

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 structure.
                    VUIDSADDR sets the virtual input  device  segment  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 structure.
                    Return the address of the virtual input device segment in‐
                    dicated by base to current.



       If base does not equal VKEY_FIRST, ENODEV is returned.

       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 de‐
           vice. This ioctl returns 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_FOR‐
           MAT_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 con‐
           verts 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 INFOioctl.



       ioctl() requests for changing and retrieving mouse parameters  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
                          structure.


       MSIOSETPARMS       The  argument is a pointer to a Ms_params structure.
                          The usbms module parameters are set according to the
                          values in the structure.


       MSIOSRESOLUTION    Used by the absolute mouse to get the current screen
                          resolution.  The  parameter  is  a  pointer  to  the
                          Ms_screen_resolution structure:




                            int    height;         /* height of the screen */
                            int    width;         /* width of the screen */
                            }Ms_screen_resolution;

                          The usbms module parameters are set according to the
                          values  in  the  structure and used to calculate the
                          correct coordinates.


FILES
       /kernel/strmod/sparcv9/usbms

           SPARC 64-bit ELF kernel STREAMS module


ATTRIBUTES
       See attributes(7) for a description of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE  VALUE  _  ArchitecturePCI-based  systems  _  Availability sys‐
       tem/io/usb


SEE ALSO
       ioctl(2), hid(4D), usba(4D), virtualkm(4D), attributes(7)


       https://www.usb.org/

DIAGNOSTICS
       The following messages may be logged into the system log. They are for‐
       matted in the following manner:

         <device path><usbms<instance number>): message...


       Invalid Hid descriptor tree. Set to default value (3 buttons).

           The mouse supplied incorrect information in its HID report.


       Mouse buffer flushed when overrun.

           Mouse data was lost.


Oracle Solaris 11.4               07 Nov 2016                        usbms(4M)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3