// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2019 Cyril Hrubis */ #ifndef TST_UINPUT_H__ #define TST_UINPUT_H__ /** * Tries to open the uinput device. * * Returns file descriptor on success, -1 on failure. */ int open_uinput(void); /** * Creates virtual input device. * * @fd File descriptor returned by open_uinput(). */ void create_input_device(int fd); /** * Parses /proc/bus/input/devices and returns the strings for our virtual device. * If passing 'H' to it, it returns HANDLERS string. If passing 'S' to it, it * returns SYSFS string. * * Returns newly allocated string, or NULL in a case of failure. */ char *get_input_field_value(char field); /** * Sets up the virtual device to appear as a mouse, this must be called before * the call to create_input_device(). * * @fd File descriptor as returned by open_uinput(). */ void setup_mouse_events(int fd); /** * Destroys virtual input device. * * @fd File descriptor returned by open_uinput(). */ void destroy_input_device(int fd); #endif /* TST_UINPUT_H__ */