|
|
#include <sys/types.h> #include <sys/param.h> #include <sys/sysmacros.h> #include <sys/page.h> #include <sys/event.h> #include <mouse.h>int ev_open (dmask) dmask_t *dmaskp;
The bitmask is made of one or more of four classes of devices. The four classes are D_STRING, D_REL, D_ABS, or D_OTHER. D_STRING refers to character stream devices like the keyboard. D_REL refers to relative locator devices like mice. D_ABS refers to absolute locator devices like bitpads. These values are defined in <mouse.h>.
ev_open attempts to open devices of the types indicated in the argument and sets the mask to indicate the devices successfully opened. If no devices can be successfully opened, ev_open returns -1 as an error condition.
If ev_open succeeds in opening an event queue and devices, it returns a file descriptor for the event queue. The file descriptor is for use with the select system call and should not be used for reading or writing.
This is a program fragment that opens an event queue with a mouse and the keyboard attached:
main()
{
dmask_t dmask; /* device mask */
int qfd; /* event queue file descriptor */
ev_init(); /* initialize event manager */
dmask = D_REL|D_STRING; /* device mask for mouse & kbd */
qfd = ev_open(&dmask); /* try to open event queue */
if ( qfd < 0 )
exit(1); /* error on open */
if (dmask != (D_REL | D_STRING))
exit(2); /* could not attach both devices */
/* event queue is open */
...
}
It returns -1 if there was a configuration error in the configuration files (see ev_init(S)). ev_open returns -2 if it does not find any devices to attach. It returns -3 if it is unable to open devices it finds. It returns -4 if it is unable to open an event queue.