
D front-end changes: - Import dmd v2.104.1. - Deprecation phase ended for access to private method when overloaded with public method. D runtime changes: - Import druntime v2.104.1. - Linux input header translations were added to druntime. - Integration with the Valgrind `memcheck' tool has been added to the garbage collector. Phobos changes: - Import phobos v2.104.1. gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd a88e1335f7. * dmd/VERSION: Bump version to v2.104.1. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime a88e1335f7. * src/MERGE: Merge upstream phobos 1921d29df. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac (libphobos-checking): Add valgrind flag. (DRUNTIME_LIBRARIES_VALGRIND): Call. * libdruntime/Makefile.am (DRUNTIME_CSOURCES): Add etc/valgrind/valgrind_.c. (DRUNTIME_DSOURCES): Add etc/valgrind/valgrind.d. (DRUNTIME_DSOURCES_LINUX): Add core/sys/linux/input.d, core/sys/linux/input_event_codes.d, core/sys/linux/uinput.d. * libdruntime/Makefile.in: Regenerate. * m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_VALGRIND): Define.
85 lines
2.4 KiB
D
85 lines
2.4 KiB
D
module core.sys.linux.uinput;
|
|
|
|
version (linux):
|
|
extern(C):
|
|
nothrow:
|
|
|
|
import core.sys.posix.sys.ioctl;
|
|
|
|
public import core.sys.linux.input;
|
|
public import core.sys.linux.input_event_codes;
|
|
|
|
enum UINPUT_VERSION = 5;
|
|
enum UINPUT_MAX_NAME_SIZE = 80;
|
|
|
|
struct uinput_ff_upload
|
|
{
|
|
uint request_id;
|
|
int retval;
|
|
ff_effect effect;
|
|
ff_effect old;
|
|
}
|
|
|
|
struct uinput_ff_erase
|
|
{
|
|
uint request_id;
|
|
int retval;
|
|
uint effect_id;
|
|
}
|
|
|
|
enum UINPUT_IOCTL_BASE = 'U';
|
|
enum UI_DEV_CREATE = _IO(UINPUT_IOCTL_BASE, 1);
|
|
enum UI_DEV_DESTROY = _IO(UINPUT_IOCTL_BASE, 2);
|
|
|
|
struct uinput_setup
|
|
{
|
|
input_id id;
|
|
char[UINPUT_MAX_NAME_SIZE] name;
|
|
uint ff_effects_max;
|
|
}
|
|
|
|
enum UI_DEV_SETUP = _IOW!uinput_setup(UINPUT_IOCTL_BASE, 3);
|
|
|
|
struct uinput_abs_setup
|
|
{
|
|
ushort code;
|
|
|
|
input_absinfo absinfo;
|
|
}
|
|
|
|
enum UI_ABS_SETUP = _IOW!uinput_abs_setup(UINPUT_IOCTL_BASE, 4);
|
|
|
|
enum UI_SET_EVBIT = _IOW!int(UINPUT_IOCTL_BASE, 100);
|
|
enum UI_SET_KEYBIT = _IOW!int(UINPUT_IOCTL_BASE, 101);
|
|
enum UI_SET_RELBIT = _IOW!int(UINPUT_IOCTL_BASE, 102);
|
|
enum UI_SET_ABSBIT = _IOW!int(UINPUT_IOCTL_BASE, 103);
|
|
enum UI_SET_MSCBIT = _IOW!int(UINPUT_IOCTL_BASE, 104);
|
|
enum UI_SET_LEDBIT = _IOW!int(UINPUT_IOCTL_BASE, 105);
|
|
enum UI_SET_SNDBIT = _IOW!int(UINPUT_IOCTL_BASE, 106);
|
|
enum UI_SET_FFBIT = _IOW!int(UINPUT_IOCTL_BASE, 107);
|
|
enum UI_SET_PHYS = _IOW!(char*)(UINPUT_IOCTL_BASE, 108);
|
|
enum UI_SET_SWBIT = _IOW!int(UINPUT_IOCTL_BASE, 109);
|
|
enum UI_SET_PROPBIT = _IOW!int(UINPUT_IOCTL_BASE, 110);
|
|
|
|
enum UI_BEGIN_FF_UPLOAD = _IOWR!uinput_ff_upload(UINPUT_IOCTL_BASE, 200);
|
|
enum UI_END_FF_UPLOAD = _IOW!uinput_ff_upload(UINPUT_IOCTL_BASE, 201);
|
|
enum UI_BEGIN_FF_ERASE = _IOWR!uinput_ff_erase(UINPUT_IOCTL_BASE, 202);
|
|
enum UI_END_FF_ERASE = _IOW!uinput_ff_erase(UINPUT_IOCTL_BASE, 203);
|
|
|
|
enum UI_GET_SYSNAME(len) = _IOC(_IOC_READ, UINPUT_IOCTL_BASE, 44, len);
|
|
|
|
enum UI_GET_VERSION = _IOR!uint(UINPUT_IOCTL_BASE, 45);
|
|
|
|
enum EV_UINPUT = 0x0101;
|
|
enum UI_FF_UPLOAD = 1;
|
|
enum UI_FF_ERASE = 2;
|
|
|
|
struct uinput_user_dev {
|
|
char[UINPUT_MAX_NAME_SIZE] name;
|
|
input_id id;
|
|
uint ff_effects_max;
|
|
int[ABS_CNT] absmax;
|
|
int[ABS_CNT] absmin;
|
|
int[ABS_CNT] absfuzz;
|
|
int[ABS_CNT] absflat;
|
|
}
|