summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2012-05-15 22:57:58 +0200
committerKay Sievers <kay@vrfy.org>2012-05-15 23:06:26 +0200
commit20bbd54f603994a3cc211d2795de16550882ed8d (patch)
treede65aaa655d6c3d50d52c7c5db8607fc83a550a8
parent6e92b23f0d6dd398848376bbaf47e54a90ed3389 (diff)
udev: libudev - bump soname, remove deprecated functions, introduce symbol versions
-rw-r--r--Makefile.am12
-rw-r--r--TODO8
-rw-r--r--docs/libudev/libudev-sections.txt3
-rw-r--r--src/libudev/libudev-device.c7
-rw-r--r--src/libudev/libudev-enumerate.c7
-rw-r--r--src/libudev/libudev-monitor.c24
-rw-r--r--src/libudev/libudev-queue.c15
-rw-r--r--src/libudev/libudev.c52
-rw-r--r--src/libudev/libudev.h13
-rw-r--r--src/libudev/libudev.sym97
10 files changed, 129 insertions, 109 deletions
diff --git a/Makefile.am b/Makefile.am
index a4e3433c3..7c1b43109 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,9 +23,9 @@ AM_MAKEFLAGS = --no-print-directory
23 23
24SUBDIRS = . po 24SUBDIRS = . po
25 25
26LIBUDEV_CURRENT=13 26LIBUDEV_CURRENT=1
27LIBUDEV_REVISION=3 27LIBUDEV_REVISION=0
28LIBUDEV_AGE=13 28LIBUDEV_AGE=0
29 29
30LIBGUDEV_CURRENT=1 30LIBGUDEV_CURRENT=1
31LIBGUDEV_REVISION=1 31LIBGUDEV_REVISION=1
@@ -1330,7 +1330,8 @@ libudev_la_CFLAGS = \
1330 1330
1331libudev_la_LDFLAGS = \ 1331libudev_la_LDFLAGS = \
1332 $(AM_LDFLAGS) \ 1332 $(AM_LDFLAGS) \
1333 -version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) 1333 -version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) \
1334 -Wl,--version-script=$(top_srcdir)/src/libudev/libudev.sym
1334 1335
1335libudev_la_LIBADD = \ 1336libudev_la_LIBADD = \
1336 libsystemd-shared.la 1337 libsystemd-shared.la
@@ -1339,7 +1340,8 @@ pkgconfiglib_DATA += \
1339 src/libudev/libudev.pc 1340 src/libudev/libudev.pc
1340 1341
1341EXTRA_DIST += \ 1342EXTRA_DIST += \
1342 src/libudev/libudev.pc.in 1343 src/libudev/libudev.pc.in \
1344 src/libudev/libudev.sym
1343 1345
1344CLEANFILES += \ 1346CLEANFILES += \
1345 src/libudev/libudev.pc 1347 src/libudev/libudev.pc
diff --git a/TODO b/TODO
index a3b416555..5d18a64b1 100644
--- a/TODO
+++ b/TODO
@@ -87,14 +87,6 @@ Features:
87 87
88* udev: add trigger --subsystem-match=usb/usb_device device 88* udev: add trigger --subsystem-match=usb/usb_device device
89 89
90* udev: libudev.so.1
91 - use symbol versioning
92 - always return object with *_unref()
93 - remove deprecated symbols
94 - udev_monitor_from_socket()
95 - udev_queue_get_failed_list_entry()
96 - udev_get_{dev,sys,run}_path()
97
98* allow configuration of console width/height in vconsole.conf 90* allow configuration of console width/height in vconsole.conf
99 91
100* fstab should take priority over units in /usr 92* fstab should take priority over units in /usr
diff --git a/docs/libudev/libudev-sections.txt b/docs/libudev/libudev-sections.txt
index 31f356f29..9f41ca6ac 100644
--- a/docs/libudev/libudev-sections.txt
+++ b/docs/libudev/libudev-sections.txt
@@ -10,9 +10,6 @@ udev_get_log_priority
10udev_set_log_priority 10udev_set_log_priority
11udev_get_userdata 11udev_get_userdata
12udev_set_userdata 12udev_set_userdata
13udev_get_sys_path
14udev_get_dev_path
15udev_get_run_path
16</SECTION> 13</SECTION>
17 14
18<SECTION> 15<SECTION>
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
index 9ef4610a6..f0aab5d46 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/libudev-device.c
@@ -1023,13 +1023,13 @@ _public_ struct udev_device *udev_device_ref(struct udev_device *udev_device)
1023 * the resources of the device will be released. 1023 * the resources of the device will be released.
1024 * 1024 *
1025 **/ 1025 **/
1026_public_ void udev_device_unref(struct udev_device *udev_device) 1026_public_ struct udev_device *udev_device_unref(struct udev_device *udev_device)
1027{ 1027{
1028 if (udev_device == NULL) 1028 if (udev_device == NULL)
1029 return; 1029 return NULL;
1030 udev_device->refcount--; 1030 udev_device->refcount--;
1031 if (udev_device->refcount > 0) 1031 if (udev_device->refcount > 0)
1032 return; 1032 return udev_device;
1033 if (udev_device->parent_device != NULL) 1033 if (udev_device->parent_device != NULL)
1034 udev_device_unref(udev_device->parent_device); 1034 udev_device_unref(udev_device->parent_device);
1035 free(udev_device->syspath); 1035 free(udev_device->syspath);
@@ -1049,6 +1049,7 @@ _public_ void udev_device_unref(struct udev_device *udev_device)
1049 free(udev_device->envp); 1049 free(udev_device->envp);
1050 free(udev_device->monitor_buf); 1050 free(udev_device->monitor_buf);
1051 free(udev_device); 1051 free(udev_device);
1052 return NULL;
1052} 1053}
1053 1054
1054/** 1055/**
diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c
index 9e6f4677e..671bfd7bc 100644
--- a/src/libudev/libudev-enumerate.c
+++ b/src/libudev/libudev-enumerate.c
@@ -112,15 +112,15 @@ _public_ struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_e
112 * Drop a reference of an enumeration context. If the refcount reaches zero, 112 * Drop a reference of an enumeration context. If the refcount reaches zero,
113 * all resources of the enumeration context will be released. 113 * all resources of the enumeration context will be released.
114 **/ 114 **/
115_public_ void udev_enumerate_unref(struct udev_enumerate *udev_enumerate) 115_public_ struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate)
116{ 116{
117 unsigned int i; 117 unsigned int i;
118 118
119 if (udev_enumerate == NULL) 119 if (udev_enumerate == NULL)
120 return; 120 return NULL;
121 udev_enumerate->refcount--; 121 udev_enumerate->refcount--;
122 if (udev_enumerate->refcount > 0) 122 if (udev_enumerate->refcount > 0)
123 return; 123 return udev_enumerate;
124 udev_list_cleanup(&udev_enumerate->sysattr_match_list); 124 udev_list_cleanup(&udev_enumerate->sysattr_match_list);
125 udev_list_cleanup(&udev_enumerate->sysattr_nomatch_list); 125 udev_list_cleanup(&udev_enumerate->sysattr_nomatch_list);
126 udev_list_cleanup(&udev_enumerate->subsystem_match_list); 126 udev_list_cleanup(&udev_enumerate->subsystem_match_list);
@@ -134,6 +134,7 @@ _public_ void udev_enumerate_unref(struct udev_enumerate *udev_enumerate)
134 free(udev_enumerate->devices[i].syspath); 134 free(udev_enumerate->devices[i].syspath);
135 free(udev_enumerate->devices); 135 free(udev_enumerate->devices);
136 free(udev_enumerate); 136 free(udev_enumerate);
137 return NULL;
137} 138}
138 139
139/** 140/**
diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
index 5f448e6d4..96506fe58 100644
--- a/src/libudev/libudev-monitor.c
+++ b/src/libudev/libudev-monitor.c
@@ -97,23 +97,6 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev)
97 return udev_monitor; 97 return udev_monitor;
98} 98}
99 99
100/**
101 * udev_monitor_new_from_socket:
102 * @udev: udev library context
103 * @socket_path: unix socket path
104 *
105 * This function is removed from libudev and will not do anything.
106 *
107 * Returns: #NULL
108 **/
109struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path);
110_public_ struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path)
111{
112 udev_err(udev, "udev_monitor_new_from_socket() does not do anything; please migrate to netlink\n");
113 errno = ENOSYS;
114 return NULL;
115}
116
117struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) 100struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd)
118{ 101{
119 struct udev_monitor *udev_monitor; 102 struct udev_monitor *udev_monitor;
@@ -418,18 +401,19 @@ _public_ struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor
418 * will be released. 401 * will be released.
419 * 402 *
420 **/ 403 **/
421_public_ void udev_monitor_unref(struct udev_monitor *udev_monitor) 404_public_ struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor)
422{ 405{
423 if (udev_monitor == NULL) 406 if (udev_monitor == NULL)
424 return; 407 return NULL;
425 udev_monitor->refcount--; 408 udev_monitor->refcount--;
426 if (udev_monitor->refcount > 0) 409 if (udev_monitor->refcount > 0)
427 return; 410 return udev_monitor;
428 if (udev_monitor->sock >= 0) 411 if (udev_monitor->sock >= 0)
429 close(udev_monitor->sock); 412 close(udev_monitor->sock);
430 udev_list_cleanup(&udev_monitor->filter_subsystem_list); 413 udev_list_cleanup(&udev_monitor->filter_subsystem_list);
431 udev_list_cleanup(&udev_monitor->filter_tag_list); 414 udev_list_cleanup(&udev_monitor->filter_tag_list);
432 free(udev_monitor); 415 free(udev_monitor);
416 return NULL;
433} 417}
434 418
435/** 419/**
diff --git a/src/libudev/libudev-queue.c b/src/libudev/libudev-queue.c
index 81f40db20..15a7f558b 100644
--- a/src/libudev/libudev-queue.c
+++ b/src/libudev/libudev-queue.c
@@ -93,15 +93,16 @@ _public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue)
93 * Drop a reference of a udev queue context. If the refcount reaches zero, 93 * Drop a reference of a udev queue context. If the refcount reaches zero,
94 * the resources of the queue context will be released. 94 * the resources of the queue context will be released.
95 **/ 95 **/
96_public_ void udev_queue_unref(struct udev_queue *udev_queue) 96_public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue)
97{ 97{
98 if (udev_queue == NULL) 98 if (udev_queue == NULL)
99 return; 99 return NULL;
100 udev_queue->refcount--; 100 udev_queue->refcount--;
101 if (udev_queue->refcount > 0) 101 if (udev_queue->refcount > 0)
102 return; 102 return udev_queue;
103 udev_list_cleanup(&udev_queue->queue_list); 103 udev_list_cleanup(&udev_queue->queue_list);
104 free(udev_queue); 104 free(udev_queue);
105 return NULL;
105} 106}
106 107
107/** 108/**
@@ -469,11 +470,3 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu
469 470
470 return udev_list_get_entry(&udev_queue->queue_list); 471 return udev_list_get_entry(&udev_queue->queue_list);
471} 472}
472
473struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue);
474_public_ struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue)
475{
476 udev_err(udev_queue->udev, "udev_queue_get_failed_list_entry() does not return anything; failed events are not recorded\n");
477 errno = ENOSYS;
478 return NULL;
479}
diff --git a/src/libudev/libudev.c b/src/libudev/libudev.c
index a0ec39d02..5b754a22a 100644
--- a/src/libudev/libudev.c
+++ b/src/libudev/libudev.c
@@ -222,15 +222,16 @@ _public_ struct udev *udev_ref(struct udev *udev)
222 * reaches zero, the resources of the context will be released. 222 * reaches zero, the resources of the context will be released.
223 * 223 *
224 **/ 224 **/
225_public_ void udev_unref(struct udev *udev) 225_public_ struct udev *udev_unref(struct udev *udev)
226{ 226{
227 if (udev == NULL) 227 if (udev == NULL)
228 return; 228 return NULL;
229 udev->refcount--; 229 udev->refcount--;
230 if (udev->refcount > 0) 230 if (udev->refcount > 0)
231 return; 231 return udev;
232 udev_list_cleanup(&udev->properties_list); 232 udev_list_cleanup(&udev->properties_list);
233 free(udev); 233 free(udev);
234 return NULL;
234} 235}
235 236
236/** 237/**
@@ -283,51 +284,6 @@ _public_ void udev_set_log_priority(struct udev *udev, int priority)
283 udev_add_property(udev, "UDEV_LOG", num); 284 udev_add_property(udev, "UDEV_LOG", num);
284} 285}
285 286
286/**
287 * udev_get_sys_path:
288 * @udev: udev library context
289 *
290 * Returns always "/sys"; deprecated, will be removed in a future version.
291 *
292 * Returns: the sys mount point
293 **/
294_public_ const char *udev_get_sys_path(struct udev *udev)
295{
296 if (udev == NULL)
297 return NULL;
298 return "/sys";
299}
300
301/**
302 * udev_get_dev_path:
303 * @udev: udev library context
304 *
305 * Returns always "/dev"; deprecated, will be removed in a future version.
306 *
307 * Returns: the device directory path
308 **/
309_public_ const char *udev_get_dev_path(struct udev *udev)
310{
311 if (udev == NULL)
312 return NULL;
313 return "/dev";
314}
315
316/**
317 * udev_get_run_path:
318 * @udev: udev library context
319 *
320 * Returns always "/run/udev"; deprecated, will be removed in a future version.
321 *
322 * Returns: the runtime directory path
323 **/
324_public_ const char *udev_get_run_path(struct udev *udev)
325{
326 if (udev == NULL)
327 return NULL;
328 return "/run/udev";
329}
330
331struct udev_list_entry *udev_add_property(struct udev *udev, const char *key, const char *value) 287struct udev_list_entry *udev_add_property(struct udev *udev, const char *key, const char *value)
332{ 288{
333 if (value == NULL) { 289 if (value == NULL) {
diff --git a/src/libudev/libudev.h b/src/libudev/libudev.h
index 79842e69d..86439849b 100644
--- a/src/libudev/libudev.h
+++ b/src/libudev/libudev.h
@@ -28,7 +28,7 @@ extern "C" {
28 */ 28 */
29struct udev; 29struct udev;
30struct udev *udev_ref(struct udev *udev); 30struct udev *udev_ref(struct udev *udev);
31void udev_unref(struct udev *udev); 31struct udev *udev_unref(struct udev *udev);
32struct udev *udev_new(void); 32struct udev *udev_new(void);
33void udev_set_log_fn(struct udev *udev, 33void udev_set_log_fn(struct udev *udev,
34 void (*log_fn)(struct udev *udev, 34 void (*log_fn)(struct udev *udev,
@@ -36,9 +36,6 @@ void udev_set_log_fn(struct udev *udev,
36 const char *format, va_list args)); 36 const char *format, va_list args));
37int udev_get_log_priority(struct udev *udev); 37int udev_get_log_priority(struct udev *udev);
38void udev_set_log_priority(struct udev *udev, int priority); 38void udev_set_log_priority(struct udev *udev, int priority);
39const char *udev_get_sys_path(struct udev *udev);
40const char *udev_get_dev_path(struct udev *udev);
41const char *udev_get_run_path(struct udev *udev);
42void *udev_get_userdata(struct udev *udev); 39void *udev_get_userdata(struct udev *udev);
43void udev_set_userdata(struct udev *udev, void *userdata); 40void udev_set_userdata(struct udev *udev, void *userdata);
44 41
@@ -71,7 +68,7 @@ const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
71 */ 68 */
72struct udev_device; 69struct udev_device;
73struct udev_device *udev_device_ref(struct udev_device *udev_device); 70struct udev_device *udev_device_ref(struct udev_device *udev_device);
74void udev_device_unref(struct udev_device *udev_device); 71struct udev_device *udev_device_unref(struct udev_device *udev_device);
75struct udev *udev_device_get_udev(struct udev_device *udev_device); 72struct udev *udev_device_get_udev(struct udev_device *udev_device);
76struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath); 73struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
77struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum); 74struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
@@ -110,7 +107,7 @@ int udev_device_has_tag(struct udev_device *udev_device, const char *tag);
110 */ 107 */
111struct udev_monitor; 108struct udev_monitor;
112struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor); 109struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
113void udev_monitor_unref(struct udev_monitor *udev_monitor); 110struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor);
114struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor); 111struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor);
115/* kernel and udev generated events over netlink */ 112/* kernel and udev generated events over netlink */
116struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name); 113struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
@@ -133,7 +130,7 @@ int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
133 */ 130 */
134struct udev_enumerate; 131struct udev_enumerate;
135struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate); 132struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate);
136void udev_enumerate_unref(struct udev_enumerate *udev_enumerate); 133struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate);
137struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate); 134struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate);
138struct udev_enumerate *udev_enumerate_new(struct udev *udev); 135struct udev_enumerate *udev_enumerate_new(struct udev *udev);
139/* device properties filter */ 136/* device properties filter */
@@ -160,7 +157,7 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude
160 */ 157 */
161struct udev_queue; 158struct udev_queue;
162struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue); 159struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue);
163void udev_queue_unref(struct udev_queue *udev_queue); 160struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue);
164struct udev *udev_queue_get_udev(struct udev_queue *udev_queue); 161struct udev *udev_queue_get_udev(struct udev_queue *udev_queue);
165struct udev_queue *udev_queue_new(struct udev *udev); 162struct udev_queue *udev_queue_new(struct udev *udev);
166unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue); 163unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue);
diff --git a/src/libudev/libudev.sym b/src/libudev/libudev.sym
new file mode 100644
index 000000000..47683ecda
--- /dev/null
+++ b/src/libudev/libudev.sym
@@ -0,0 +1,97 @@
1/***
2 This file is part of systemd.
3
4 systemd is free software; you can redistribute it and/or modify it
5 under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation; either version 2.1 of the License, or
7 (at your option) any later version.
8***/
9
10LIBUDEV_183 {
11global:
12 udev_device_get_action;
13 udev_device_get_devlinks_list_entry;
14 udev_device_get_devnode;
15 udev_device_get_devnum;
16 udev_device_get_devpath;
17 udev_device_get_devtype;
18 udev_device_get_driver;
19 udev_device_get_is_initialized;
20 udev_device_get_parent;
21 udev_device_get_parent_with_subsystem_devtype;
22 udev_device_get_properties_list_entry;
23 udev_device_get_property_value;
24 udev_device_get_seqnum;
25 udev_device_get_subsystem;
26 udev_device_get_sysattr_list_entry;
27 udev_device_get_sysattr_value;
28 udev_device_get_sysname;
29 udev_device_get_sysnum;
30 udev_device_get_syspath;
31 udev_device_get_tags_list_entry;
32 udev_device_get_udev;
33 udev_device_get_usec_since_initialized;
34 udev_device_has_tag;
35 udev_device_new_from_devnum;
36 udev_device_new_from_environment;
37 udev_device_new_from_subsystem_sysname;
38 udev_device_new_from_syspath;
39 udev_device_ref;
40 udev_device_unref;
41 udev_enumerate_add_match_is_initialized;
42 udev_enumerate_add_match_parent;
43 udev_enumerate_add_match_property;
44 udev_enumerate_add_match_subsystem;
45 udev_enumerate_add_match_sysattr;
46 udev_enumerate_add_match_sysname;
47 udev_enumerate_add_match_tag;
48 udev_enumerate_add_nomatch_subsystem;
49 udev_enumerate_add_nomatch_sysattr;
50 udev_enumerate_add_syspath;
51 udev_enumerate_get_list_entry;
52 udev_enumerate_get_udev;
53 udev_enumerate_new;
54 udev_enumerate_ref;
55 udev_enumerate_scan_devices;
56 udev_enumerate_scan_subsystems;
57 udev_enumerate_unref;
58 udev_get_log_priority;
59 udev_get_userdata;
60 udev_list_entry_get_by_name;
61 udev_list_entry_get_name;
62 udev_list_entry_get_next;
63 udev_list_entry_get_value;
64 udev_monitor_enable_receiving;
65 udev_monitor_filter_add_match_subsystem_devtype;
66 udev_monitor_filter_add_match_tag;
67 udev_monitor_filter_remove;
68 udev_monitor_filter_update;
69 udev_monitor_get_fd;
70 udev_monitor_get_udev;
71 udev_monitor_new_from_netlink;
72 udev_monitor_new_from_socket;
73 udev_monitor_receive_device;
74 udev_monitor_ref;
75 udev_monitor_set_receive_buffer_size;
76 udev_monitor_unref;
77 udev_new;
78 udev_queue_get_kernel_seqnum;
79 udev_queue_get_queue_is_empty;
80 udev_queue_get_queued_list_entry;
81 udev_queue_get_seqnum_is_finished;
82 udev_queue_get_seqnum_sequence_is_finished;
83 udev_queue_get_udev;
84 udev_queue_get_udev_is_active;
85 udev_queue_get_udev_seqnum;
86 udev_queue_new;
87 udev_queue_ref;
88 udev_queue_unref;
89 udev_ref;
90 udev_set_log_fn;
91 udev_set_log_priority;
92 udev_set_userdata;
93 udev_unref;
94 udev_util_encode_string;
95local:
96 *;
97};