|
|
The driver will support multiple mouse applications running in virtual terminal screens, both under the UNIX System and MS-DOS via SimulTask, VP/ix, Merge, or another similar product.
Support for mouse administration is also provided. See mouseadmin(1).
The following ioctl commands are supported:
struct mse_cfg { struct mousemap *mapping; unsigned count; } struct mousemap { dev_t disp_dev; dev_t mse_dev; } int type;
struct mouseinfo { unsigned char status; char xmotion: char ymotion; }
MOUSEIOCREAD will set errno to EFAULT for failure
to return a valid mouseinfo structure.
The status
byte contains the button state information
according to the following format:
0 Mv Lc Mc Rc L M Rwhere:
The Mv bit is required because the total x and y delta since the
last MOUSEIOCREAD ioctl could be 0 yet the mouse may have been moved.
The Lc
, Mc
, and Rc
bits
are required for a similar reason;
if a button had been pushed and released since the last MOUSEIOCREAD
ioctl, the current state bit would be unchanged but the application
would want to know the button had been pushed.
The xmotion
and ymotion
fields are signed quantities
relative to the previous position in the range -127 to 127.
Deltas that would overflow a signed char have been truncated.
struct cmd_320 { int cmd; int arg1; int arg2; int arg3; }
Valid commands for the PS/2 compatible devices are as follows:
/dev/mouse /usr/lib/mousemgr /usr/include/sys/mouse.h