gcc/libphobos/libdruntime/core/sys/linux/uinput.d
Iain Buclaw e9251fea2d d: Merge upstream dmd, druntime a88e1335f7, phobos 1921d29df.
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.
2023-07-10 23:31:29 +02:00

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;
}