summaryrefslogtreecommitdiffstats
path: root/kernel/tests/include/tst_uinput.h
blob: cf351cdfbdb20f4837aab337b190ee5beeaa23af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 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__ */