Skip to content

Commit 7c5e4d9

Browse files
Update libsuinput
2 parents ac427fc + f0f4804 commit 7c5e4d9

6 files changed

Lines changed: 177 additions & 15 deletions

File tree

libsuinput/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Release x.y
1212

1313
- SO-version: 5.0.1
1414

15+
- Re-distribute libudev.h
16+
1517
Release 0.5
1618
===========
1719

libsuinput/README

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,7 @@ Homepage: <http://tjjr.fi/sw/libsuinput/>
1515
How to install
1616
==============
1717

18-
Libsuinput uses libudev and therefore requires libudev development
19-
files, more specifically libudev.h, to get compiled. On Debian and its
20-
derivatives, the header file is packaged in libudev-dev.
21-
22-
After satisfying dependencies described above, the basic installation
23-
is easy. Just run the following command:
18+
Just run the following commands:
2419

2520
./configure && make && make install
2621

libsuinput/configure.ac

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ AM_PROG_AR
99
AC_PROG_LIBTOOL
1010
AC_PROG_CC
1111
AC_CONFIG_MACRO_DIR([m4])
12-
AC_CHECK_HEADER([libudev.h])
13-
if test "$ac_cv_header_libudev_h" == no
14-
then
15-
AC_MSG_ERROR([This package needs libudev.h to get compiled.])
16-
fi
1712
AC_CONFIG_FILES([
1813
Makefile
1914
src/Makefile

libsuinput/src/Makefile.am

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
AM_CPPFLAGS = -Wall -Werror -Wextra -pedantic -std=c89
1+
AM_CPPFLAGS = -Wall -Werror -Wextra -pedantic -std=gnu99
22
lib_LTLIBRARIES = libsuinput.la
33
libsuinput_la_SOURCES = suinput.c
4-
libsuinput_la_LDFLAGS = -ludev -version-info 4:0:0
5-
include_HEADERS = suinput.h
4+
libsuinput_la_LDFLAGS = -l:libudev.so.0 -version-info 5:0:1
5+
include_HEADERS = suinput.h libudev.h

libsuinput/src/libudev.h

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
/*
2+
* libudev - interface to udev device information
3+
*
4+
* Copyright (C) 2008-2009 Kay Sievers <kay.sievers@vrfy.org>
5+
*
6+
* This library is free software; you can redistribute it and/or
7+
* modify it under the terms of the GNU Lesser General Public
8+
* License as published by the Free Software Foundation; either
9+
* version 2.1 of the License, or (at your option) any later version.
10+
*/
11+
12+
#ifndef _LIBUDEV_H_
13+
#define _LIBUDEV_H_
14+
15+
#include <stdarg.h>
16+
#include <sys/types.h>
17+
#include <sys/stat.h>
18+
19+
#ifdef __cplusplus
20+
extern "C" {
21+
#endif
22+
23+
/*
24+
* udev - library context
25+
*
26+
* reads the udev config and system environment
27+
* allows custom logging
28+
*/
29+
struct udev;
30+
struct udev *udev_ref(struct udev *udev);
31+
void udev_unref(struct udev *udev);
32+
struct udev *udev_new(void);
33+
void udev_set_log_fn(struct udev *udev,
34+
void (*log_fn)(struct udev *udev,
35+
int priority, const char *file, int line, const char *fn,
36+
const char *format, va_list args));
37+
int udev_get_log_priority(struct udev *udev);
38+
void udev_set_log_priority(struct udev *udev, int priority);
39+
const char *udev_get_sys_path(struct udev *udev);
40+
const char *udev_get_dev_path(struct udev *udev);
41+
void *udev_get_userdata(struct udev *udev);
42+
void udev_set_userdata(struct udev *udev, void *userdata);
43+
44+
/*
45+
* udev_list
46+
*
47+
* access to libudev generated lists
48+
*/
49+
struct udev_list_entry;
50+
struct udev_list_entry *udev_list_entry_get_next(struct udev_list_entry *list_entry);
51+
struct udev_list_entry *udev_list_entry_get_by_name(struct udev_list_entry *list_entry, const char *name);
52+
const char *udev_list_entry_get_name(struct udev_list_entry *list_entry);
53+
const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
54+
/**
55+
* udev_list_entry_foreach:
56+
* @list_entry: entry to store the current position
57+
* @first_entry: first entry to start with
58+
*
59+
* Helper to iterate over all entries of a list.
60+
*/
61+
#define udev_list_entry_foreach(list_entry, first_entry) \
62+
for (list_entry = first_entry; \
63+
list_entry != NULL; \
64+
list_entry = udev_list_entry_get_next(list_entry))
65+
66+
/*
67+
* udev_device
68+
*
69+
* access to sysfs/kernel devices
70+
*/
71+
struct udev_device;
72+
struct udev_device *udev_device_ref(struct udev_device *udev_device);
73+
void udev_device_unref(struct udev_device *udev_device);
74+
struct udev *udev_device_get_udev(struct udev_device *udev_device);
75+
struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
76+
struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
77+
struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname);
78+
/* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
79+
struct udev_device *udev_device_get_parent(struct udev_device *udev_device);
80+
struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device,
81+
const char *subsystem, const char *devtype);
82+
/* retrieve device properties */
83+
const char *udev_device_get_devpath(struct udev_device *udev_device);
84+
const char *udev_device_get_subsystem(struct udev_device *udev_device);
85+
const char *udev_device_get_devtype(struct udev_device *udev_device);
86+
const char *udev_device_get_syspath(struct udev_device *udev_device);
87+
const char *udev_device_get_sysname(struct udev_device *udev_device);
88+
const char *udev_device_get_sysnum(struct udev_device *udev_device);
89+
const char *udev_device_get_devnode(struct udev_device *udev_device);
90+
struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device);
91+
struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device);
92+
const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
93+
const char *udev_device_get_driver(struct udev_device *udev_device);
94+
dev_t udev_device_get_devnum(struct udev_device *udev_device);
95+
const char *udev_device_get_action(struct udev_device *udev_device);
96+
unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device);
97+
const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
98+
99+
/*
100+
* udev_monitor
101+
*
102+
* access to kernel uevents and udev events
103+
*/
104+
struct udev_monitor;
105+
struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
106+
void udev_monitor_unref(struct udev_monitor *udev_monitor);
107+
struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor);
108+
/* kernel and udev generated events over netlink */
109+
struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
110+
/* custom socket (use netlink and filters instead) */
111+
struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path);
112+
/* bind socket */
113+
int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
114+
int udev_monitor_get_fd(struct udev_monitor *udev_monitor);
115+
struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor);
116+
/* in-kernel socket filters to select messages that get delivered to a listener */
117+
int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor,
118+
const char *subsystem, const char *devtype);
119+
int udev_monitor_filter_update(struct udev_monitor *udev_monitor);
120+
int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
121+
122+
/*
123+
* udev_enumerate
124+
*
125+
* search sysfs for specific devices and provide a sorted list
126+
*/
127+
struct udev_enumerate;
128+
struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate);
129+
void udev_enumerate_unref(struct udev_enumerate *udev_enumerate);
130+
struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate);
131+
struct udev_enumerate *udev_enumerate_new(struct udev *udev);
132+
/* device properties filter */
133+
int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
134+
int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
135+
int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
136+
int udev_enumerate_add_nomatch_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
137+
int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
138+
int udev_enumerate_add_match_sysname(struct udev_enumerate *udev_enumerate, const char *sysname);
139+
int udev_enumerate_add_syspath(struct udev_enumerate *udev_enumerate, const char *syspath);
140+
/* run enumeration with active filters */
141+
int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate);
142+
int udev_enumerate_scan_subsystems(struct udev_enumerate *udev_enumerate);
143+
/* return device list */
144+
struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate);
145+
146+
/*
147+
* udev_queue
148+
*
149+
* access to the currently running udev events
150+
*/
151+
struct udev_queue;
152+
struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue);
153+
void udev_queue_unref(struct udev_queue *udev_queue);
154+
struct udev *udev_queue_get_udev(struct udev_queue *udev_queue);
155+
struct udev_queue *udev_queue_new(struct udev *udev);
156+
unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue);
157+
unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue);
158+
int udev_queue_get_udev_is_active(struct udev_queue *udev_queue);
159+
int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue);
160+
int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum);
161+
int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
162+
unsigned long long int start, unsigned long long int end);
163+
struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue);
164+
struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue);
165+
166+
#ifdef __cplusplus
167+
} /* extern "C" */
168+
#endif
169+
170+
#endif

libsuinput/src/suinput.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
#include <linux/limits.h>
2626

27-
#include <libudev.h>
27+
#include "libudev.h"
2828

2929
#include "suinput.h"
3030

0 commit comments

Comments
 (0)