FreeBSD Manual Pages
KEYBOARD(3) Library Functions Manual KEYBOARD(3) NAME initkeyboard, ctlkeyboard, closekeyboard - keyboard control SYNOPSIS #include <u.h> #include <libc.h> #include <thread.h> #include <keyboard.h> Keyboardctl *initkeyboard(char *file) int ctlkeyboard(Keyboardctl *kc, char *msg) void closekeyboard(Keyboard *kc) DESCRIPTION These functions access and control a keyboard interface for character- at-a-time I/O in a multi-threaded environment, usually in combination with They use the message-passing Channel interface in the threads li- brary (see programs that wish a more event-driven, single-threaded ap- proach should use Initkeyboard opens a connection to the keyboard and returns a Keyboard- ctl structure: typedef struct Keyboardct Keyboardctl; struct Keyboardctl { Channel *c; /* chan(Rune[20]) */ char *file; int consfd; /* to cons file */ int ctlfd; /* to ctl file */ int pid; /* of slave proc */ }; The argument to initkeyboard is ignored (on Plan 9, it is the name of the keyboard device). Once the Keyboardctl is set up a message containing a Rune will be sent on the Channel Keyboardctl.c to report each character read from the de- vice. Ctlkeyboard is used to set the state of the interface, typically to turn raw mode on and off. It writes the string msg to the control file associated with the device, which is assumed to be the regular device file name with the string ctl appended. Closekeyboard closes the file descriptors associated with the keyboard, kills the slave processes, and frees the Keyboardctl structure. SOURCE /src/libdraw SEE ALSO BUGS Because the interface delivers complete runes, there is no way to re- port lesser actions such as shift keys or even individual bytes. KEYBOARD(3)
NAME | SYNOPSIS | DESCRIPTION | SOURCE | SEE ALSO | BUGS
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=keyboard&manpath=FreeBSD+12.2-RELEASE+and+Ports>