blob: cf351cdfbdb20f4837aab337b190ee5beeaa23af [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2019 Cyril Hrubis <chrubis@suse.cz>
*/
#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__ */