diff options
author | Kay Sievers <kay@vrfy.org> | 2012-05-15 22:57:58 +0200 |
---|---|---|
committer | Kay Sievers <kay@vrfy.org> | 2012-05-15 23:06:26 +0200 |
commit | 20bbd54f603994a3cc211d2795de16550882ed8d (patch) | |
tree | de65aaa655d6c3d50d52c7c5db8607fc83a550a8 | |
parent | 6e92b23f0d6dd398848376bbaf47e54a90ed3389 (diff) |
udev: libudev - bump soname, remove deprecated functions, introduce symbol versions
-rw-r--r-- | Makefile.am | 12 | ||||
-rw-r--r-- | TODO | 8 | ||||
-rw-r--r-- | docs/libudev/libudev-sections.txt | 3 | ||||
-rw-r--r-- | src/libudev/libudev-device.c | 7 | ||||
-rw-r--r-- | src/libudev/libudev-enumerate.c | 7 | ||||
-rw-r--r-- | src/libudev/libudev-monitor.c | 24 | ||||
-rw-r--r-- | src/libudev/libudev-queue.c | 15 | ||||
-rw-r--r-- | src/libudev/libudev.c | 52 | ||||
-rw-r--r-- | src/libudev/libudev.h | 13 | ||||
-rw-r--r-- | src/libudev/libudev.sym | 97 |
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 @@ -20,15 +20,15 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} AM_MAKEFLAGS = --no-print-directory SUBDIRS = . po -LIBUDEV_CURRENT=13 -LIBUDEV_REVISION=3 -LIBUDEV_AGE=13 +LIBUDEV_CURRENT=1 +LIBUDEV_REVISION=0 +LIBUDEV_AGE=0 LIBGUDEV_CURRENT=1 LIBGUDEV_REVISION=1 LIBGUDEV_AGE=1 LIBSYSTEMD_LOGIN_CURRENT=2 @@ -1327,22 +1327,24 @@ libudev_la_SOURCES =\ libudev_la_CFLAGS = \ $(AM_CFLAGS) \ -fvisibility=hidden libudev_la_LDFLAGS = \ $(AM_LDFLAGS) \ - -version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) + -version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) \ + -Wl,--version-script=$(top_srcdir)/src/libudev/libudev.sym libudev_la_LIBADD = \ libsystemd-shared.la pkgconfiglib_DATA += \ src/libudev/libudev.pc EXTRA_DIST += \ - src/libudev/libudev.pc.in + src/libudev/libudev.pc.in \ + src/libudev/libudev.sym CLEANFILES += \ src/libudev/libudev.pc # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed libudev-install-move-hook: @@ -84,20 +84,12 @@ Features: * udev: find a way to tell udev to not cancel firmware requests when running in initramfs * udev: scsi_id -> sg3_utils -> kill scsi_id * udev: add trigger --subsystem-match=usb/usb_device device -* udev: libudev.so.1 - - use symbol versioning - - always return object with *_unref() - - remove deprecated symbols - - udev_monitor_from_socket() - - udev_queue_get_failed_list_entry() - - udev_get_{dev,sys,run}_path() - * allow configuration of console width/height in vconsole.conf * fstab should take priority over units in /usr * cleanup syslog 'priority' vs. 'level' wording 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 @@ -7,15 +7,12 @@ udev_unref udev_new udev_set_log_fn udev_get_log_priority udev_set_log_priority udev_get_userdata udev_set_userdata -udev_get_sys_path -udev_get_dev_path -udev_get_run_path </SECTION> <SECTION> <FILE>libudev-list</FILE> <TITLE>udev_list</TITLE> udev_list_entry 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 @@ -1020,19 +1020,19 @@ _public_ struct udev_device *udev_device_ref(struct udev_device *udev_device) * @udev_device: udev device * * Drop a reference of a udev device. If the refcount reaches zero, * the resources of the device will be released. * **/ -_public_ void udev_device_unref(struct udev_device *udev_device) +_public_ struct udev_device *udev_device_unref(struct udev_device *udev_device) { if (udev_device == NULL) - return; + return NULL; udev_device->refcount--; if (udev_device->refcount > 0) - return; + return udev_device; if (udev_device->parent_device != NULL) udev_device_unref(udev_device->parent_device); free(udev_device->syspath); free(udev_device->sysname); free(udev_device->devnode); free(udev_device->subsystem); @@ -1046,12 +1046,13 @@ _public_ void udev_device_unref(struct udev_device *udev_device) free(udev_device->driver); free(udev_device->devpath_old); free(udev_device->id_filename); free(udev_device->envp); free(udev_device->monitor_buf); free(udev_device); + return NULL; } /** * udev_device_get_devpath: * @udev_device: udev device * 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 @@ -109,21 +109,21 @@ _public_ struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_e * udev_enumerate_unref: * @udev_enumerate: context * * Drop a reference of an enumeration context. If the refcount reaches zero, * all resources of the enumeration context will be released. **/ -_public_ void udev_enumerate_unref(struct udev_enumerate *udev_enumerate) +_public_ struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate) { unsigned int i; if (udev_enumerate == NULL) - return; + return NULL; udev_enumerate->refcount--; if (udev_enumerate->refcount > 0) - return; + return udev_enumerate; udev_list_cleanup(&udev_enumerate->sysattr_match_list); udev_list_cleanup(&udev_enumerate->sysattr_nomatch_list); udev_list_cleanup(&udev_enumerate->subsystem_match_list); udev_list_cleanup(&udev_enumerate->subsystem_nomatch_list); udev_list_cleanup(&udev_enumerate->sysname_match_list); udev_list_cleanup(&udev_enumerate->properties_match_list); @@ -131,12 +131,13 @@ _public_ void udev_enumerate_unref(struct udev_enumerate *udev_enumerate) udev_device_unref(udev_enumerate->parent_match); udev_list_cleanup(&udev_enumerate->devices_list); for (i = 0; i < udev_enumerate->devices_cur; i++) free(udev_enumerate->devices[i].syspath); free(udev_enumerate->devices); free(udev_enumerate); + return NULL; } /** * udev_enumerate_get_udev: * @udev_enumerate: context * 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 @@ -94,29 +94,12 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev) udev_monitor->udev = udev; udev_list_init(udev, &udev_monitor->filter_subsystem_list, false); udev_list_init(udev, &udev_monitor->filter_tag_list, true); return udev_monitor; } -/** - * udev_monitor_new_from_socket: - * @udev: udev library context - * @socket_path: unix socket path - * - * This function is removed from libudev and will not do anything. - * - * Returns: #NULL - **/ -struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path); -_public_ struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path) -{ - udev_err(udev, "udev_monitor_new_from_socket() does not do anything; please migrate to netlink\n"); - errno = ENOSYS; - return NULL; -} - struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) { struct udev_monitor *udev_monitor; unsigned int group; if (udev == NULL) @@ -415,24 +398,25 @@ _public_ struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor * * Drop a reference of a udev monitor. If the refcount reaches zero, * the bound socket will be closed, and the resources of the monitor * will be released. * **/ -_public_ void udev_monitor_unref(struct udev_monitor *udev_monitor) +_public_ struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor) { if (udev_monitor == NULL) - return; + return NULL; udev_monitor->refcount--; if (udev_monitor->refcount > 0) - return; + return udev_monitor; if (udev_monitor->sock >= 0) close(udev_monitor->sock); udev_list_cleanup(&udev_monitor->filter_subsystem_list); udev_list_cleanup(&udev_monitor->filter_tag_list); free(udev_monitor); + return NULL; } /** * udev_monitor_get_udev: * @udev_monitor: udev monitor * 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 @@ -90,21 +90,22 @@ _public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue) * udev_queue_unref: * @udev_queue: udev queue context * * Drop a reference of a udev queue context. If the refcount reaches zero, * the resources of the queue context will be released. **/ -_public_ void udev_queue_unref(struct udev_queue *udev_queue) +_public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) { if (udev_queue == NULL) - return; + return NULL; udev_queue->refcount--; if (udev_queue->refcount > 0) - return; + return udev_queue; udev_list_cleanup(&udev_queue->queue_list); free(udev_queue); + return NULL; } /** * udev_queue_get_udev: * @udev_queue: udev queue context * @@ -466,14 +467,6 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu } } fclose(queue_file); return udev_list_get_entry(&udev_queue->queue_list); } - -struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue); -_public_ struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue) -{ - udev_err(udev_queue->udev, "udev_queue_get_failed_list_entry() does not return anything; failed events are not recorded\n"); - errno = ENOSYS; - return NULL; -} 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 @@ -219,21 +219,22 @@ _public_ struct udev *udev_ref(struct udev *udev) * @udev: udev library context * * Drop a reference of the udev library context. If the refcount * reaches zero, the resources of the context will be released. * **/ -_public_ void udev_unref(struct udev *udev) +_public_ struct udev *udev_unref(struct udev *udev) { if (udev == NULL) - return; + return NULL; udev->refcount--; if (udev->refcount > 0) - return; + return udev; udev_list_cleanup(&udev->properties_list); free(udev); + return NULL; } /** * udev_set_log_fn: * @udev: udev library context * @log_fn: function to be called for logging messages @@ -280,57 +281,12 @@ _public_ void udev_set_log_priority(struct udev *udev, int priority) udev->log_priority = priority; snprintf(num, sizeof(num), "%u", udev->log_priority); udev_add_property(udev, "UDEV_LOG", num); } -/** - * udev_get_sys_path: - * @udev: udev library context - * - * Returns always "/sys"; deprecated, will be removed in a future version. - * - * Returns: the sys mount point - **/ -_public_ const char *udev_get_sys_path(struct udev *udev) -{ - if (udev == NULL) - return NULL; - return "/sys"; -} - -/** - * udev_get_dev_path: - * @udev: udev library context - * - * Returns always "/dev"; deprecated, will be removed in a future version. - * - * Returns: the device directory path - **/ -_public_ const char *udev_get_dev_path(struct udev *udev) -{ - if (udev == NULL) - return NULL; - return "/dev"; -} - -/** - * udev_get_run_path: - * @udev: udev library context - * - * Returns always "/run/udev"; deprecated, will be removed in a future version. - * - * Returns: the runtime directory path - **/ -_public_ const char *udev_get_run_path(struct udev *udev) -{ - if (udev == NULL) - return NULL; - return "/run/udev"; -} - struct udev_list_entry *udev_add_property(struct udev *udev, const char *key, const char *value) { if (value == NULL) { struct udev_list_entry *list_entry; list_entry = udev_get_properties_list_entry(udev); 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 @@ -25,23 +25,20 @@ extern "C" { * * reads the udev config and system environment * allows custom logging */ struct udev; struct udev *udev_ref(struct udev *udev); -void udev_unref(struct udev *udev); +struct udev *udev_unref(struct udev *udev); struct udev *udev_new(void); void udev_set_log_fn(struct udev *udev, void (*log_fn)(struct udev *udev, int priority, const char *file, int line, const char *fn, const char *format, va_list args)); int udev_get_log_priority(struct udev *udev); void udev_set_log_priority(struct udev *udev, int priority); -const char *udev_get_sys_path(struct udev *udev); -const char *udev_get_dev_path(struct udev *udev); -const char *udev_get_run_path(struct udev *udev); void *udev_get_userdata(struct udev *udev); void udev_set_userdata(struct udev *udev, void *userdata); /* * udev_list * @@ -68,13 +65,13 @@ const char *udev_list_entry_get_value(struct udev_list_entry *list_entry); * udev_device * * access to sysfs/kernel devices */ struct udev_device; struct udev_device *udev_device_ref(struct udev_device *udev_device); -void udev_device_unref(struct udev_device *udev_device); +struct udev_device *udev_device_unref(struct udev_device *udev_device); struct udev *udev_device_get_udev(struct udev_device *udev_device); struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath); struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum); struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname); struct udev_device *udev_device_new_from_environment(struct udev *udev); /* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */ @@ -107,13 +104,13 @@ int udev_device_has_tag(struct udev_device *udev_device, const char *tag); * udev_monitor * * access to kernel uevents and udev events */ struct udev_monitor; struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor); -void udev_monitor_unref(struct udev_monitor *udev_monitor); +struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor); struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor); /* kernel and udev generated events over netlink */ struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name); /* bind socket */ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor); int udev_monitor_set_receive_buffer_size(struct udev_monitor *udev_monitor, int size); @@ -130,13 +127,13 @@ int udev_monitor_filter_remove(struct udev_monitor *udev_monitor); * udev_enumerate * * search sysfs for specific devices and provide a sorted list */ struct udev_enumerate; struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate); -void udev_enumerate_unref(struct udev_enumerate *udev_enumerate); +struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate); struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate); struct udev_enumerate *udev_enumerate_new(struct udev *udev); /* device properties filter */ int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem); int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem); int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value); @@ -157,13 +154,13 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude * udev_queue * * access to the currently running udev events */ struct udev_queue; struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue); -void udev_queue_unref(struct udev_queue *udev_queue); +struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue); struct udev *udev_queue_get_udev(struct udev_queue *udev_queue); struct udev_queue *udev_queue_new(struct udev *udev); unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue); unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue); int udev_queue_get_udev_is_active(struct udev_queue *udev_queue); int udev_queue_get_queue_is_empty(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 @@ +/*** + This file is part of systemd. + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. +***/ + +LIBUDEV_183 { +global: + udev_device_get_action; + udev_device_get_devlinks_list_entry; + udev_device_get_devnode; + udev_device_get_devnum; + udev_device_get_devpath; + udev_device_get_devtype; + udev_device_get_driver; + udev_device_get_is_initialized; + udev_device_get_parent; + udev_device_get_parent_with_subsystem_devtype; + udev_device_get_properties_list_entry; + udev_device_get_property_value; + udev_device_get_seqnum; + udev_device_get_subsystem; + udev_device_get_sysattr_list_entry; + udev_device_get_sysattr_value; + udev_device_get_sysname; + udev_device_get_sysnum; + udev_device_get_syspath; + udev_device_get_tags_list_entry; + udev_device_get_udev; + udev_device_get_usec_since_initialized; + udev_device_has_tag; + udev_device_new_from_devnum; + udev_device_new_from_environment; + udev_device_new_from_subsystem_sysname; + udev_device_new_from_syspath; + udev_device_ref; + udev_device_unref; + udev_enumerate_add_match_is_initialized; + udev_enumerate_add_match_parent; + udev_enumerate_add_match_property; + udev_enumerate_add_match_subsystem; + udev_enumerate_add_match_sysattr; + udev_enumerate_add_match_sysname; + udev_enumerate_add_match_tag; + udev_enumerate_add_nomatch_subsystem; + udev_enumerate_add_nomatch_sysattr; + udev_enumerate_add_syspath; + udev_enumerate_get_list_entry; + udev_enumerate_get_udev; + udev_enumerate_new; + udev_enumerate_ref; + udev_enumerate_scan_devices; + udev_enumerate_scan_subsystems; + udev_enumerate_unref; + udev_get_log_priority; + udev_get_userdata; + udev_list_entry_get_by_name; + udev_list_entry_get_name; + udev_list_entry_get_next; + udev_list_entry_get_value; + udev_monitor_enable_receiving; + udev_monitor_filter_add_match_subsystem_devtype; + udev_monitor_filter_add_match_tag; + udev_monitor_filter_remove; + udev_monitor_filter_update; + udev_monitor_get_fd; + udev_monitor_get_udev; + udev_monitor_new_from_netlink; + udev_monitor_new_from_socket; + udev_monitor_receive_device; + udev_monitor_ref; + udev_monitor_set_receive_buffer_size; + udev_monitor_unref; + udev_new; + udev_queue_get_kernel_seqnum; + udev_queue_get_queue_is_empty; + udev_queue_get_queued_list_entry; + udev_queue_get_seqnum_is_finished; + udev_queue_get_seqnum_sequence_is_finished; + udev_queue_get_udev; + udev_queue_get_udev_is_active; + udev_queue_get_udev_seqnum; + udev_queue_new; + udev_queue_ref; + udev_queue_unref; + udev_ref; + udev_set_log_fn; + udev_set_log_priority; + udev_set_userdata; + udev_unref; + udev_util_encode_string; +local: + *; +}; |