summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile-man.am1088
-rw-r--r--Makefile.am41
-rw-r--r--NEWS81
-rw-r--r--TODO4
-rw-r--r--configure.ac8
-rw-r--r--hwdb/20-OUI.hwdb162
-rw-r--r--hwdb/20-pci-vendor-model.hwdb848
-rw-r--r--hwdb/20-usb-vendor-model.hwdb240
-rw-r--r--man/libudev.xml125
-rw-r--r--man/systemd-bus-proxyd.xml2
-rw-r--r--man/systemd-bus-proxyd@.service.xml2
-rw-r--r--man/systemd-cgtop.xml5
-rw-r--r--man/systemd.swap.xml2
-rw-r--r--man/udev_device_get_syspath.xml207
-rw-r--r--man/udev_device_has_tag.xml163
-rw-r--r--man/udev_device_new_from_syspath.xml186
-rw-r--r--man/udev_enumerate_add_match_subsystem.xml163
-rw-r--r--man/udev_enumerate_new.xml111
-rw-r--r--man/udev_enumerate_scan_devices.xml133
-rw-r--r--man/udev_list_entry.xml123
-rw-r--r--man/udev_monitor_filter_update.xml122
-rw-r--r--man/udev_monitor_new_from_netlink.xml113
-rw-r--r--man/udev_monitor_receive_device.xml137
-rw-r--r--man/udev_new.xml110
-rw-r--r--shell-completion/zsh/_loginctl64
-rw-r--r--src/basic/def.h8
-rw-r--r--src/basic/exit-status.c1
-rw-r--r--src/basic/util.c125
-rw-r--r--src/basic/util.h6
-rw-r--r--src/bus-proxyd/bus-proxyd.c4
-rw-r--r--src/bus-proxyd/proxy.c8
-rw-r--r--src/bus-proxyd/stdio-bridge.c4
-rw-r--r--src/core/execute.c9
-rw-r--r--src/core/kmod-setup.c2
-rw-r--r--src/core/load-fragment-gperf.gperf.m44
-rw-r--r--src/core/load-fragment.c226
-rw-r--r--src/core/manager.c2
-rw-r--r--src/core/mount-setup.c2
-rw-r--r--src/core/service.c4
-rw-r--r--src/journal/test-journal-interleaving.c9
-rw-r--r--src/journal/test-journal-stream.c9
-rw-r--r--src/libsystemd-network/sd-dhcp-client.c2
-rw-r--r--src/libsystemd/.gitignore1
-rw-r--r--src/libsystemd/libsystemd.sym (renamed from src/libsystemd/libsystemd.sym.m4)38
-rw-r--r--src/libsystemd/sd-bus/sd-bus.c21
-rw-r--r--src/libudev/libudev-device.c2
-rw-r--r--src/login/logind-button.c2
-rw-r--r--src/login/logind-core.c49
-rw-r--r--src/login/logind-dbus.c2
-rw-r--r--src/login/logind-user.c31
-rw-r--r--src/login/logind.h4
-rw-r--r--src/login/pam_systemd.c3
-rw-r--r--src/machine/machine-dbus.c4
-rw-r--r--src/nspawn/nspawn.c4
-rw-r--r--src/shared/acl-util.c13
-rw-r--r--src/shared/acl-util.h2
-rw-r--r--src/shared/bus-util.c23
-rw-r--r--src/shared/logs-show.c4
-rw-r--r--src/shared/watchdog.c9
-rw-r--r--src/test/test-barrier.c10
-rw-r--r--src/test/test-cgroup-mask.c10
-rw-r--r--src/test/test-unit-file.c72
-rw-r--r--src/test/test-util.c239
-rw-r--r--src/tmpfiles/tmpfiles.c7
-rw-r--r--src/udev/udevd.c6
-rw-r--r--sysusers.d/systemd.conf.m42
-rw-r--r--units/systemd-networkd.service.m4.in2
-rw-r--r--units/systemd-resolved.service.m4.in2
68 files changed, 4052 insertions, 1175 deletions
diff --git a/Makefile-man.am b/Makefile-man.am
index 85579e0c0a..7d31800345 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -18,6 +18,7 @@ MANPAGES += \
man/journald.conf.5 \
man/kernel-command-line.7 \
man/kernel-install.8 \
+ man/libudev.3 \
man/locale.conf.5 \
man/localtime.5 \
man/machine-id.5 \
@@ -28,6 +29,30 @@ MANPAGES += \
man/sd-id128.3 \
man/sd-journal.3 \
man/sd_booted.3 \
+ man/sd_bus_creds_get_pid.3 \
+ man/sd_bus_creds_new_from_pid.3 \
+ man/sd_bus_default.3 \
+ man/sd_bus_error.3 \
+ man/sd_bus_message_append.3 \
+ man/sd_bus_message_append_array.3 \
+ man/sd_bus_message_append_basic.3 \
+ man/sd_bus_message_append_string_memfd.3 \
+ man/sd_bus_message_append_strv.3 \
+ man/sd_bus_message_get_cookie.3 \
+ man/sd_bus_message_get_monotonic_usec.3 \
+ man/sd_bus_negotiate_fds.3 \
+ man/sd_bus_new.3 \
+ man/sd_bus_path_encode.3 \
+ man/sd_bus_request_name.3 \
+ man/sd_event_add_child.3 \
+ man/sd_event_add_defer.3 \
+ man/sd_event_add_signal.3 \
+ man/sd_event_add_time.3 \
+ man/sd_event_get_fd.3 \
+ man/sd_event_new.3 \
+ man/sd_event_run.3 \
+ man/sd_event_set_name.3 \
+ man/sd_event_wait.3 \
man/sd_id128_get_machine.3 \
man/sd_id128_randomize.3 \
man/sd_id128_to_string.3 \
@@ -57,6 +82,8 @@ MANPAGES += \
man/systemd-analyze.1 \
man/systemd-ask-password-console.service.8 \
man/systemd-ask-password.1 \
+ man/systemd-bus-proxyd.8 \
+ man/systemd-bus-proxyd@.service.8 \
man/systemd-cat.1 \
man/systemd-cgls.1 \
man/systemd-cgtop.1 \
@@ -122,6 +149,17 @@ MANPAGES += \
man/tmpfiles.d.5 \
man/udev.7 \
man/udev.conf.5 \
+ man/udev_device_get_syspath.3 \
+ man/udev_device_has_tag.3 \
+ man/udev_device_new_from_syspath.3 \
+ man/udev_enumerate_add_match_subsystem.3 \
+ man/udev_enumerate_new.3 \
+ man/udev_enumerate_scan_devices.3 \
+ man/udev_list_entry.3 \
+ man/udev_monitor_filter_update.3 \
+ man/udev_monitor_new_from_netlink.3 \
+ man/udev_monitor_receive_device.3 \
+ man/udev_new.3 \
man/udevadm.8
MANPAGES_ALIAS += \
man/SD_ALERT.3 \
@@ -153,6 +191,87 @@ MANPAGES_ALIAS += \
man/journald.conf.d.5 \
man/poweroff.8 \
man/reboot.8 \
+ man/sd_bus_creds_get_audit_login_uid.3 \
+ man/sd_bus_creds_get_audit_session_id.3 \
+ man/sd_bus_creds_get_cgroup.3 \
+ man/sd_bus_creds_get_cmdline.3 \
+ man/sd_bus_creds_get_comm.3 \
+ man/sd_bus_creds_get_description.3 \
+ man/sd_bus_creds_get_egid.3 \
+ man/sd_bus_creds_get_euid.3 \
+ man/sd_bus_creds_get_exe.3 \
+ man/sd_bus_creds_get_fsgid.3 \
+ man/sd_bus_creds_get_fsuid.3 \
+ man/sd_bus_creds_get_gid.3 \
+ man/sd_bus_creds_get_mask.3 \
+ man/sd_bus_creds_get_owner_uid.3 \
+ man/sd_bus_creds_get_ppid.3 \
+ man/sd_bus_creds_get_selinux_context.3 \
+ man/sd_bus_creds_get_session.3 \
+ man/sd_bus_creds_get_sgid.3 \
+ man/sd_bus_creds_get_slice.3 \
+ man/sd_bus_creds_get_suid.3 \
+ man/sd_bus_creds_get_supplementary_gids.3 \
+ man/sd_bus_creds_get_tid.3 \
+ man/sd_bus_creds_get_tid_comm.3 \
+ man/sd_bus_creds_get_tty.3 \
+ man/sd_bus_creds_get_uid.3 \
+ man/sd_bus_creds_get_unique_name.3 \
+ man/sd_bus_creds_get_unit.3 \
+ man/sd_bus_creds_get_user_unit.3 \
+ man/sd_bus_creds_get_well_known_names.3 \
+ man/sd_bus_creds_has_bounding_cap.3 \
+ man/sd_bus_creds_has_effective_cap.3 \
+ man/sd_bus_creds_has_inheritable_cap.3 \
+ man/sd_bus_creds_has_permitted_cap.3 \
+ man/sd_bus_creds_ref.3 \
+ man/sd_bus_creds_unref.3 \
+ man/sd_bus_default_system.3 \
+ man/sd_bus_default_user.3 \
+ man/sd_bus_error_copy.3 \
+ man/sd_bus_error_free.3 \
+ man/sd_bus_error_get_errno.3 \
+ man/sd_bus_error_has_name.3 \
+ man/sd_bus_error_is_set.3 \
+ man/sd_bus_error_set.3 \
+ man/sd_bus_error_set_const.3 \
+ man/sd_bus_error_set_errno.3 \
+ man/sd_bus_error_set_errnof.3 \
+ man/sd_bus_message_append_array_iovec.3 \
+ man/sd_bus_message_append_array_memfd.3 \
+ man/sd_bus_message_append_array_space.3 \
+ man/sd_bus_message_append_string_iovec.3 \
+ man/sd_bus_message_append_string_space.3 \
+ man/sd_bus_message_get_realtime_usec.3 \
+ man/sd_bus_message_get_reply_cookie.3 \
+ man/sd_bus_message_get_seqnum.3 \
+ man/sd_bus_negotiate_creds.3 \
+ man/sd_bus_negotiate_timestamps.3 \
+ man/sd_bus_open.3 \
+ man/sd_bus_open_system.3 \
+ man/sd_bus_open_system_machine.3 \
+ man/sd_bus_open_system_remote.3 \
+ man/sd_bus_open_user.3 \
+ man/sd_bus_path_decode.3 \
+ man/sd_bus_ref.3 \
+ man/sd_bus_release_name.3 \
+ man/sd_bus_unref.3 \
+ man/sd_event_add_exit.3 \
+ man/sd_event_add_post.3 \
+ man/sd_event_default.3 \
+ man/sd_event_dispatch.3 \
+ man/sd_event_get_name.3 \
+ man/sd_event_loop.3 \
+ man/sd_event_prepare.3 \
+ man/sd_event_ref.3 \
+ man/sd_event_source_get_child_pid.3 \
+ man/sd_event_source_get_signal.3 \
+ man/sd_event_source_get_time.3 \
+ man/sd_event_source_get_time_accuracy.3 \
+ man/sd_event_source_get_time_clock.3 \
+ man/sd_event_source_set_time.3 \
+ man/sd_event_source_set_time_accuracy.3 \
+ man/sd_event_unref.3 \
man/sd_id128_equal.3 \
man/sd_id128_from_string.3 \
man/sd_id128_get_boot.3 \
@@ -206,6 +325,7 @@ MANPAGES_ALIAS += \
man/systemd-ask-password-console.path.8 \
man/systemd-ask-password-wall.path.8 \
man/systemd-ask-password-wall.service.8 \
+ man/systemd-bus-proxyd.socket.8 \
man/systemd-fsck-root.service.8 \
man/systemd-fsck.8 \
man/systemd-hibernate-resume.8 \
@@ -233,6 +353,61 @@ MANPAGES_ALIAS += \
man/systemd-udevd.8 \
man/systemd-update-done.8 \
man/systemd-user.conf.5 \
+ man/udev_device_get_action.3 \
+ man/udev_device_get_devlinks_list_entry.3 \
+ man/udev_device_get_devnode.3 \
+ man/udev_device_get_devnum.3 \
+ man/udev_device_get_devpath.3 \
+ man/udev_device_get_devtype.3 \
+ man/udev_device_get_driver.3 \
+ man/udev_device_get_is_initialized.3 \
+ man/udev_device_get_parent.3 \
+ man/udev_device_get_parent_with_subsystem_devtype.3 \
+ man/udev_device_get_properties_list_entry.3 \
+ man/udev_device_get_property_value.3 \
+ man/udev_device_get_subsystem.3 \
+ man/udev_device_get_sysattr_list_entry.3 \
+ man/udev_device_get_sysattr_value.3 \
+ man/udev_device_get_sysname.3 \
+ man/udev_device_get_sysnum.3 \
+ man/udev_device_get_tags_list_entry.3 \
+ man/udev_device_get_udev.3 \
+ man/udev_device_new_from_device_id.3 \
+ man/udev_device_new_from_devnum.3 \
+ man/udev_device_new_from_environment.3 \
+ man/udev_device_new_from_subsystem_sysname.3 \
+ man/udev_device_ref.3 \
+ man/udev_device_set_sysattr_value.3 \
+ man/udev_device_unref.3 \
+ man/udev_enumerate_add_match_is_initialized.3 \
+ man/udev_enumerate_add_match_parent.3 \
+ man/udev_enumerate_add_match_property.3 \
+ man/udev_enumerate_add_match_sysattr.3 \
+ man/udev_enumerate_add_match_sysname.3 \
+ man/udev_enumerate_add_match_tag.3 \
+ man/udev_enumerate_add_nomatch_subsystem.3 \
+ man/udev_enumerate_add_nomatch_sysattr.3 \
+ man/udev_enumerate_add_syspath.3 \
+ man/udev_enumerate_get_list_entry.3 \
+ man/udev_enumerate_get_udev.3 \
+ man/udev_enumerate_ref.3 \
+ man/udev_enumerate_scan_subsystems.3 \
+ man/udev_enumerate_unref.3 \
+ man/udev_list_entry_get_by_name.3 \
+ man/udev_list_entry_get_name.3 \
+ man/udev_list_entry_get_next.3 \
+ man/udev_list_entry_get_value.3 \
+ man/udev_monitor_enable_receiving.3 \
+ man/udev_monitor_filter_add_match_subsystem_devtype.3 \
+ man/udev_monitor_filter_add_match_tag.3 \
+ man/udev_monitor_filter_remove.3 \
+ man/udev_monitor_get_fd.3 \
+ man/udev_monitor_get_udev.3 \
+ man/udev_monitor_ref.3 \
+ man/udev_monitor_set_receive_buffer_size.3 \
+ man/udev_monitor_unref.3 \
+ man/udev_ref.3 \
+ man/udev_unref.3 \
man/user.conf.d.5
man/SD_ALERT.3: man/sd-daemon.3
man/SD_CRIT.3: man/sd-daemon.3
@@ -263,6 +438,87 @@ man/init.1: man/systemd.1
man/journald.conf.d.5: man/journald.conf.5
man/poweroff.8: man/halt.8
man/reboot.8: man/halt.8
+man/sd_bus_creds_get_audit_login_uid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_audit_session_id.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_cgroup.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_cmdline.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_comm.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_description.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_egid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_euid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_exe.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_fsgid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_fsuid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_gid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_mask.3: man/sd_bus_creds_new_from_pid.3
+man/sd_bus_creds_get_owner_uid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_ppid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_selinux_context.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_session.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_sgid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_slice.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_suid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_supplementary_gids.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_tid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_tid_comm.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_tty.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_uid.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_unique_name.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_unit.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_user_unit.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_get_well_known_names.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_has_bounding_cap.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_has_effective_cap.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_has_inheritable_cap.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_has_permitted_cap.3: man/sd_bus_creds_get_pid.3
+man/sd_bus_creds_ref.3: man/sd_bus_creds_new_from_pid.3
+man/sd_bus_creds_unref.3: man/sd_bus_creds_new_from_pid.3
+man/sd_bus_default_system.3: man/sd_bus_default.3
+man/sd_bus_default_user.3: man/sd_bus_default.3
+man/sd_bus_error_copy.3: man/sd_bus_error.3
+man/sd_bus_error_free.3: man/sd_bus_error.3
+man/sd_bus_error_get_errno.3: man/sd_bus_error.3
+man/sd_bus_error_has_name.3: man/sd_bus_error.3
+man/sd_bus_error_is_set.3: man/sd_bus_error.3
+man/sd_bus_error_set.3: man/sd_bus_error.3
+man/sd_bus_error_set_const.3: man/sd_bus_error.3
+man/sd_bus_error_set_errno.3: man/sd_bus_error.3
+man/sd_bus_error_set_errnof.3: man/sd_bus_error.3
+man/sd_bus_message_append_array_iovec.3: man/sd_bus_message_append_array.3
+man/sd_bus_message_append_array_memfd.3: man/sd_bus_message_append_array.3
+man/sd_bus_message_append_array_space.3: man/sd_bus_message_append_array.3
+man/sd_bus_message_append_string_iovec.3: man/sd_bus_message_append_string_memfd.3
+man/sd_bus_message_append_string_space.3: man/sd_bus_message_append_string_memfd.3
+man/sd_bus_message_get_realtime_usec.3: man/sd_bus_message_get_monotonic_usec.3
+man/sd_bus_message_get_reply_cookie.3: man/sd_bus_message_get_cookie.3
+man/sd_bus_message_get_seqnum.3: man/sd_bus_message_get_monotonic_usec.3
+man/sd_bus_negotiate_creds.3: man/sd_bus_negotiate_fds.3
+man/sd_bus_negotiate_timestamps.3: man/sd_bus_negotiate_fds.3
+man/sd_bus_open.3: man/sd_bus_default.3
+man/sd_bus_open_system.3: man/sd_bus_default.3
+man/sd_bus_open_system_machine.3: man/sd_bus_default.3
+man/sd_bus_open_system_remote.3: man/sd_bus_default.3
+man/sd_bus_open_user.3: man/sd_bus_default.3
+man/sd_bus_path_decode.3: man/sd_bus_path_encode.3
+man/sd_bus_ref.3: man/sd_bus_new.3
+man/sd_bus_release_name.3: man/sd_bus_request_name.3
+man/sd_bus_unref.3: man/sd_bus_new.3
+man/sd_event_add_exit.3: man/sd_event_add_defer.3
+man/sd_event_add_post.3: man/sd_event_add_defer.3
+man/sd_event_default.3: man/sd_event_new.3
+man/sd_event_dispatch.3: man/sd_event_wait.3
+man/sd_event_get_name.3: man/sd_event_set_name.3
+man/sd_event_loop.3: man/sd_event_run.3
+man/sd_event_prepare.3: man/sd_event_wait.3
+man/sd_event_ref.3: man/sd_event_new.3
+man/sd_event_source_get_child_pid.3: man/sd_event_add_child.3
+man/sd_event_source_get_signal.3: man/sd_event_add_signal.3
+man/sd_event_source_get_time.3: man/sd_event_add_time.3
+man/sd_event_source_get_time_accuracy.3: man/sd_event_add_time.3
+man/sd_event_source_get_time_clock.3: man/sd_event_add_time.3
+man/sd_event_source_set_time.3: man/sd_event_add_time.3
+man/sd_event_source_set_time_accuracy.3: man/sd_event_add_time.3
+man/sd_event_unref.3: man/sd_event_new.3
man/sd_id128_equal.3: man/sd-id128.3
man/sd_id128_from_string.3: man/sd_id128_to_string.3
man/sd_id128_get_boot.3: man/sd_id128_get_machine.3
@@ -316,6 +572,7 @@ man/system.conf.d.5: man/systemd-system.conf.5
man/systemd-ask-password-console.path.8: man/systemd-ask-password-console.service.8
man/systemd-ask-password-wall.path.8: man/systemd-ask-password-console.service.8
man/systemd-ask-password-wall.service.8: man/systemd-ask-password-console.service.8
+man/systemd-bus-proxyd.socket.8: man/systemd-bus-proxyd@.service.8
man/systemd-fsck-root.service.8: man/systemd-fsck@.service.8
man/systemd-fsck.8: man/systemd-fsck@.service.8
man/systemd-hibernate-resume.8: man/systemd-hibernate-resume@.service.8
@@ -343,6 +600,61 @@ man/systemd-udevd-kernel.socket.8: man/systemd-udevd.service.8
man/systemd-udevd.8: man/systemd-udevd.service.8
man/systemd-update-done.8: man/systemd-update-done.service.8
man/systemd-user.conf.5: man/systemd-system.conf.5
+man/udev_device_get_action.3: man/udev_device_get_syspath.3
+man/udev_device_get_devlinks_list_entry.3: man/udev_device_has_tag.3
+man/udev_device_get_devnode.3: man/udev_device_get_syspath.3
+man/udev_device_get_devnum.3: man/udev_device_get_syspath.3
+man/udev_device_get_devpath.3: man/udev_device_get_syspath.3
+man/udev_device_get_devtype.3: man/udev_device_get_syspath.3
+man/udev_device_get_driver.3: man/udev_device_get_syspath.3
+man/udev_device_get_is_initialized.3: man/udev_device_get_syspath.3
+man/udev_device_get_parent.3: man/udev_device_get_syspath.3
+man/udev_device_get_parent_with_subsystem_devtype.3: man/udev_device_get_syspath.3
+man/udev_device_get_properties_list_entry.3: man/udev_device_has_tag.3
+man/udev_device_get_property_value.3: man/udev_device_has_tag.3
+man/udev_device_get_subsystem.3: man/udev_device_get_syspath.3
+man/udev_device_get_sysattr_list_entry.3: man/udev_device_has_tag.3
+man/udev_device_get_sysattr_value.3: man/udev_device_has_tag.3
+man/udev_device_get_sysname.3: man/udev_device_get_syspath.3
+man/udev_device_get_sysnum.3: man/udev_device_get_syspath.3
+man/udev_device_get_tags_list_entry.3: man/udev_device_has_tag.3
+man/udev_device_get_udev.3: man/udev_device_get_syspath.3
+man/udev_device_new_from_device_id.3: man/udev_device_new_from_syspath.3
+man/udev_device_new_from_devnum.3: man/udev_device_new_from_syspath.3
+man/udev_device_new_from_environment.3: man/udev_device_new_from_syspath.3
+man/udev_device_new_from_subsystem_sysname.3: man/udev_device_new_from_syspath.3
+man/udev_device_ref.3: man/udev_device_new_from_syspath.3
+man/udev_device_set_sysattr_value.3: man/udev_device_has_tag.3
+man/udev_device_unref.3: man/udev_device_new_from_syspath.3
+man/udev_enumerate_add_match_is_initialized.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_match_parent.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_match_property.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_match_sysattr.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_match_sysname.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_match_tag.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_nomatch_subsystem.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_nomatch_sysattr.3: man/udev_enumerate_add_match_subsystem.3
+man/udev_enumerate_add_syspath.3: man/udev_enumerate_scan_devices.3
+man/udev_enumerate_get_list_entry.3: man/udev_enumerate_scan_devices.3
+man/udev_enumerate_get_udev.3: man/udev_enumerate_scan_devices.3
+man/udev_enumerate_ref.3: man/udev_enumerate_new.3
+man/udev_enumerate_scan_subsystems.3: man/udev_enumerate_scan_devices.3
+man/udev_enumerate_unref.3: man/udev_enumerate_new.3
+man/udev_list_entry_get_by_name.3: man/udev_list_entry.3
+man/udev_list_entry_get_name.3: man/udev_list_entry.3
+man/udev_list_entry_get_next.3: man/udev_list_entry.3
+man/udev_list_entry_get_value.3: man/udev_list_entry.3
+man/udev_monitor_enable_receiving.3: man/udev_monitor_receive_device.3
+man/udev_monitor_filter_add_match_subsystem_devtype.3: man/udev_monitor_filter_update.3
+man/udev_monitor_filter_add_match_tag.3: man/udev_monitor_filter_update.3
+man/udev_monitor_filter_remove.3: man/udev_monitor_filter_update.3
+man/udev_monitor_get_fd.3: man/udev_monitor_receive_device.3
+man/udev_monitor_get_udev.3: man/udev_monitor_receive_device.3
+man/udev_monitor_ref.3: man/udev_monitor_new_from_netlink.3
+man/udev_monitor_set_receive_buffer_size.3: man/udev_monitor_receive_device.3
+man/udev_monitor_unref.3: man/udev_monitor_new_from_netlink.3
+man/udev_ref.3: man/udev_new.3
+man/udev_unref.3: man/udev_new.3
man/user.conf.d.5: man/systemd-system.conf.5
man/SD_ALERT.html: man/sd-daemon.html
$(html-alias)
@@ -431,6 +743,249 @@ man/poweroff.html: man/halt.html
man/reboot.html: man/halt.html
$(html-alias)
+man/sd_bus_creds_get_audit_login_uid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_audit_session_id.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_cgroup.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_cmdline.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_comm.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_description.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_egid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_euid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_exe.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_fsgid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_fsuid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_gid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_mask.html: man/sd_bus_creds_new_from_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_owner_uid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_ppid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_selinux_context.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_session.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_sgid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_slice.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_suid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_supplementary_gids.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_tid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_tid_comm.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_tty.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_uid.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_unique_name.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_unit.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_user_unit.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_get_well_known_names.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_has_bounding_cap.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_has_effective_cap.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_has_inheritable_cap.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_has_permitted_cap.html: man/sd_bus_creds_get_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_ref.html: man/sd_bus_creds_new_from_pid.html
+ $(html-alias)
+
+man/sd_bus_creds_unref.html: man/sd_bus_creds_new_from_pid.html
+ $(html-alias)
+
+man/sd_bus_default_system.html: man/sd_bus_default.html
+ $(html-alias)
+
+man/sd_bus_default_user.html: man/sd_bus_default.html
+ $(html-alias)
+
+man/sd_bus_error_copy.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_free.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_get_errno.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_has_name.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_is_set.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_set.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_set_const.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_set_errno.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_set_errnof.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_message_append_array_iovec.html: man/sd_bus_message_append_array.html
+ $(html-alias)
+
+man/sd_bus_message_append_array_memfd.html: man/sd_bus_message_append_array.html
+ $(html-alias)
+
+man/sd_bus_message_append_array_space.html: man/sd_bus_message_append_array.html
+ $(html-alias)
+
+man/sd_bus_message_append_string_iovec.html: man/sd_bus_message_append_string_memfd.html
+ $(html-alias)
+
+man/sd_bus_message_append_string_space.html: man/sd_bus_message_append_string_memfd.html
+ $(html-alias)
+
+man/sd_bus_message_get_realtime_usec.html: man/sd_bus_message_get_monotonic_usec.html
+ $(html-alias)
+
+man/sd_bus_message_get_reply_cookie.html: man/sd_bus_message_get_cookie.html
+ $(html-alias)
+
+man/sd_bus_message_get_seqnum.html: man/sd_bus_message_get_monotonic_usec.html
+ $(html-alias)
+
+man/sd_bus_negotiate_creds.html: man/sd_bus_negotiate_fds.html
+ $(html-alias)
+
+man/sd_bus_negotiate_timestamps.html: man/sd_bus_negotiate_fds.html
+ $(html-alias)
+
+man/sd_bus_open.html: man/sd_bus_default.html
+ $(html-alias)
+
+man/sd_bus_open_system.html: man/sd_bus_default.html
+ $(html-alias)
+
+man/sd_bus_open_system_machine.html: man/sd_bus_default.html
+ $(html-alias)
+
+man/sd_bus_open_system_remote.html: man/sd_bus_default.html
+ $(html-alias)
+
+man/sd_bus_open_user.html: man/sd_bus_default.html
+ $(html-alias)
+
+man/sd_bus_path_decode.html: man/sd_bus_path_encode.html
+ $(html-alias)
+
+man/sd_bus_ref.html: man/sd_bus_new.html
+ $(html-alias)
+
+man/sd_bus_release_name.html: man/sd_bus_request_name.html
+ $(html-alias)
+
+man/sd_bus_unref.html: man/sd_bus_new.html
+ $(html-alias)
+
+man/sd_event_add_exit.html: man/sd_event_add_defer.html
+ $(html-alias)
+
+man/sd_event_add_post.html: man/sd_event_add_defer.html
+ $(html-alias)
+
+man/sd_event_default.html: man/sd_event_new.html
+ $(html-alias)
+
+man/sd_event_dispatch.html: man/sd_event_wait.html
+ $(html-alias)
+
+man/sd_event_get_name.html: man/sd_event_set_name.html
+ $(html-alias)
+
+man/sd_event_loop.html: man/sd_event_run.html
+ $(html-alias)
+
+man/sd_event_prepare.html: man/sd_event_wait.html
+ $(html-alias)
+
+man/sd_event_ref.html: man/sd_event_new.html
+ $(html-alias)
+
+man/sd_event_source_get_child_pid.html: man/sd_event_add_child.html
+ $(html-alias)
+
+man/sd_event_source_get_signal.html: man/sd_event_add_signal.html
+ $(html-alias)
+
+man/sd_event_source_get_time.html: man/sd_event_add_time.html
+ $(html-alias)
+
+man/sd_event_source_get_time_accuracy.html: man/sd_event_add_time.html
+ $(html-alias)
+
+man/sd_event_source_get_time_clock.html: man/sd_event_add_time.html
+ $(html-alias)
+
+man/sd_event_source_set_time.html: man/sd_event_add_time.html
+ $(html-alias)
+
+man/sd_event_source_set_time_accuracy.html: man/sd_event_add_time.html
+ $(html-alias)
+
+man/sd_event_unref.html: man/sd_event_new.html
+ $(html-alias)
+
man/sd_id128_equal.html: man/sd-id128.html
$(html-alias)
@@ -590,6 +1145,9 @@ man/systemd-ask-password-wall.path.html: man/systemd-ask-password-console.servic
man/systemd-ask-password-wall.service.html: man/systemd-ask-password-console.service.html
$(html-alias)
+man/systemd-bus-proxyd.socket.html: man/systemd-bus-proxyd@.service.html
+ $(html-alias)
+
man/systemd-fsck-root.service.html: man/systemd-fsck@.service.html
$(html-alias)
@@ -671,538 +1229,262 @@ man/systemd-update-done.html: man/systemd-update-done.service.html
man/systemd-user.conf.html: man/systemd-system.conf.html
$(html-alias)
-man/user.conf.d.html: man/systemd-system.conf.html
- $(html-alias)
-
-
-if ENABLE_BACKLIGHT
-MANPAGES += \
- man/systemd-backlight@.service.8
-MANPAGES_ALIAS += \
- man/systemd-backlight.8
-man/systemd-backlight.8: man/systemd-backlight@.service.8
-man/systemd-backlight.html: man/systemd-backlight@.service.html
- $(html-alias)
-
-endif
-
-if ENABLE_BINFMT
-MANPAGES += \
- man/binfmt.d.5 \
- man/systemd-binfmt.service.8
-MANPAGES_ALIAS += \
- man/systemd-binfmt.8
-man/systemd-binfmt.8: man/systemd-binfmt.service.8
-man/systemd-binfmt.html: man/systemd-binfmt.service.html
+man/udev_device_get_action.html: man/udev_device_get_syspath.html
$(html-alias)
-endif
-
-if ENABLE_BOOTCHART
-MANPAGES += \
- man/bootchart.conf.5 \
- man/systemd-bootchart.1
-MANPAGES_ALIAS += \
- man/bootchart.conf.d.5
-man/bootchart.conf.d.5: man/bootchart.conf.5
-man/bootchart.conf.d.html: man/bootchart.conf.html
+man/udev_device_get_devlinks_list_entry.html: man/udev_device_has_tag.html
$(html-alias)
-endif
-
-if ENABLE_COREDUMP
-MANPAGES += \
- man/coredump.conf.5 \
- man/coredumpctl.1 \
- man/systemd-coredump.8
-MANPAGES_ALIAS += \
- man/coredump.conf.d.5
-man/coredump.conf.d.5: man/coredump.conf.5
-man/coredump.conf.d.html: man/coredump.conf.html
+man/udev_device_get_devnode.html: man/udev_device_get_syspath.html
$(html-alias)
-endif
-
-if ENABLE_EFI
-MANPAGES += \
- man/bootctl.1
-MANPAGES_ALIAS += \
- #
-
-
-endif
-
-if ENABLE_FIRSTBOOT
-MANPAGES += \
- man/systemd-firstboot.1
-MANPAGES_ALIAS += \
- man/systemd-firstboot.service.1
-man/systemd-firstboot.service.1: man/systemd-firstboot.1
-man/systemd-firstboot.service.html: man/systemd-firstboot.html
+man/udev_device_get_devnum.html: man/udev_device_get_syspath.html
$(html-alias)
-endif
-
-if ENABLE_HOSTNAMED
-MANPAGES += \
- man/hostnamectl.1 \
- man/systemd-hostnamed.service.8
-MANPAGES_ALIAS += \
- man/systemd-hostnamed.8
-man/systemd-hostnamed.8: man/systemd-hostnamed.service.8
-man/systemd-hostnamed.html: man/systemd-hostnamed.service.html
+man/udev_device_get_devpath.html: man/udev_device_get_syspath.html
$(html-alias)
-endif
-
-if ENABLE_HWDB
-MANPAGES += \
- man/hwdb.7 \
- man/systemd-hwdb.8
-MANPAGES_ALIAS += \
- #
-
-
-endif
-
-if ENABLE_KDBUS
-MANPAGES += \
- man/sd_bus_creds_get_pid.3 \
- man/sd_bus_creds_new_from_pid.3 \
- man/sd_bus_default.3 \
- man/sd_bus_error.3 \
- man/sd_bus_message_append.3 \
- man/sd_bus_message_append_array.3 \
- man/sd_bus_message_append_basic.3 \
- man/sd_bus_message_append_string_memfd.3 \
- man/sd_bus_message_append_strv.3 \
- man/sd_bus_message_get_cookie.3 \
- man/sd_bus_message_get_monotonic_usec.3 \
- man/sd_bus_negotiate_fds.3 \
- man/sd_bus_new.3 \
- man/sd_bus_path_encode.3 \
- man/sd_bus_request_name.3 \
- man/sd_event_add_child.3 \
- man/sd_event_add_defer.3 \
- man/sd_event_add_signal.3 \
- man/sd_event_add_time.3 \
- man/sd_event_get_fd.3 \
- man/sd_event_new.3 \
- man/sd_event_run.3 \
- man/sd_event_set_name.3 \
- man/sd_event_wait.3 \
- man/systemd-bus-proxyd.8 \
- man/systemd-bus-proxyd@.service.8
-MANPAGES_ALIAS += \
- man/sd_bus_creds_get_audit_login_uid.3 \
- man/sd_bus_creds_get_audit_session_id.3 \
- man/sd_bus_creds_get_cgroup.3 \
- man/sd_bus_creds_get_cmdline.3 \
- man/sd_bus_creds_get_comm.3 \
- man/sd_bus_creds_get_description.3 \
- man/sd_bus_creds_get_egid.3 \
- man/sd_bus_creds_get_euid.3 \
- man/sd_bus_creds_get_exe.3 \
- man/sd_bus_creds_get_fsgid.3 \
- man/sd_bus_creds_get_fsuid.3 \
- man/sd_bus_creds_get_gid.3 \
- man/sd_bus_creds_get_mask.3 \
- man/sd_bus_creds_get_owner_uid.3 \
- man/sd_bus_creds_get_ppid.3 \
- man/sd_bus_creds_get_selinux_context.3 \
- man/sd_bus_creds_get_session.3 \
- man/sd_bus_creds_get_sgid.3 \
- man/sd_bus_creds_get_slice.3 \
- man/sd_bus_creds_get_suid.3 \
- man/sd_bus_creds_get_supplementary_gids.3 \
- man/sd_bus_creds_get_tid.3 \
- man/sd_bus_creds_get_tid_comm.3 \
- man/sd_bus_creds_get_tty.3 \
- man/sd_bus_creds_get_uid.3 \
- man/sd_bus_creds_get_unique_name.3 \
- man/sd_bus_creds_get_unit.3 \
- man/sd_bus_creds_get_user_unit.3 \
- man/sd_bus_creds_get_well_known_names.3 \
- man/sd_bus_creds_has_bounding_cap.3 \
- man/sd_bus_creds_has_effective_cap.3 \
- man/sd_bus_creds_has_inheritable_cap.3 \
- man/sd_bus_creds_has_permitted_cap.3 \
- man/sd_bus_creds_ref.3 \
- man/sd_bus_creds_unref.3 \
- man/sd_bus_default_system.3 \
- man/sd_bus_default_user.3 \
- man/sd_bus_error_copy.3 \
- man/sd_bus_error_free.3 \
- man/sd_bus_error_get_errno.3 \
- man/sd_bus_error_has_name.3 \
- man/sd_bus_error_is_set.3 \
- man/sd_bus_error_set.3 \
- man/sd_bus_error_set_const.3 \
- man/sd_bus_error_set_errno.3 \
- man/sd_bus_error_set_errnof.3 \
- man/sd_bus_message_append_array_iovec.3 \
- man/sd_bus_message_append_array_memfd.3 \
- man/sd_bus_message_append_array_space.3 \
- man/sd_bus_message_append_string_iovec.3 \
- man/sd_bus_message_append_string_space.3 \
- man/sd_bus_message_get_realtime_usec.3 \
- man/sd_bus_message_get_reply_cookie.3 \
- man/sd_bus_message_get_seqnum.3 \
- man/sd_bus_negotiate_creds.3 \
- man/sd_bus_negotiate_timestamps.3 \
- man/sd_bus_open.3 \
- man/sd_bus_open_system.3 \
- man/sd_bus_open_system_machine.3 \
- man/sd_bus_open_system_remote.3 \
- man/sd_bus_open_user.3 \
- man/sd_bus_path_decode.3 \
- man/sd_bus_ref.3 \
- man/sd_bus_release_name.3 \
- man/sd_bus_unref.3 \
- man/sd_event_add_exit.3 \
- man/sd_event_add_post.3 \
- man/sd_event_default.3 \
- man/sd_event_dispatch.3 \
- man/sd_event_get_name.3 \
- man/sd_event_loop.3 \
- man/sd_event_prepare.3 \
- man/sd_event_ref.3 \
- man/sd_event_source_get_child_pid.3 \
- man/sd_event_source_get_signal.3 \
- man/sd_event_source_get_time.3 \
- man/sd_event_source_get_time_accuracy.3 \
- man/sd_event_source_get_time_clock.3 \
- man/sd_event_source_set_time.3 \
- man/sd_event_source_set_time_accuracy.3 \
- man/sd_event_unref.3 \
- man/systemd-bus-proxyd.socket.8
-man/sd_bus_creds_get_audit_login_uid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_audit_session_id.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_cgroup.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_cmdline.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_comm.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_description.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_egid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_euid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_exe.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_fsgid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_fsuid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_gid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_mask.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_creds_get_owner_uid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_ppid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_selinux_context.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_session.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_sgid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_slice.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_suid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_supplementary_gids.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_tid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_tid_comm.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_tty.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_uid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_unique_name.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_unit.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_user_unit.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_well_known_names.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_bounding_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_effective_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_inheritable_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_permitted_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_ref.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_creds_unref.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_default_system.3: man/sd_bus_default.3
-man/sd_bus_default_user.3: man/sd_bus_default.3
-man/sd_bus_error_copy.3: man/sd_bus_error.3
-man/sd_bus_error_free.3: man/sd_bus_error.3
-man/sd_bus_error_get_errno.3: man/sd_bus_error.3
-man/sd_bus_error_has_name.3: man/sd_bus_error.3
-man/sd_bus_error_is_set.3: man/sd_bus_error.3
-man/sd_bus_error_set.3: man/sd_bus_error.3
-man/sd_bus_error_set_const.3: man/sd_bus_error.3
-man/sd_bus_error_set_errno.3: man/sd_bus_error.3
-man/sd_bus_error_set_errnof.3: man/sd_bus_error.3
-man/sd_bus_message_append_array_iovec.3: man/sd_bus_message_append_array.3
-man/sd_bus_message_append_array_memfd.3: man/sd_bus_message_append_array.3
-man/sd_bus_message_append_array_space.3: man/sd_bus_message_append_array.3
-man/sd_bus_message_append_string_iovec.3: man/sd_bus_message_append_string_memfd.3
-man/sd_bus_message_append_string_space.3: man/sd_bus_message_append_string_memfd.3
-man/sd_bus_message_get_realtime_usec.3: man/sd_bus_message_get_monotonic_usec.3
-man/sd_bus_message_get_reply_cookie.3: man/sd_bus_message_get_cookie.3
-man/sd_bus_message_get_seqnum.3: man/sd_bus_message_get_monotonic_usec.3
-man/sd_bus_negotiate_creds.3: man/sd_bus_negotiate_fds.3
-man/sd_bus_negotiate_timestamps.3: man/sd_bus_negotiate_fds.3
-man/sd_bus_open.3: man/sd_bus_default.3
-man/sd_bus_open_system.3: man/sd_bus_default.3
-man/sd_bus_open_system_machine.3: man/sd_bus_default.3
-man/sd_bus_open_system_remote.3: man/sd_bus_default.3
-man/sd_bus_open_user.3: man/sd_bus_default.3
-man/sd_bus_path_decode.3: man/sd_bus_path_encode.3
-man/sd_bus_ref.3: man/sd_bus_new.3
-man/sd_bus_release_name.3: man/sd_bus_request_name.3
-man/sd_bus_unref.3: man/sd_bus_new.3
-man/sd_event_add_exit.3: man/sd_event_add_defer.3
-man/sd_event_add_post.3: man/sd_event_add_defer.3
-man/sd_event_default.3: man/sd_event_new.3
-man/sd_event_dispatch.3: man/sd_event_wait.3
-man/sd_event_get_name.3: man/sd_event_set_name.3
-man/sd_event_loop.3: man/sd_event_run.3
-man/sd_event_prepare.3: man/sd_event_wait.3
-man/sd_event_ref.3: man/sd_event_new.3
-man/sd_event_source_get_child_pid.3: man/sd_event_add_child.3
-man/sd_event_source_get_signal.3: man/sd_event_add_signal.3
-man/sd_event_source_get_time.3: man/sd_event_add_time.3
-man/sd_event_source_get_time_accuracy.3: man/sd_event_add_time.3
-man/sd_event_source_get_time_clock.3: man/sd_event_add_time.3
-man/sd_event_source_set_time.3: man/sd_event_add_time.3
-man/sd_event_source_set_time_accuracy.3: man/sd_event_add_time.3
-man/sd_event_unref.3: man/sd_event_new.3
-man/systemd-bus-proxyd.socket.8: man/systemd-bus-proxyd@.service.8
-man/sd_bus_creds_get_audit_login_uid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_audit_session_id.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_cgroup.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_cmdline.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_comm.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_description.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_egid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_devtype.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_euid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_exe.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_fsgid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_driver.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_fsuid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_is_initialized.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_gid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_parent.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_mask.html: man/sd_bus_creds_new_from_pid.html
+man/udev_device_get_parent_with_subsystem_devtype.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_owner_uid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_properties_list_entry.html: man/udev_device_has_tag.html
$(html-alias)
-man/sd_bus_creds_get_ppid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_property_value.html: man/udev_device_has_tag.html
$(html-alias)
-man/sd_bus_creds_get_selinux_context.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_subsystem.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_session.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_sysattr_list_entry.html: man/udev_device_has_tag.html
$(html-alias)
-man/sd_bus_creds_get_sgid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_sysattr_value.html: man/udev_device_has_tag.html
$(html-alias)
-man/sd_bus_creds_get_slice.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_sysname.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_suid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_sysnum.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_supplementary_gids.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_tags_list_entry.html: man/udev_device_has_tag.html
$(html-alias)
-man/sd_bus_creds_get_tid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_get_udev.html: man/udev_device_get_syspath.html
$(html-alias)
-man/sd_bus_creds_get_tid_comm.html: man/sd_bus_creds_get_pid.html
+man/udev_device_new_from_device_id.html: man/udev_device_new_from_syspath.html
$(html-alias)
-man/sd_bus_creds_get_tty.html: man/sd_bus_creds_get_pid.html
+man/udev_device_new_from_devnum.html: man/udev_device_new_from_syspath.html
$(html-alias)
-man/sd_bus_creds_get_uid.html: man/sd_bus_creds_get_pid.html
+man/udev_device_new_from_environment.html: man/udev_device_new_from_syspath.html
$(html-alias)
-man/sd_bus_creds_get_unique_name.html: man/sd_bus_creds_get_pid.html
+man/udev_device_new_from_subsystem_sysname.html: man/udev_device_new_from_syspath.html
$(html-alias)
-man/sd_bus_creds_get_unit.html: man/sd_bus_creds_get_pid.html
+man/udev_device_ref.html: man/udev_device_new_from_syspath.html
$(html-alias)
-man/sd_bus_creds_get_user_unit.html: man/sd_bus_creds_get_pid.html
+man/udev_device_set_sysattr_value.html: man/udev_device_has_tag.html
$(html-alias)
-man/sd_bus_creds_get_well_known_names.html: man/sd_bus_creds_get_pid.html
+man/udev_device_unref.html: man/udev_device_new_from_syspath.html
$(html-alias)
-man/sd_bus_creds_has_bounding_cap.html: man/sd_bus_creds_get_pid.html
+man/udev_enumerate_add_match_is_initialized.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_creds_has_effective_cap.html: man/sd_bus_creds_get_pid.html
+man/udev_enumerate_add_match_parent.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_creds_has_inheritable_cap.html: man/sd_bus_creds_get_pid.html
+man/udev_enumerate_add_match_property.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_creds_has_permitted_cap.html: man/sd_bus_creds_get_pid.html
+man/udev_enumerate_add_match_sysattr.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_creds_ref.html: man/sd_bus_creds_new_from_pid.html
+man/udev_enumerate_add_match_sysname.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_creds_unref.html: man/sd_bus_creds_new_from_pid.html
+man/udev_enumerate_add_match_tag.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_default_system.html: man/sd_bus_default.html
+man/udev_enumerate_add_nomatch_subsystem.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_default_user.html: man/sd_bus_default.html
+man/udev_enumerate_add_nomatch_sysattr.html: man/udev_enumerate_add_match_subsystem.html
$(html-alias)
-man/sd_bus_error_copy.html: man/sd_bus_error.html
+man/udev_enumerate_add_syspath.html: man/udev_enumerate_scan_devices.html
$(html-alias)
-man/sd_bus_error_free.html: man/sd_bus_error.html
+man/udev_enumerate_get_list_entry.html: man/udev_enumerate_scan_devices.html
$(html-alias)
-man/sd_bus_error_get_errno.html: man/sd_bus_error.html
+man/udev_enumerate_get_udev.html: man/udev_enumerate_scan_devices.html
$(html-alias)
-man/sd_bus_error_has_name.html: man/sd_bus_error.html
+man/udev_enumerate_ref.html: man/udev_enumerate_new.html
$(html-alias)
-man/sd_bus_error_is_set.html: man/sd_bus_error.html
+man/udev_enumerate_scan_subsystems.html: man/udev_enumerate_scan_devices.html
$(html-alias)
-man/sd_bus_error_set.html: man/sd_bus_error.html
+man/udev_enumerate_unref.html: man/udev_enumerate_new.html
$(html-alias)
-man/sd_bus_error_set_const.html: man/sd_bus_error.html
+man/udev_list_entry_get_by_name.html: man/udev_list_entry.html
$(html-alias)
-man/sd_bus_error_set_errno.html: man/sd_bus_error.html
+man/udev_list_entry_get_name.html: man/udev_list_entry.html
$(html-alias)
-man/sd_bus_error_set_errnof.html: man/sd_bus_error.html
+man/udev_list_entry_get_next.html: man/udev_list_entry.html
$(html-alias)
-man/sd_bus_message_append_array_iovec.html: man/sd_bus_message_append_array.html
+man/udev_list_entry_get_value.html: man/udev_list_entry.html
$(html-alias)
-man/sd_bus_message_append_array_memfd.html: man/sd_bus_message_append_array.html
+man/udev_monitor_enable_receiving.html: man/udev_monitor_receive_device.html
$(html-alias)
-man/sd_bus_message_append_array_space.html: man/sd_bus_message_append_array.html
+man/udev_monitor_filter_add_match_subsystem_devtype.html: man/udev_monitor_filter_update.html
$(html-alias)
-man/sd_bus_message_append_string_iovec.html: man/sd_bus_message_append_string_memfd.html
+man/udev_monitor_filter_add_match_tag.html: man/udev_monitor_filter_update.html
$(html-alias)
-man/sd_bus_message_append_string_space.html: man/sd_bus_message_append_string_memfd.html
+man/udev_monitor_filter_remove.html: man/udev_monitor_filter_update.html
$(html-alias)
-man/sd_bus_message_get_realtime_usec.html: man/sd_bus_message_get_monotonic_usec.html
+man/udev_monitor_get_fd.html: man/udev_monitor_receive_device.html
$(html-alias)
-man/sd_bus_message_get_reply_cookie.html: man/sd_bus_message_get_cookie.html
+man/udev_monitor_get_udev.html: man/udev_monitor_receive_device.html
$(html-alias)
-man/sd_bus_message_get_seqnum.html: man/sd_bus_message_get_monotonic_usec.html
+man/udev_monitor_ref.html: man/udev_monitor_new_from_netlink.html
$(html-alias)
-man/sd_bus_negotiate_creds.html: man/sd_bus_negotiate_fds.html
+man/udev_monitor_set_receive_buffer_size.html: man/udev_monitor_receive_device.html
$(html-alias)
-man/sd_bus_negotiate_timestamps.html: man/sd_bus_negotiate_fds.html
+man/udev_monitor_unref.html: man/udev_monitor_new_from_netlink.html
$(html-alias)
-man/sd_bus_open.html: man/sd_bus_default.html
+man/udev_ref.html: man/udev_new.html
$(html-alias)
-man/sd_bus_open_system.html: man/sd_bus_default.html
+man/udev_unref.html: man/udev_new.html
$(html-alias)
-man/sd_bus_open_system_machine.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_open_system_remote.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_open_user.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_path_decode.html: man/sd_bus_path_encode.html
- $(html-alias)
-
-man/sd_bus_ref.html: man/sd_bus_new.html
- $(html-alias)
-
-man/sd_bus_release_name.html: man/sd_bus_request_name.html
+man/user.conf.d.html: man/systemd-system.conf.html
$(html-alias)
-man/sd_bus_unref.html: man/sd_bus_new.html
- $(html-alias)
-man/sd_event_add_exit.html: man/sd_event_add_defer.html
+if ENABLE_BACKLIGHT
+MANPAGES += \
+ man/systemd-backlight@.service.8
+MANPAGES_ALIAS += \
+ man/systemd-backlight.8
+man/systemd-backlight.8: man/systemd-backlight@.service.8
+man/systemd-backlight.html: man/systemd-backlight@.service.html
$(html-alias)
-man/sd_event_add_post.html: man/sd_event_add_defer.html
- $(html-alias)
+endif
-man/sd_event_default.html: man/sd_event_new.html
+if ENABLE_BINFMT
+MANPAGES += \
+ man/binfmt.d.5 \
+ man/systemd-binfmt.service.8
+MANPAGES_ALIAS += \
+ man/systemd-binfmt.8
+man/systemd-binfmt.8: man/systemd-binfmt.service.8
+man/systemd-binfmt.html: man/systemd-binfmt.service.html
$(html-alias)
-man/sd_event_dispatch.html: man/sd_event_wait.html
- $(html-alias)
+endif
-man/sd_event_get_name.html: man/sd_event_set_name.html
+if ENABLE_BOOTCHART
+MANPAGES += \
+ man/bootchart.conf.5 \
+ man/systemd-bootchart.1
+MANPAGES_ALIAS += \
+ man/bootchart.conf.d.5
+man/bootchart.conf.d.5: man/bootchart.conf.5
+man/bootchart.conf.d.html: man/bootchart.conf.html
$(html-alias)
-man/sd_event_loop.html: man/sd_event_run.html
- $(html-alias)
+endif
-man/sd_event_prepare.html: man/sd_event_wait.html
+if ENABLE_COREDUMP
+MANPAGES += \
+ man/coredump.conf.5 \
+ man/coredumpctl.1 \
+ man/systemd-coredump.8
+MANPAGES_ALIAS += \
+ man/coredump.conf.d.5
+man/coredump.conf.d.5: man/coredump.conf.5
+man/coredump.conf.d.html: man/coredump.conf.html
$(html-alias)
-man/sd_event_ref.html: man/sd_event_new.html
- $(html-alias)
+endif
-man/sd_event_source_get_child_pid.html: man/sd_event_add_child.html
- $(html-alias)
+if ENABLE_EFI
+MANPAGES += \
+ man/bootctl.1
+MANPAGES_ALIAS += \
+ #
-man/sd_event_source_get_signal.html: man/sd_event_add_signal.html
- $(html-alias)
-man/sd_event_source_get_time.html: man/sd_event_add_time.html
- $(html-alias)
+endif
-man/sd_event_source_get_time_accuracy.html: man/sd_event_add_time.html
+if ENABLE_FIRSTBOOT
+MANPAGES += \
+ man/systemd-firstboot.1
+MANPAGES_ALIAS += \
+ man/systemd-firstboot.service.1
+man/systemd-firstboot.service.1: man/systemd-firstboot.1
+man/systemd-firstboot.service.html: man/systemd-firstboot.html
$(html-alias)
-man/sd_event_source_get_time_clock.html: man/sd_event_add_time.html
- $(html-alias)
+endif
-man/sd_event_source_set_time.html: man/sd_event_add_time.html
+if ENABLE_HOSTNAMED
+MANPAGES += \
+ man/hostnamectl.1 \
+ man/systemd-hostnamed.service.8
+MANPAGES_ALIAS += \
+ man/systemd-hostnamed.8
+man/systemd-hostnamed.8: man/systemd-hostnamed.service.8
+man/systemd-hostnamed.html: man/systemd-hostnamed.service.html
$(html-alias)
-man/sd_event_source_set_time_accuracy.html: man/sd_event_add_time.html
- $(html-alias)
+endif
-man/sd_event_unref.html: man/sd_event_new.html
- $(html-alias)
+if ENABLE_HWDB
+MANPAGES += \
+ man/hwdb.7 \
+ man/systemd-hwdb.8
+MANPAGES_ALIAS += \
+ #
-man/systemd-bus-proxyd.socket.html: man/systemd-bus-proxyd@.service.html
- $(html-alias)
endif
@@ -1708,6 +1990,7 @@ EXTRA_DIST += \
man/kernel-install.xml \
man/less-variables.xml \
man/libsystemd-pkgconfig.xml \
+ man/libudev.xml \
man/locale.conf.xml \
man/localectl.xml \
man/localtime.xml \
@@ -1891,6 +2174,17 @@ EXTRA_DIST += \
man/tmpfiles.d.xml \
man/udev.conf.xml \
man/udev.xml \
+ man/udev_device_get_syspath.xml \
+ man/udev_device_has_tag.xml \
+ man/udev_device_new_from_syspath.xml \
+ man/udev_enumerate_add_match_subsystem.xml \
+ man/udev_enumerate_new.xml \
+ man/udev_enumerate_scan_devices.xml \
+ man/udev_list_entry.xml \
+ man/udev_monitor_filter_update.xml \
+ man/udev_monitor_new_from_netlink.xml \
+ man/udev_monitor_receive_device.xml \
+ man/udev_new.xml \
man/udevadm.xml \
man/user-system-options.xml \
man/vconsole.conf.xml
diff --git a/Makefile.am b/Makefile.am
index 2a79a2a683..7dc57b18da 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -39,12 +39,12 @@ SUBDIRS = . po
.PRECIOUS: $(TEST_SUITE_LOG) Makefile
LIBUDEV_CURRENT=7
-LIBUDEV_REVISION=3
+LIBUDEV_REVISION=4
LIBUDEV_AGE=6
-LIBSYSTEMD_CURRENT=7
+LIBSYSTEMD_CURRENT=8
LIBSYSTEMD_REVISION=0
-LIBSYSTEMD_AGE=7
+LIBSYSTEMD_AGE=8
# The following four libraries only exist for compatibility reasons,
# their version info should not be bumped anymore
@@ -338,10 +338,8 @@ INSTALL_EXEC_HOOKS += \
install-aliases-hook \
install-touch-usr-hook
-if ENABLE_KDBUS
INSTALL_EXEC_HOOKS += \
install-busnames-target-wants-hook
-endif
# ------------------------------------------------------------------------------
AM_V_M4 = $(AM_V_M4_$(V))
@@ -522,10 +520,8 @@ dist_systemunit_DATA = \
units/initrd-switch-root.target \
units/machines.target
-if ENABLE_KDBUS
dist_systemunit_DATA += \
$(dist_systemunit_DATA_busnames)
-endif
dist_systemunit_DATA_busnames += \
units/busnames.target
@@ -2622,7 +2618,6 @@ systemd_gpt_auto_generator_CFLAGS = \
endif
# ------------------------------------------------------------------------------
-if ENABLE_KDBUS
systemgenerator_PROGRAMS += \
systemd-dbus1-generator
@@ -2645,7 +2640,6 @@ dist_xinitrc_SCRIPTS = \
INSTALL_EXEC_HOOKS += dbus1-generator-install-hook
UNINSTALL_EXEC_HOOKS += dbus1-generator-uninstall-hook
-endif
# ------------------------------------------------------------------------------
systemd_sysv_generator_SOURCES = \
@@ -2793,7 +2787,6 @@ systemd_stdio_bridge_LDADD = \
libbus-proxy-core.la \
libshared.la
-if ENABLE_KDBUS
nodist_systemunit_DATA += \
units/systemd-bus-proxyd.service
@@ -2805,7 +2798,6 @@ nodist_userunit_DATA += \
dist_userunit_DATA += \
units/user/systemd-bus-proxyd.socket
-endif
EXTRA_DIST += \
units/systemd-bus-proxyd.service.m4.in \
@@ -2841,6 +2833,7 @@ libsystemd_internal_la_SOURCES = \
src/systemd/sd-network.h \
src/systemd/sd-hwdb.h \
src/systemd/sd-device.h \
+ src/libsystemd/libsystemd.sym \
src/libsystemd/sd-bus/sd-bus.c \
src/libsystemd/sd-bus/bus-control.c \
src/libsystemd/sd-bus/bus-control.h \
@@ -2917,9 +2910,6 @@ libsystemd_internal_la_SOURCES = \
src/libsystemd/sd-resolve/sd-resolve.c \
src/libsystemd/sd-resolve/resolve-util.h
-nodist_libsystemd_internal_la_SOURCES = \
- src/libsystemd/libsystemd.sym
-
libsystemd_internal_la_LIBADD = \
libbasic.la \
-lresolv
@@ -2928,14 +2918,10 @@ noinst_LTLIBRARIES += \
libsystemd-internal.la
EXTRA_DIST += \
- src/libsystemd/libsystemd.sym.m4 \
src/libsystemd/libsystemd.pc.in \
src/libsystemd/sd-bus/DIFFERENCES \
src/libsystemd/sd-bus/GVARIANT-SERIALIZATION
-BUILT_SOURCES += \
- src/libsystemd/libsystemd.sym
-
libsystemd_la_SOURCES = \
$(libsystemd_internal_la_SOURCES) \
$(libsystemd_journal_internal_la_SOURCES)
@@ -2950,7 +2936,7 @@ libsystemd_la_CFLAGS = \
libsystemd_la_LDFLAGS = \
$(AM_LDFLAGS) \
-version-info $(LIBSYSTEMD_CURRENT):$(LIBSYSTEMD_REVISION):$(LIBSYSTEMD_AGE) \
- -Wl,--version-script=$(top_builddir)/src/libsystemd/libsystemd.sym
+ -Wl,--version-script=$(top_srcdir)/src/libsystemd/libsystemd.sym
libsystemd_la_LIBADD = \
$(libsystemd_internal_la_LIBADD) \
@@ -2977,14 +2963,6 @@ pkginclude_HEADERS += \
src/systemd/sd-id128.h \
src/systemd/sd-daemon.h
-if ENABLE_KDBUS
-pkginclude_HEADERS += \
- src/systemd/sd-utf8.h \
- src/systemd/sd-netlink.h \
- src/systemd/sd-resolve.h \
- src/systemd/sd-path.h
-endif
-
lib_LTLIBRARIES += \
libsystemd.la
@@ -5960,6 +5938,7 @@ substitutions = \
'|systemgidmax=$(SYSTEM_GID_MAX)|' \
'|TTY_GID=$(TTY_GID)|' \
'|systemsleepdir=$(systemsleepdir)|' \
+ '|systemshutdowndir=$(systemshutdowndir)|' \
'|binfmtdir=$(binfmtdir)|' \
'|modulesloaddir=$(modulesloaddir)|'
@@ -6179,10 +6158,8 @@ USER_UNIT_ALIASES += \
$(systemunitdir)/sound.target sound.target \
$(systemunitdir)/smartcard.target smartcard.target
-if ENABLE_KDBUS
USER_UNIT_ALIASES += \
$(systemunitdir)/busnames.target busnames.target
-endif
GENERAL_ALIASES += \
$(systemunitdir)/remote-fs.target $(pkgsysconfdir)/system/multi-user.target.wants/remote-fs.target \
@@ -6243,7 +6220,6 @@ DISTCHECK_CONFIGURE_FLAGS = \
--with-pamlibdir=$$dc_install_base/$(pamlibdir) \
--with-pamconfdir=$$dc_install_base/$(pamconfdir) \
--with-rootprefix=$$dc_install_base \
- --enable-kdbus \
--enable-compat-libs
if HAVE_SYSV_COMPAT
@@ -6304,11 +6280,6 @@ hwdb-update:
http://standards.ieee.org/develop/regauth/iab/iab.txt && \
./ids-update.pl )
-.PHONY: kdbus-update
-kdbus-update:
- ( cd $(top_srcdir)/src/libsystemd/sd-bus/ && \
- wget -N https://d-bus.googlecode.com/git/kdbus.h )
-
.PHONY: git-tag
git-tag:
git tag -s "v$(VERSION)" -m "systemd $(VERSION)"
diff --git a/NEWS b/NEWS
index 2e2d1cefeb..5a9c619bbe 100644
--- a/NEWS
+++ b/NEWS
@@ -2,14 +2,81 @@ systemd System and Service Manager
CHANGES WITH 221:
- * Support for chkconfig (--enable-chkconfig) was removed in favour of
- calling an abstraction /lib/systemd/systemd-sysv-install. This needs
- to be implemented for your distribution. See "SYSV INIT.D SCRIPTS" in
- README for details.
-
- Contributions from: ...
+ * The sd-bus.h and sd-event.h APIs have now been declared
+ stable and have been added to the official interface of
+ libsystemd.so. sd-bus implements an alternative D-Bus client
+ library, that is relatively easy to use, very efficient and
+ supports both classic D-Bus as well as kdbus as transport
+ backend. sd-event is a generic event loop abstraction that
+ is built around Linux epoll, but adds features such as event
+ priorization or efficient timer handling. Both APIs are good
+ choices for C programs looking for a bus and/or event loop
+ implementation that is minimal and does not have to be
+ portable to other kernels.
+
+ * kdbus support is no longer compile-time optional. It is now
+ always built-in. However, it can still be disabled at
+ runtime using the kdbus=0 kernel command line setting, and
+ that setting my by changed to default to off, by specifying
+ --disable-kdbus at build-time. Note though that the kernel
+ command line setting has no effect if the kdbus.ko kernel
+ module is not installed, in which case kdbus is (obviously)
+ also disabled. We encourage all downstream distributions to
+ begin testing kdbus by adding it to the kernel images if the
+ development distributions, and leaving kdbus support in
+ systemd enabled.
+
+ * The minimal required util-linux version has been bumped to
+ 2.26.
+
+ * Support for chkconfig (--enable-chkconfig) was removed in
+ favour of calling an abstraction tool
+ /lib/systemd/systemd-sysv-install. This needs to be
+ implemented for your distribution. See "SYSV INIT.D SCRIPTS"
+ in README for details.
+
+ * If there's a systemd unit and a SysV init script for the
+ same service name, and the user executes "systemctl enable"
+ for it (or a related call), then this will now enable both
+ (or execute the related operation on both), not just the
+ unit.
+
+ * The libudev API documentation has been converted from gtkdoc
+ into man pages.
+
+ * gudev has been removed from the systemd tree, it is now an
+ external project.
+
+ * The systemd-cgtop tool learnt a new --raw switch to generate
+ "raw" (machine parseable) output.
+
+ * networkd's IPForwarding= .network file setting learnt the
+ new setting "kernel", which ensures that networkd does not
+ change the IP forwarding sysctl from the default kernel
+ state.
+
+ * The systemd-logind bus API now exposes a new boolean
+ property "Docked" that reports whether logind considers the
+ system "docked", i.e. connected to a docking station or not.
+
+ Contributions from: Alex Crawford, Andreas Pokorny, Andrei
+ Borzenkov, Charles Duffy, Colin Guthrie, Cristian Rodríguez,
+ Daniele Medri, Daniel Hahler, Daniel Mack, David Herrmann,
+ David Mohr, Dimitri John Ledkov, Djalal Harouni, dslul, Ed
+ Swierk, Eric Cook, Filipe Brandenburger, Gianpaolo Macario,
+ Harald Hoyer, Iago López Galeiras, Igor Vuk, Jan Synacek,
+ Jason Pleau, Jason S. McMullan, Jean Delvare, Jeff Huang,
+ Jonathan Boulle, Karel Zak, Kay Sievers, kloun, Lennart
+ Poettering, Marc-Antoine Perennou, Marcel Holtmann, Mario
+ Limonciello, Martin Pitt, Michael Biebl, Michael Olbrich,
+ Michal Schmidt, Mike Gilbert, Nick Owens, Pablo Lezaeta Reyes,
+ Patrick Donnelly, Peter Hutterer, Philip Withnall, Ronny
+ Chevalier, Simon McVittie, Susant Sahani, Thomas Hindoe
+ Paaboel Andersen, Tom Gundersen, Torstein Husebø, Umut
+ Tezduyar Lindskog, Viktar Vauchkevich, Werner Fink, Zbigniew
+ Jędrzejewski-Szmek
- -- Berlin, UNRELEASED
+ -- Berlin, 2015-05-XX
CHANGES WITH 220:
diff --git a/TODO b/TODO
index c25f3d3bb3..f912645762 100644
--- a/TODO
+++ b/TODO
@@ -28,6 +28,10 @@ External:
Features:
+* man: clarify that "machinectl show" shows different information than "machinectl status" (no cgroup tree, no IP addresses, ...)
+
+* "systemctl daemon-reload" should result in /etc/systemd/system.conf being reloaded by systemd
+
* install: include generator dirs in unit file search paths
* networkd: add support for configuring ipv6 privacy extensions
diff --git a/configure.ac b/configure.ac
index b94dbd1613..0784966f06 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@
AC_PREREQ([2.64])
AC_INIT([systemd],
- [220],
+ [221],
[http://github.com/systemd/systemd/issues],
[systemd],
[http://www.freedesktop.org/wiki/Software/systemd])
@@ -1203,9 +1203,9 @@ AM_CONDITIONAL(ENABLE_TERMINAL, [test "x$have_terminal" = "xyes" -a "x$have_unif
# ------------------------------------------------------------------------------
have_kdbus=no
-AC_ARG_ENABLE(kdbus, AS_HELP_STRING([--enable-kdbus], [do connect to kdbus by default]))
-if test "x$enable_kdbus" = "xyes"; then
- AC_DEFINE(ENABLE_KDBUS, 1, [Define if kdbus support is to be enabled])
+AC_ARG_ENABLE(kdbus, AS_HELP_STRING([--disable-kdbus], [do not connect to kdbus by default]))
+if test "x$enable_kdbus" != "xno"; then
+ AC_DEFINE(ENABLE_KDBUS, 1, [Define if kdbus is to be connected to by default])
have_kdbus=yes
M4_DEFINES="$M4_DEFINES -DENABLE_KDBUS"
fi
diff --git a/hwdb/20-OUI.hwdb b/hwdb/20-OUI.hwdb
index fa4633dc16..51f591c77a 100644
--- a/hwdb/20-OUI.hwdb
+++ b/hwdb/20-OUI.hwdb
@@ -16964,7 +16964,7 @@ OUI:00044E*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
OUI:00044F*
- ID_OUI_FROM_DATABASE=Leukhardt Systemelektronik GmbH
+ ID_OUI_FROM_DATABASE=Schubert System Elektronik Gmbh
OUI:000450*
ID_OUI_FROM_DATABASE=DMD Computers SRL
@@ -37544,7 +37544,7 @@ OUI:001F48*
ID_OUI_FROM_DATABASE=Mojix Inc.
OUI:001F49*
- ID_OUI_FROM_DATABASE=Manhattan Technology Limited
+ ID_OUI_FROM_DATABASE=Manhattan TV Ltd
OUI:001F4A*
ID_OUI_FROM_DATABASE=Albentia Systems S.A.
@@ -41402,7 +41402,7 @@ OUI:002458*
ID_OUI_FROM_DATABASE=PA Bastion CC
OUI:002459*
- ID_OUI_FROM_DATABASE=ABB STOTZ-KONTAKT GmbH
+ ID_OUI_FROM_DATABASE=ABB Automation products GmbH
OUI:00245A*
ID_OUI_FROM_DATABASE=Nanjing Panda Electronics Company Limited
@@ -51137,7 +51137,7 @@ OUI:00E05B*
ID_OUI_FROM_DATABASE=WEST END SYSTEMS CORP.
OUI:00E05C*
- ID_OUI_FROM_DATABASE=MATSUSHITA KOTOBUKI ELECTRONICS INDUSTRIES, LTD.
+ ID_OUI_FROM_DATABASE=Panasonic Healthcare Co., Ltd.
OUI:00E05D*
ID_OUI_FROM_DATABASE=UNITEC CO., LTD.
@@ -51802,6 +51802,9 @@ OUI:043604*
OUI:043D98*
ID_OUI_FROM_DATABASE=ChongQing QingJia Electronics CO.,LTD
+OUI:044169*
+ ID_OUI_FROM_DATABASE=GoPro
+
OUI:0444A1*
ID_OUI_FROM_DATABASE=TELECON GALICIA,S.A.
@@ -52747,6 +52750,9 @@ OUI:0896D7*
OUI:089758*
ID_OUI_FROM_DATABASE=Shenzhen Strong Rising Electronics Co.,Ltd DongGuan Subsidiary
+OUI:089B4B*
+ ID_OUI_FROM_DATABASE=iKuai Networks
+
OUI:089E01*
ID_OUI_FROM_DATABASE=QUANTA COMPUTER INC.
@@ -53587,6 +53593,9 @@ OUI:10C73F*
OUI:10CA81*
ID_OUI_FROM_DATABASE=PRECIA
+OUI:10CC1B*
+ ID_OUI_FROM_DATABASE=Liverock technologies,INC
+
OUI:10CCDB*
ID_OUI_FROM_DATABASE=AXIMUM PRODUITS ELECTRONIQUES
@@ -53689,6 +53698,9 @@ OUI:14144B*
OUI:14157C*
ID_OUI_FROM_DATABASE=TOKYO COSMOS ELECTRIC CO.,LTD.
+OUI:141877*
+ ID_OUI_FROM_DATABASE=Dell Inc
+
OUI:141A51*
ID_OUI_FROM_DATABASE=Treetech Sistemas Digitais
@@ -54604,6 +54616,9 @@ OUI:1C8464*
OUI:1C86AD*
ID_OUI_FROM_DATABASE=MCT CO., LTD.
+OUI:1C872C*
+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC
+
OUI:1C8E5C*
ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd
@@ -54841,6 +54856,9 @@ OUI:2037BC*
OUI:203A07*
ID_OUI_FROM_DATABASE=Cisco
+OUI:203D66*
+ ID_OUI_FROM_DATABASE=ARRIS GROUP, INC.
+
OUI:204005*
ID_OUI_FROM_DATABASE=feno GmbH
@@ -55246,6 +55264,9 @@ OUI:2469A5*
OUI:246AAB*
ID_OUI_FROM_DATABASE=IT-IS International
+OUI:246C8A*
+ ID_OUI_FROM_DATABASE=YUKAI Engineering
+
OUI:246E96*
ID_OUI_FROM_DATABASE=Dell Inc.
@@ -55723,6 +55744,9 @@ OUI:28C7CE*
OUI:28C825*
ID_OUI_FROM_DATABASE=DellKing Industrial Co., Ltd
+OUI:28C87A*
+ ID_OUI_FROM_DATABASE=Pace plc
+
OUI:28C914*
ID_OUI_FROM_DATABASE=Taimag Corporation
@@ -55873,6 +55897,9 @@ OUI:2C1F23*
OUI:2C2172*
ID_OUI_FROM_DATABASE=Juniper Networks
+OUI:2C233A*
+ ID_OUI_FROM_DATABASE=Hewlett Packard
+
OUI:2C245F*
ID_OUI_FROM_DATABASE=Babolat VS
@@ -56242,6 +56269,9 @@ OUI:301A28*
OUI:30215B*
ID_OUI_FROM_DATABASE=Shenzhen Ostar Display Electronic Co.,Ltd
+OUI:3029BE*
+ ID_OUI_FROM_DATABASE=Shanghai MRDcom Co.,Ltd
+
OUI:302DE8*
ID_OUI_FROM_DATABASE=JDA, LLC (JDA Systems)
@@ -56407,6 +56437,9 @@ OUI:30918F*
OUI:3092F6*
ID_OUI_FROM_DATABASE=SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD
+OUI:3095E3*
+ ID_OUI_FROM_DATABASE=SHANGHAI SIMCOM LIMITED
+
OUI:309BAD*
ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd.,
@@ -56942,7 +56975,10 @@ OUI:380195*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:380197*
- ID_OUI_FROM_DATABASE=Toshiba Samsung Storage Technolgoy Korea Corporation
+ ID_OUI_FROM_DATABASE=TSST Global,Inc
+
+OUI:380546*
+ ID_OUI_FROM_DATABASE=Foctek Photonics, Inc.
OUI:3806B4*
ID_OUI_FROM_DATABASE=A.D.C. GmbH
@@ -57709,6 +57745,9 @@ OUI:4018B1*
OUI:4018D7*
ID_OUI_FROM_DATABASE=Smartronix, Inc.
+OUI:401B5F*
+ ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd.
+
OUI:401D59*
ID_OUI_FROM_DATABASE=Biometric Associates, LP
@@ -57748,6 +57787,9 @@ OUI:4037AD*
OUI:403CFC*
ID_OUI_FROM_DATABASE=Apple
+OUI:403DEC*
+ ID_OUI_FROM_DATABASE=HUMAX Co., Ltd.
+
OUI:404022*
ID_OUI_FROM_DATABASE=ZIV
@@ -58210,6 +58252,9 @@ OUI:44700B*
OUI:447098*
ID_OUI_FROM_DATABASE=MING HONG TECHNOLOGY (SHEN ZHEN) LIMITED
+OUI:4473D6*
+ ID_OUI_FROM_DATABASE=Logitech
+
OUI:44746C*
ID_OUI_FROM_DATABASE=Sony Mobile Communications AB
@@ -58306,6 +58351,9 @@ OUI:44AAE8*
OUI:44ADD9*
ID_OUI_FROM_DATABASE=Cisco
+OUI:44B32D*
+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD
+
OUI:44B382*
ID_OUI_FROM_DATABASE=Kuang-chi Institute of Advanced Technology
@@ -58597,6 +58645,9 @@ OUI:48B253*
OUI:48B5A7*
ID_OUI_FROM_DATABASE=Glory Horse Industries Ltd.
+OUI:48B620*
+ ID_OUI_FROM_DATABASE=ROLI Ltd.
+
OUI:48B8DE*
ID_OUI_FROM_DATABASE=HOMEWINS TECHNOLOGY CO.,LTD.
@@ -59410,6 +59461,9 @@ OUI:50F520*
OUI:50F61A*
ID_OUI_FROM_DATABASE=Kunshan JADE Technologies co., Ltd.
+OUI:50FA84*
+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD
+
OUI:50FAAB*
ID_OUI_FROM_DATABASE=L-tek d.o.o.
@@ -60280,6 +60334,9 @@ OUI:5C7757*
OUI:5C7D5E*
ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd
+OUI:5C838F*
+ ID_OUI_FROM_DATABASE=Cisco Systems
+
OUI:5C8486*
ID_OUI_FROM_DATABASE=Brightsource Industries Israel LTD
@@ -60349,6 +60406,9 @@ OUI:5CB43E*
OUI:5CB524*
ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB
+OUI:5CB559*
+ ID_OUI_FROM_DATABASE=CNEX Labs
+
OUI:5CB6CC*
ID_OUI_FROM_DATABASE=NovaComm Technologies Inc.
@@ -60382,6 +60442,9 @@ OUI:5CCCFF*
OUI:5CCEAD*
ID_OUI_FROM_DATABASE=CDYNE Corporation
+OUI:5CCF7F*
+ ID_OUI_FROM_DATABASE=Espressif Inc.
+
OUI:5CD135*
ID_OUI_FROM_DATABASE=Xtreme Power Systems
@@ -60652,6 +60715,9 @@ OUI:607688*
OUI:6077E2*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:607EDD*
+ ID_OUI_FROM_DATABASE=Microsoft Mobile Oy
+
OUI:60812B*
ID_OUI_FROM_DATABASE=Custom Control Concepts
@@ -61129,6 +61195,9 @@ OUI:649968*
OUI:6499A0*
ID_OUI_FROM_DATABASE=AG Elektronik AB
+OUI:649A12*
+ ID_OUI_FROM_DATABASE=P2 Mobile Technologies Limited
+
OUI:649ABE*
ID_OUI_FROM_DATABASE=Apple
@@ -61330,6 +61399,9 @@ OUI:680AD7*
OUI:68122D*
ID_OUI_FROM_DATABASE=Special Instrument Development Co., Ltd.
+OUI:681295*
+ ID_OUI_FROM_DATABASE=Lupine Lighting Systems GmbH
+
OUI:681590*
ID_OUI_FROM_DATABASE=SAGEMCOM SAS
@@ -61408,6 +61480,9 @@ OUI:6854ED*
OUI:6854F5*
ID_OUI_FROM_DATABASE=enLighted Inc
+OUI:6858C5*
+ ID_OUI_FROM_DATABASE=ZF TRW Automotive
+
OUI:68597F*
ID_OUI_FROM_DATABASE=Alcatel Lucent
@@ -61720,6 +61795,9 @@ OUI:6C23B9*
OUI:6C25B9*
ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd.,
+OUI:6C2779*
+ ID_OUI_FROM_DATABASE=Microsoft Mobile Oy
+
OUI:6C2995*
ID_OUI_FROM_DATABASE=Intel Corporate
@@ -62059,6 +62137,9 @@ OUI:70105C*
OUI:701124*
ID_OUI_FROM_DATABASE=Apple
+OUI:7011AE*
+ ID_OUI_FROM_DATABASE=Music Life LTD
+
OUI:701404*
ID_OUI_FROM_DATABASE=Limited Liability Company
@@ -62830,6 +62911,9 @@ OUI:74FF7D*
OUI:78028F*
ID_OUI_FROM_DATABASE=Adaptive Spectrum and Signal Alignment (ASSIA), Inc.
+OUI:780541*
+ ID_OUI_FROM_DATABASE=Queclink Wireless Solutions Co., Ltd
+
OUI:780738*
ID_OUI_FROM_DATABASE=Z.U.K. Elzab S.A.
@@ -64501,6 +64585,9 @@ OUI:881544*
OUI:8818AE*
ID_OUI_FROM_DATABASE=Tamron Co., Ltd
+OUI:881B99*
+ ID_OUI_FROM_DATABASE=SHENZHEN XIN FEI JIA ELECTRONIC CO. LTD.
+
OUI:881DFC*
ID_OUI_FROM_DATABASE=Cisco
@@ -66451,6 +66538,9 @@ OUI:9C8BF1*
OUI:9C8D1A*
ID_OUI_FROM_DATABASE=INTEG process group inc
+OUI:9C8DD3*
+ ID_OUI_FROM_DATABASE=Leonton Technologies
+
OUI:9C8E99*
ID_OUI_FROM_DATABASE=Hewlett-Packard Company
@@ -66841,6 +66931,9 @@ OUI:A08C9B*
OUI:A090DE*
ID_OUI_FROM_DATABASE=VEEDIMS,LLC
+OUI:A09169*
+ ID_OUI_FROM_DATABASE=LG Electronics
+
OUI:A09347*
ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD.
@@ -67105,6 +67198,9 @@ OUI:A433D1*
OUI:A434D9*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:A43831*
+ ID_OUI_FROM_DATABASE=RF elements s.r.o.
+
OUI:A438FC*
ID_OUI_FROM_DATABASE=Plastic Logic
@@ -67372,6 +67468,9 @@ OUI:A4DB2E*
OUI:A4DB30*
ID_OUI_FROM_DATABASE=Liteon Technology Corporation
+OUI:A4DCBE*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:A4DE50*
ID_OUI_FROM_DATABASE=Total Walther GmbH
@@ -67927,6 +68026,9 @@ OUI:AC7A4D*
OUI:AC7BA1*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:AC7E8A*
+ ID_OUI_FROM_DATABASE=Cisco Systems
+
OUI:AC7F3E*
ID_OUI_FROM_DATABASE=Apple
@@ -67957,6 +68059,9 @@ OUI:AC867E*
OUI:AC87A3*
ID_OUI_FROM_DATABASE=Apple
+OUI:AC8995*
+ ID_OUI_FROM_DATABASE=AzureWave Technology Inc.
+
OUI:AC8ACD*
ID_OUI_FROM_DATABASE=ROGER D.Wensker, G.Wensker sp.j.
@@ -68035,6 +68140,9 @@ OUI:ACBEB6*
OUI:ACC2EC*
ID_OUI_FROM_DATABASE=CLT INT'L IND. CORP.
+OUI:ACC51B*
+ ID_OUI_FROM_DATABASE=Zhuhai Pantum Electronics Co., Ltd.
+
OUI:ACC595*
ID_OUI_FROM_DATABASE=Graphite Systems
@@ -68290,6 +68398,9 @@ OUI:B075D5*
OUI:B077AC*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+OUI:B078F0*
+ ID_OUI_FROM_DATABASE=Beijing HuaqinWorld Technology Co.,Ltd.
+
OUI:B07908*
ID_OUI_FROM_DATABASE=Cummings Engineering
@@ -68926,6 +69037,9 @@ OUI:B838CA*
OUI:B83A7B*
ID_OUI_FROM_DATABASE=Worldplay (Canada) Inc.
+OUI:B83A9D*
+ ID_OUI_FROM_DATABASE=FIVE INTERACTIVE, LLC
+
OUI:B83D4E*
ID_OUI_FROM_DATABASE=Shenzhen Cultraview Digital Technology Co.,Ltd Shanghai Branch
@@ -69697,6 +69811,9 @@ OUI:C02BFC*
OUI:C02C7A*
ID_OUI_FROM_DATABASE=Shen Zhen Horn audio Co., Ltd.
+OUI:C02DEE*
+ ID_OUI_FROM_DATABASE=Cuff
+
OUI:C0335E*
ID_OUI_FROM_DATABASE=Microsoft
@@ -71428,6 +71545,9 @@ OUI:D0B53D*
OUI:D0B5C2*
ID_OUI_FROM_DATABASE=Texas Instruments
+OUI:D0BAE4*
+ ID_OUI_FROM_DATABASE=Shanghai MXCHIP Information Technology Co., Ltd.
+
OUI:D0BB80*
ID_OUI_FROM_DATABASE=SHL Telemedicine International Ltd.
@@ -71554,6 +71674,9 @@ OUI:D404CD*
OUI:D40598*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+OUI:D40AA9*
+ ID_OUI_FROM_DATABASE=ARRIS GROUP, INC.
+
OUI:D40B1A*
ID_OUI_FROM_DATABASE=HTC Corporation
@@ -71788,6 +71911,9 @@ OUI:D4945A*
OUI:D494A1*
ID_OUI_FROM_DATABASE=Texas Instruments
+OUI:D494E8*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:D49524*
ID_OUI_FROM_DATABASE=Clover Network, Inc.
@@ -71801,7 +71927,7 @@ OUI:D49A20*
ID_OUI_FROM_DATABASE=Apple
OUI:D49C28*
- ID_OUI_FROM_DATABASE=JayBird Gear LLC
+ ID_OUI_FROM_DATABASE=JayBird LLC
OUI:D49C8E*
ID_OUI_FROM_DATABASE=University of FUKUI
@@ -72454,6 +72580,9 @@ OUI:DC3E51*
OUI:DC3EF8*
ID_OUI_FROM_DATABASE=Nokia Corporation
+OUI:DC4427*
+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.
+
OUI:DC4517*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
@@ -73285,6 +73414,9 @@ OUI:E4BAD9*
OUI:E4C146*
ID_OUI_FROM_DATABASE=Objetivos y Servicios de Valor A
+OUI:E4C2D1*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:E4C62B*
ID_OUI_FROM_DATABASE=Airware
@@ -73384,6 +73516,9 @@ OUI:E8056D*
OUI:E80688*
ID_OUI_FROM_DATABASE=Apple
+OUI:E80734*
+ ID_OUI_FROM_DATABASE=Champion Optical Network Engineering, LLC
+
OUI:E807BF*
ID_OUI_FROM_DATABASE=SHENZHEN BOOMTECH INDUSTRY CO.,LTD
@@ -73981,6 +74116,9 @@ OUI:ECB1D7*
OUI:ECB541*
ID_OUI_FROM_DATABASE=SHINANO E and E Co.Ltd.
+OUI:ECB870*
+ ID_OUI_FROM_DATABASE=Beijing Heweinet Technology Co.,Ltd.
+
OUI:ECB907*
ID_OUI_FROM_DATABASE=CloudGenix Inc
@@ -74026,6 +74164,9 @@ OUI:ECD9D1*
OUI:ECDE3D*
ID_OUI_FROM_DATABASE=Lamprey Networks, Inc.
+OUI:ECDF3A*
+ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
+
OUI:ECE09B*
ID_OUI_FROM_DATABASE=Samsung electronics CO., LTD
@@ -74668,6 +74809,9 @@ OUI:F47F35*
OUI:F48139*
ID_OUI_FROM_DATABASE=CANON INC.
+OUI:F483CD*
+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD
+
OUI:F48771*
ID_OUI_FROM_DATABASE=Infoblox
@@ -75082,6 +75226,9 @@ OUI:F895C7*
OUI:F897CF*
ID_OUI_FROM_DATABASE=DAESHIN-INFORMATION TECHNOLOGY CO., LTD.
+OUI:F898B9*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:F89955*
ID_OUI_FROM_DATABASE=Fortress Technology Inc
@@ -75529,9 +75676,6 @@ OUI:FCB698*
OUI:FCBBA1*
ID_OUI_FROM_DATABASE=Shenzhen Minicreate Technology Co.,Ltd
-OUI:FCC233*
- ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
-
OUI:FCC23D*
ID_OUI_FROM_DATABASE=Atmel Corporation
diff --git a/hwdb/20-pci-vendor-model.hwdb b/hwdb/20-pci-vendor-model.hwdb
index 4cc7cfd65c..065f8988ba 100644
--- a/hwdb/20-pci-vendor-model.hwdb
+++ b/hwdb/20-pci-vendor-model.hwdb
@@ -6185,6 +6185,9 @@ pci:v00001002d00006820sv000017AAsd00003643*
pci:v00001002d00006820sv000017AAsd00003801*
ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X/M375X] (Radeon R9 M275)
+pci:v00001002d00006820sv000017AAsd00003824*
+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X/M375X] (Radeon R9 M375)
+
pci:v00001002d00006821*
ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X/M370X]
@@ -6197,6 +6200,9 @@ pci:v00001002d00006821sv00001028sd000005CC*
pci:v00001002d00006821sv00001028sd000015CC*
ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X/M370X] (FirePro M5100)
+pci:v00001002d00006821sv0000106Bsd00000149*
+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X/M370X] (Radeon R9 M370X Mac Edition)
+
pci:v00001002d00006822*
ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860]
@@ -28940,6 +28946,9 @@ pci:v000010DEd00001140sv00001025sd00000857*
pci:v000010DEd00001140sv00001025sd00000858*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+pci:v000010DEd00001140sv00001025sd00000863*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
pci:v000010DEd00001140sv00001025sd00000868*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
@@ -28979,6 +28988,9 @@ pci:v000010DEd00001140sv00001025sd0000092E*
pci:v000010DEd00001140sv00001025sd0000092F*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+pci:v000010DEd00001140sv00001025sd00000932*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
pci:v000010DEd00001140sv00001025sd0000093A*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
@@ -31698,7 +31710,7 @@ pci:v00001103d00000641*
ID_MODEL_FROM_DATABASE=RocketRAID 640L 4 Port SATA-III Controller
pci:v00001103d00000642*
- ID_MODEL_FROM_DATABASE=RocketRAID 642L 2 Port SATA-III Controller (eSATA)
+ ID_MODEL_FROM_DATABASE=RocketRAID 642L SATA-III Controller (2 eSATA ports + 2 internal SATA ports)
pci:v00001103d00000644*
ID_MODEL_FROM_DATABASE=RocketRAID 644 4 Port SATA-III Controller (eSATA)
@@ -32283,64 +32295,64 @@ pci:v00001106d00003022*
ID_MODEL_FROM_DATABASE=CLE266
pci:v00001106d00003038*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller
pci:v00001106d00003038sv00000925sd00001234*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (onboard UHCI USB 1.1 Controller)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (onboard UHCI USB 1.1 Controller)
pci:v00001106d00003038sv00001019sd00000985*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (P6VXA Motherboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (P6VXA Motherboard)
pci:v00001106d00003038sv00001019sd00000A81*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (L7VTA v1.0 Motherboard (KT400-8235))
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (L7VTA v1.0 Motherboard (KT400-8235))
pci:v00001106d00003038sv00001043sd00008080*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V333 motherboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (A7V333 motherboard)
pci:v00001106d00003038sv00001043sd0000808C*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VT6202 USB2.0 4 port controller)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (VT6202 USB2.0 4 port controller)
pci:v00001106d00003038sv00001043sd000080A1*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V8X-X motherboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (A7V8X-X motherboard)
pci:v00001106d00003038sv00001043sd000080ED*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V600/K8V-X/A8V Deluxe motherboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (A7V600/K8V-X/A8V Deluxe motherboard)
pci:v00001106d00003038sv00001179sd00000001*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (Magnia Z310)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (Magnia Z310)
pci:v00001106d00003038sv00001458sd00005004*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (GA-7VAX Mainboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (GA-7VAX Mainboard)
pci:v00001106d00003038sv00001462sd00005901*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT6 Delta-FIS2R (MS-6590))
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (KT6 Delta-FIS2R (MS-6590))
pci:v00001106d00003038sv00001462sd00007020*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T NEO 2 motherboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (K8T NEO 2 motherboard)
pci:v00001106d00003038sv00001462sd00007094*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T Neo2-F V2.0)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (K8T Neo2-F V2.0)
pci:v00001106d00003038sv00001462sd00007120*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT4AV motherboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (KT4AV motherboard)
pci:v00001106d00003038sv00001462sd00007181*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8MM3-V mainboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (K8MM3-V mainboard)
pci:v00001106d00003038sv0000147Bsd00001407*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KV8-MAX3 motherboard)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (KV8-MAX3 motherboard)
pci:v00001106d00003038sv0000182Dsd0000201D*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (CN-029 USB2.0 4 port PCI Card)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (CN-029 USB2.0 4 port PCI Card)
pci:v00001106d00003038sv00001849sd00003038*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K7VT series Motherboards)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (K7VT series Motherboards)
pci:v00001106d00003038sv000019DAsd0000A179*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (ZBOX nano VD01)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (ZBOX nano VD01)
pci:v00001106d00003038sv00001AF4sd00001100*
- ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (QEMU Virtual Machine)
+ ID_MODEL_FROM_DATABASE=VT82xx/62xx UHCI USB 1.1 Controller (QEMU Virtual Machine)
pci:v00001106d00003040*
ID_MODEL_FROM_DATABASE=VT82C586B ACPI
@@ -32483,6 +32495,9 @@ pci:v00001106d00003059*
pci:v00001106d00003059sv00001019sd00000A81*
ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VTA v1.0 Motherboard (KT400-8235))
+pci:v00001106d00003059sv00001019sd00001841*
+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (M811 (VT8367/VT8235/VT6103) [KT333] motherboard)
+
pci:v00001106d00003059sv00001019sd00001877*
ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8M800-M2 (V2.0) onboard audio)
@@ -32541,7 +32556,7 @@ pci:v00001106d00003059sv0000147Bsd00001407*
ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8-MAX3 motherboard)
pci:v00001106d00003059sv00001695sd0000300C*
- ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (EP-8KRA2+ Mainboard)
+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Realtek ALC655 audio on EP-8KRA series mainboard)
pci:v00001106d00003059sv00001849sd00000850*
ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (ASRock 775Dual-880 Pro onboard audio (Realtek ALC850))
@@ -32562,43 +32577,40 @@ pci:v00001106d00003059sv0000A0A0sd00000342*
ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK86-L motherboard)
pci:v00001106d00003065*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II]
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II]
pci:v00001106d00003065sv00001043sd000080A1*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V8X-X Motherboard)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (A7V8X-X Motherboard)
pci:v00001106d00003065sv00001043sd000080ED*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V600-X Motherboard)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (A7V600-X Motherboard)
pci:v00001106d00003065sv00001106sd00000102*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6102 [Rhine II] Embeded Ethernet Controller on VT8235)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (VT6102/6103 [Rhine II] Ethernet Controller)
pci:v00001106d00003065sv00001186sd00001400*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev A)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (DFE-530TX rev A)
pci:v00001106d00003065sv00001186sd00001401*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev B)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (DFE-530TX rev B)
pci:v00001106d00003065sv000013B9sd00001421*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (LD-10/100AL PCI Fast Ethernet Adapter (rev.B))
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (LD-10/100AL PCI Fast Ethernet Adapter (rev.B))
pci:v00001106d00003065sv00001462sd00007061*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (MS-7061)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (MS-7061)
pci:v00001106d00003065sv00001462sd00007181*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K8MM3-V mainboard)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (K8MM3-V mainboard)
pci:v00001106d00003065sv0000147Bsd00001C09*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (NV7 Motherboard)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (NV7 Motherboard)
pci:v00001106d00003065sv00001695sd00003005*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6103)
-
-pci:v00001106d00003065sv00001695sd0000300C*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (Realtek ALC655 sound chip)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (VT6103)
pci:v00001106d00003065sv00001849sd00003065*
- ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K7VT series Motherboards)
+ ID_MODEL_FROM_DATABASE=VT6102/VT6103 [Rhine-II] (K7VT series Motherboards)
pci:v00001106d00003068*
ID_MODEL_FROM_DATABASE=AC'97 Modem Controller
@@ -32618,6 +32630,9 @@ pci:v00001106d00003091*
pci:v00001106d00003099*
ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333]
+pci:v00001106d00003099sv00001019sd00001841*
+ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (M811 (VT8367/VT8235/VT6103) [KT333] motherboard)
+
pci:v00001106d00003099sv00001043sd00008064*
ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V266-E Mainboard)
@@ -32816,6 +32831,9 @@ pci:v00001106d00003177*
pci:v00001106d00003177sv00001019sd00000A81*
ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (L7VTA v1.0 Motherboard (KT400-8235))
+pci:v00001106d00003177sv00001019sd00001841*
+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (M811 (VT8367/VT8235/VT6103) [KT333] motherboard)
+
pci:v00001106d00003177sv00001043sd0000808C*
ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X motherboard)
@@ -37235,6 +37253,12 @@ pci:v00001186d00004000*
pci:v00001186d00004001*
ID_MODEL_FROM_DATABASE=DGE-550SX PCI-X Gigabit Ethernet Adapter
+pci:v00001186d00004200*
+ ID_MODEL_FROM_DATABASE=DFE-520TX Fast Ethernet PCI Adapter
+
+pci:v00001186d00004200sv00001186sd00001103*
+ ID_MODEL_FROM_DATABASE=DFE-520TX Fast Ethernet PCI Adapter ((rev. C1))
+
pci:v00001186d00004300*
ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter
@@ -46361,6 +46385,9 @@ pci:v0000144Dd0000A820sv00001028sd00001F96*
pci:v0000144Dd0000A820sv00001028sd00001F97*
ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 1600GB)
+pci:v0000144Dd0000A821*
+ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 172X
+
pci:v0000144E*
ID_VENDOR_FROM_DATABASE=OLITEC
@@ -56402,6 +56429,9 @@ pci:v00001B03*
pci:v00001B03d00006100*
ID_MODEL_FROM_DATABASE=DXT/DXTPro Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder
+pci:v00001B03d00007000*
+ ID_MODEL_FROM_DATABASE=D7 Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder
+
pci:v00001B08*
ID_VENDOR_FROM_DATABASE=MSC Vertriebs GmbH
@@ -56492,9 +56522,48 @@ pci:v00001B36d00000100sv00001AF4sd00001100*
pci:v00001B37*
ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB
+pci:v00001B37d00000001*
+ ID_MODEL_FROM_DATABASE=ADQ214
+
+pci:v00001B37d00000003*
+ ID_MODEL_FROM_DATABASE=ADQ114
+
+pci:v00001B37d00000005*
+ ID_MODEL_FROM_DATABASE=ADQ112
+
+pci:v00001B37d0000000E*
+ ID_MODEL_FROM_DATABASE=ADQ108
+
+pci:v00001B37d0000000F*
+ ID_MODEL_FROM_DATABASE=ADQDSP
+
pci:v00001B37d00000014*
ID_MODEL_FROM_DATABASE=ADQ412
+pci:v00001B37d00000015*
+ ID_MODEL_FROM_DATABASE=ADQ212
+
+pci:v00001B37d0000001B*
+ ID_MODEL_FROM_DATABASE=SDR14
+
+pci:v00001B37d0000001C*
+ ID_MODEL_FROM_DATABASE=ADQ1600
+
+pci:v00001B37d0000001E*
+ ID_MODEL_FROM_DATABASE=ADQ208
+
+pci:v00001B37d0000001F*
+ ID_MODEL_FROM_DATABASE=DSU
+
+pci:v00001B37d00000020*
+ ID_MODEL_FROM_DATABASE=ADQ14
+
+pci:v00001B37d00002014*
+ ID_MODEL_FROM_DATABASE=TX320
+
+pci:v00001B37d00002019*
+ ID_MODEL_FROM_DATABASE=S6000
+
pci:v00001B39*
ID_VENDOR_FROM_DATABASE=sTec, Inc.
@@ -56915,11 +56984,47 @@ pci:v00001D44d0000A400*
pci:v00001D5C*
ID_VENDOR_FROM_DATABASE=Fantasia Trading LLC
+pci:v00001D61*
+ ID_VENDOR_FROM_DATABASE=Technobox, Inc.
+
+pci:v00001D65*
+ ID_VENDOR_FROM_DATABASE=Imagine Communications Corp.
+
+pci:v00001D65d000004DE*
+ ID_MODEL_FROM_DATABASE=Taurus/McKinley
+
+pci:v00001D6C*
+ ID_VENDOR_FROM_DATABASE=Atomic Rules LLC
+
+pci:v00001D6Cd00001001*
+ ID_MODEL_FROM_DATABASE=A5PL-E1
+
+pci:v00001D6Cd00001002*
+ ID_MODEL_FROM_DATABASE=A5PL-E7
+
+pci:v00001D6Cd00001003*
+ ID_MODEL_FROM_DATABASE=S5PEDS-AB
+
+pci:v00001D6Cd00001004*
+ ID_MODEL_FROM_DATABASE=KC705-K325
+
+pci:v00001D6Cd00001005*
+ ID_MODEL_FROM_DATABASE=ZC706-Z045
+
+pci:v00001D6Cd00001006*
+ ID_MODEL_FROM_DATABASE=KCU105-KU040
+
+pci:v00001D6Cd00001007*
+ ID_MODEL_FROM_DATABASE=XUSP3S-VU095 [Jasper]
+
+pci:v00001D6Cd00004200*
+ ID_MODEL_FROM_DATABASE=A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument]
+
pci:v00001DE1*
ID_VENDOR_FROM_DATABASE=Tekram Technology Co.,Ltd.
pci:v00001DE1d00000391*
- ID_MODEL_FROM_DATABASE=TRM-S1040
+ ID_MODEL_FROM_DATABASE=TRM-S1040 [DC-315 / DC-395 series]
pci:v00001DE1d00002020*
ID_MODEL_FROM_DATABASE=DC-390
@@ -60267,16 +60372,16 @@ pci:v00008086d00000C4E*
ID_MODEL_FROM_DATABASE=Atom Processor S1200 NTB Primary
pci:v00008086d00000C50*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QuickData Technology Device
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QuickData Technology Device
pci:v00008086d00000C51*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QuickData Technology Device
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QuickData Technology Device
pci:v00008086d00000C52*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QuickData Technology Device
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QuickData Technology Device
pci:v00008086d00000C53*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QuickData Technology Device
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QuickData Technology Device
pci:v00008086d00000C54*
ID_MODEL_FROM_DATABASE=Atom Processor S1200 Internal
@@ -63456,10 +63561,13 @@ pci:v00008086d00001572sv00001137sd0000013B*
ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged NIC X710-4)
pci:v00008086d00001572sv000017AAsd00000000*
- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (ThinkServer XL710 AnyFabric)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (ThinkServer X710 AnyFabric for 10GbE SFP+)
pci:v00008086d00001572sv000017AAsd00004001*
- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (ThinkServer XL710-4 AnyFabric)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (ThinkServer X710-4 AnyFabric for 10GbE SFP+)
+
+pci:v00008086d00001572sv000017AAsd00004002*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (ThinkServer X710-2 AnyFabric for 10GbE SFP+)
pci:v00008086d00001572sv00008086sd00000000*
ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710)
@@ -72072,481 +72180,481 @@ pci:v00008086d00002E96*
ID_MODEL_FROM_DATABASE=4 Series Chipset PT IDER Controller
pci:v00008086d00002F00*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMI2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMI2
pci:v00008086d00002F01*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 0
pci:v00008086d00002F02*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1
pci:v00008086d00002F03*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1
pci:v00008086d00002F04*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2
pci:v00008086d00002F05*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2
pci:v00008086d00002F06*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2
pci:v00008086d00002F07*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2
pci:v00008086d00002F08*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3
pci:v00008086d00002F09*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3
pci:v00008086d00002F0A*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3
pci:v00008086d00002F0B*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3
pci:v00008086d00002F10*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F11*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F12*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F13*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F14*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F15*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F16*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F17*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F18*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F19*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F1A*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F1B*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F1C*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 IIO Debug
pci:v00008086d00002F1D*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCIe Ring Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface
pci:v00008086d00002F1E*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers
pci:v00008086d00002F1F*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers
pci:v00008086d00002F20*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 0
pci:v00008086d00002F21*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 1
pci:v00008086d00002F22*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 2
pci:v00008086d00002F23*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 3
pci:v00008086d00002F24*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 4
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 4
pci:v00008086d00002F25*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 5
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 5
pci:v00008086d00002F26*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 6
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 6
pci:v00008086d00002F27*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DMA Channel 7
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 7
pci:v00008086d00002F28*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Address Map, VTd_Misc, System Management
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Address Map, VTd_Misc, System Management
pci:v00008086d00002F29*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Hot Plug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Hot Plug
pci:v00008086d00002F2A*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 RAS, Control Status and Global Errors
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 RAS, Control Status and Global Errors
pci:v00008086d00002F2C*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 I/O APIC
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 I/O APIC
pci:v00008086d00002F2E*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 RAID 5/6
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 RAID 5/6
pci:v00008086d00002F2F*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 RAID 5/6
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 RAID 5/6
pci:v00008086d00002F30*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Home Agent 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0
pci:v00008086d00002F32*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0
pci:v00008086d00002F33*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1
pci:v00008086d00002F34*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 PCIe Ring Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface
pci:v00008086d00002F36*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring
pci:v00008086d00002F37*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring
pci:v00008086d00002F38*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Home Agent 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 1
pci:v00008086d00002F39*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 I/O Performance Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 I/O Performance Monitoring
pci:v00008086d00002F3A*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 2
pci:v00008086d00002F3E*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring
pci:v00008086d00002F3F*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring
pci:v00008086d00002F40*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 2
pci:v00008086d00002F41*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring
pci:v00008086d00002F43*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 2
pci:v00008086d00002F45*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 2 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 2 Debug
pci:v00008086d00002F46*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 2 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 2 Debug
pci:v00008086d00002F47*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 2 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 2 Debug
pci:v00008086d00002F60*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Home Agent 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 1
pci:v00008086d00002F68*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Target Address, Thermal & RAS Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Target Address, Thermal & RAS Registers
pci:v00008086d00002F6A*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
pci:v00008086d00002F6B*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
pci:v00008086d00002F6C*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
pci:v00008086d00002F6D*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder
pci:v00008086d00002F6E*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO Channel 2/3 Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Channel 2/3 Broadcast
pci:v00008086d00002F6F*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO Global Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Global Broadcast
pci:v00008086d00002F70*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Home Agent 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 Debug
pci:v00008086d00002F71*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers
pci:v00008086d00002F76*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 E3 QPI Link Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 E3 QPI Link Debug
pci:v00008086d00002F78*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Home Agent 1 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 1 Debug
pci:v00008086d00002F79*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Target Address, Thermal & RAS Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Target Address, Thermal & RAS Registers
pci:v00008086d00002F7D*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers
pci:v00008086d00002F7E*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 E3 QPI Link Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 E3 QPI Link Debug
pci:v00008086d00002F80*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0
pci:v00008086d00002F81*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring
pci:v00008086d00002F83*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0
pci:v00008086d00002F85*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 Debug
pci:v00008086d00002F86*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 Debug
pci:v00008086d00002F87*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 Debug
pci:v00008086d00002F88*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 VCU
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 VCU
pci:v00008086d00002F8A*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 VCU
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 VCU
pci:v00008086d00002F90*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1
pci:v00008086d00002F93*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1
pci:v00008086d00002F95*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 1 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 Debug
pci:v00008086d00002F96*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 QPI Link 1 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 Debug
pci:v00008086d00002F98*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002F99*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002F9A*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002F9C*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002FA0*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Home Agent 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0
pci:v00008086d00002FA8*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers
pci:v00008086d00002FAA*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
pci:v00008086d00002FAB*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
pci:v00008086d00002FAC*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
pci:v00008086d00002FAD*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder
pci:v00008086d00002FAE*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO Channel 0/1 Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Channel 0/1 Broadcast
pci:v00008086d00002FAF*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO Global Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Global Broadcast
pci:v00008086d00002FB0*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 Thermal Control
pci:v00008086d00002FB1*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 Thermal Control
pci:v00008086d00002FB2*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 ERROR Registers
pci:v00008086d00002FB3*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 ERROR Registers
pci:v00008086d00002FB4*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 Thermal Control
pci:v00008086d00002FB5*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 Thermal Control
pci:v00008086d00002FB6*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 ERROR Registers
pci:v00008086d00002FB7*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 ERROR Registers
pci:v00008086d00002FB8*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
pci:v00008086d00002FB9*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
pci:v00008086d00002FBA*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
pci:v00008086d00002FBB*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3
pci:v00008086d00002FBC*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
pci:v00008086d00002FBD*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
pci:v00008086d00002FBE*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
pci:v00008086d00002FBF*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1
pci:v00008086d00002FC0*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002FC1*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002FC2*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002FC3*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002FC4*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002FC5*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit
pci:v00008086d00002FD0*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 0 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 0 Thermal Control
pci:v00008086d00002FD1*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 1 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 1 Thermal Control
pci:v00008086d00002FD2*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 0 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 0 ERROR Registers
pci:v00008086d00002FD3*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 1 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 1 ERROR Registers
pci:v00008086d00002FD4*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 2 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 2 Thermal Control
pci:v00008086d00002FD5*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 3 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 3 Thermal Control
pci:v00008086d00002FD6*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 2 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 2 ERROR Registers
pci:v00008086d00002FD7*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 3 ERROR Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 3 ERROR Registers
pci:v00008086d00002FE0*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE1*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE2*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE3*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE4*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE5*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE6*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE7*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE8*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FE9*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FEA*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FEB*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FEC*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FED*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FEE*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FEF*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF0*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF1*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF2*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF3*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF4*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF5*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF6*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF7*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Unicast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers
pci:v00008086d00002FF8*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Buffered Ring Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent
pci:v00008086d00002FF9*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Buffered Ring Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent
pci:v00008086d00002FFA*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Buffered Ring Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent
pci:v00008086d00002FFB*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 Buffered Ring Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent
pci:v00008086d00002FFC*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers
pci:v00008086d00002FFD*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers
pci:v00008086d00002FFE*
- ID_MODEL_FROM_DATABASE=Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers
+ ID_MODEL_FROM_DATABASE=Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers
pci:v00008086d00003165*
ID_MODEL_FROM_DATABASE=Wireless 3165
@@ -74982,487 +75090,487 @@ pci:v00008086d000065FF*
ID_MODEL_FROM_DATABASE=5100 Chipset DMA Engine
pci:v00008086d00006F00*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DMI2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DMI2
pci:v00008086d00006F01*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 0
pci:v00008086d00006F02*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 1
pci:v00008086d00006F03*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 1
pci:v00008086d00006F04*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 2
pci:v00008086d00006F05*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 2
pci:v00008086d00006F06*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 2
pci:v00008086d00006F07*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 2
pci:v00008086d00006F08*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 3
pci:v00008086d00006F09*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 3
pci:v00008086d00006F0A*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 3
pci:v00008086d00006F0B*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon PCI Express Root Port 3
pci:v00008086d00006F10*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F11*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F12*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F13*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F14*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F15*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F16*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F17*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F18*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F19*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F1A*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F1B*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F1C*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Debug
pci:v00008086d00006F1D*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R2PCIe Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R2PCIe Agent
pci:v00008086d00006F1E*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Ubox
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Ubox
pci:v00008086d00006F1F*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Ubox
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Ubox
pci:v00008086d00006F20*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 0
pci:v00008086d00006F21*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 1
pci:v00008086d00006F22*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 2
pci:v00008086d00006F23*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 3
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 3
pci:v00008086d00006F24*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 4
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 4
pci:v00008086d00006F25*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 5
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 5
pci:v00008086d00006F26*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 6
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 6
pci:v00008086d00006F27*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Crystal Beach DMA Channel 7
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Crystal Beach DMA Channel 7
pci:v00008086d00006F28*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Map/VTd_Misc/System Management
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Map/VTd_Misc/System Management
pci:v00008086d00006F29*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO Hot Plug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO Hot Plug
pci:v00008086d00006F2A*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IIO RAS/Control Status/Global Errors
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IIO RAS/Control Status/Global Errors
pci:v00008086d00006F2C*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family I/O APIC
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon I/O APIC
pci:v00008086d00006F30*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Home Agent 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Home Agent 0
pci:v00008086d00006F32*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 0
pci:v00008086d00006F33*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 1
pci:v00008086d00006F34*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R2PCIe Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R2PCIe Agent
pci:v00008086d00006F36*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link 0/1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link 0/1
pci:v00008086d00006F37*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link 0/1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link 0/1
pci:v00008086d00006F38*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Home Agent 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Home Agent 1
pci:v00008086d00006F39*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family IO Performance Monitoring
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon IO Performance Monitoring
pci:v00008086d00006F3A*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 2
pci:v00008086d00006F3E*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link 2
pci:v00008086d00006F3F*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link 2
pci:v00008086d00006F40*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 2
pci:v00008086d00006F41*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link 2
pci:v00008086d00006F43*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 2
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 2
pci:v00008086d00006F45*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 2 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 2 Debug
pci:v00008086d00006F46*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 2 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 2 Debug
pci:v00008086d00006F47*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 2 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 2 Debug
pci:v00008086d00006F60*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Home Agent 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Home Agent 1
pci:v00008086d00006F68*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Target Address/Thermal/RAS
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Target Address/Thermal/RAS
pci:v00008086d00006F6A*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Channel Target Address Decoder
pci:v00008086d00006F6B*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Channel Target Address Decoder
pci:v00008086d00006F6C*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Channel Target Address Decoder
pci:v00008086d00006F6D*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Channel Target Address Decoder
pci:v00008086d00006F6E*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 2/3 Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 2/3 Broadcast
pci:v00008086d00006F6F*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Global Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Global Broadcast
pci:v00008086d00006F70*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Home Agent 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Home Agent 0 Debug
pci:v00008086d00006F71*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Target Address/Thermal/RAS
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Target Address/Thermal/RAS
pci:v00008086d00006F76*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link Debug
pci:v00008086d00006F78*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Home Agent 1 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Home Agent 1 Debug
pci:v00008086d00006F79*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Target Address/Thermal/RAS
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Target Address/Thermal/RAS
pci:v00008086d00006F7D*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Ubox
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Ubox
pci:v00008086d00006F7E*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link Debug
pci:v00008086d00006F80*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 0
pci:v00008086d00006F81*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family R3 QPI Link 0/1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon R3 QPI Link 0/1
pci:v00008086d00006F83*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 0
pci:v00008086d00006F85*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 0 Debug
pci:v00008086d00006F86*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 0 Debug
pci:v00008086d00006F87*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 0 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 0 Debug
pci:v00008086d00006F88*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006F8A*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006F90*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 1
pci:v00008086d00006F93*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 1
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 1
pci:v00008086d00006F95*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 1 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 1 Debug
pci:v00008086d00006F96*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family QPI Link 1 Debug
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon QPI Link 1 Debug
pci:v00008086d00006F98*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006F99*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006F9A*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006F9C*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FA0*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Home Agent 0
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Home Agent 0
pci:v00008086d00006FA8*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Target Address/Thermal/RAS
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Target Address/Thermal/RAS
pci:v00008086d00006FAA*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel Target Address Decoder
pci:v00008086d00006FAB*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel Target Address Decoder
pci:v00008086d00006FAC*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel Target Address Decoder
pci:v00008086d00006FAD*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel Target Address Decoder
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel Target Address Decoder
pci:v00008086d00006FAE*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 0/1 Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 0/1 Broadcast
pci:v00008086d00006FAF*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Global Broadcast
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Global Broadcast
pci:v00008086d00006FB0*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 0 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 0 Thermal Control
pci:v00008086d00006FB1*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 1 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 1 Thermal Control
pci:v00008086d00006FB2*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 0 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 0 Error
pci:v00008086d00006FB3*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 1 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 1 Error
pci:v00008086d00006FB4*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 2 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 2 Thermal Control
pci:v00008086d00006FB5*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 3 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 3 Thermal Control
pci:v00008086d00006FB6*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 2 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 2 Error
pci:v00008086d00006FB7*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 0 - Channel 3 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 0 - Channel 3 Error
pci:v00008086d00006FB8*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 2/3 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 2/3 Interface
pci:v00008086d00006FB9*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 2/3 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 2/3 Interface
pci:v00008086d00006FBA*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 2/3 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 2/3 Interface
pci:v00008086d00006FBB*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 2/3 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 2/3 Interface
pci:v00008086d00006FBC*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 0/1 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 0/1 Interface
pci:v00008086d00006FBD*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 0/1 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 0/1 Interface
pci:v00008086d00006FBE*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 0/1 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 0/1 Interface
pci:v00008086d00006FBF*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family DDRIO Channel 0/1 Interface
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon DDRIO Channel 0/1 Interface
pci:v00008086d00006FC0*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC1*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC2*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC3*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC4*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC5*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC6*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC7*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC8*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FC9*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FCA*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FCB*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FCC*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FCD*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FCE*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FCF*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Power Control Unit
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Power Control Unit
pci:v00008086d00006FD0*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 0 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 0 Thermal Control
pci:v00008086d00006FD1*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 1 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 1 Thermal Control
pci:v00008086d00006FD2*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 0 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 0 Error
pci:v00008086d00006FD3*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 1 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 1 Error
pci:v00008086d00006FD4*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 2 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 2 Thermal Control
pci:v00008086d00006FD5*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 3 Thermal Control
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 3 Thermal Control
pci:v00008086d00006FD6*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 2 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 2 Error
pci:v00008086d00006FD7*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Memory Controller 1 - Channel 3 Error
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Memory Controller 1 - Channel 3 Error
pci:v00008086d00006FE0*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE1*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE2*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE3*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE4*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE5*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE6*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE7*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE8*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FE9*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FEA*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FEB*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FEC*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FED*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FEE*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FEF*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FF0*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FF1*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FF8*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FF9*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FFA*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FFB*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FFC*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FFD*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00006FFE*
- ID_MODEL_FROM_DATABASE=Xeon Processor D Family Caching Agent
+ ID_MODEL_FROM_DATABASE=Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon Caching Agent
pci:v00008086d00007000*
ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II]
@@ -77436,10 +77544,10 @@ pci:v00009004d00005075*
ID_MODEL_FROM_DATABASE=AIC-755x
pci:v00009004d00005078*
- ID_MODEL_FROM_DATABASE=AIC-7850
+ ID_MODEL_FROM_DATABASE=AIC-7850T/7856T [AVA-2902/4/6 / AHA-2910]
pci:v00009004d00005078sv00009004sd00007850*
- ID_MODEL_FROM_DATABASE=AIC-7850 (AHA-2904/Integrated AIC-7850)
+ ID_MODEL_FROM_DATABASE=AIC-7850T/7856T [AVA-2902/4/6 / AHA-2910] (AIC-7850T/7856T [AVA-290x / AHA-2910])
pci:v00009004d00005175*
ID_MODEL_FROM_DATABASE=AIC-755x
@@ -77586,7 +77694,7 @@ pci:v00009004d00007078*
ID_MODEL_FROM_DATABASE=AHA-294x / AIC-7870
pci:v00009004d00007178*
- ID_MODEL_FROM_DATABASE=AHA-2940/2940W / AIC-7871
+ ID_MODEL_FROM_DATABASE=AIC-7870P/7871 [AHA-2940/W/S76]
pci:v00009004d00007278*
ID_MODEL_FROM_DATABASE=AHA-3940/3940W / AIC-7872
@@ -77703,10 +77811,10 @@ pci:v00009004d00008078sv00009004sd00007880*
ID_MODEL_FROM_DATABASE=AIC-7880U (AIC-7880P Ultra/Ultra Wide SCSI Chipset)
pci:v00009004d00008178*
- ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U
+ ID_MODEL_FROM_DATABASE=AIC-7870P/7881U [AHA-2940U/UW/D/S76]
pci:v00009004d00008178sv00009004sd00007881*
- ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U (AHA-2940UW SCSI Host Adapter)
+ ID_MODEL_FROM_DATABASE=AIC-7870P/7881U [AHA-2940U/UW/D/S76] (AHA-2940UW SCSI Host Adapter)
pci:v00009004d00008278*
ID_MODEL_FROM_DATABASE=AHA-3940U/UW/UWD / AIC-7882U
@@ -77757,7 +77865,7 @@ pci:v00009005d00000010sv00009005sd0000A100*
ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller)
pci:v00009005d00000010sv00009005sd0000A180*
- ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2W SCSI Controller)
+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AIC-3860Q [AHA-2940U2W/GE] SCSI Controller)
pci:v00009005d00000010sv00009005sd0000E100*
ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2950U2B SCSI Controller)
diff --git a/hwdb/20-usb-vendor-model.hwdb b/hwdb/20-usb-vendor-model.hwdb
index 4d61dd7690..151ba5ce04 100644
--- a/hwdb/20-usb-vendor-model.hwdb
+++ b/hwdb/20-usb-vendor-model.hwdb
@@ -470,6 +470,9 @@ usb:v03F0p0121*
usb:v03F0p0122*
ID_MODEL_FROM_DATABASE=HID Internet Keyboard
+usb:v03F0p0125*
+ ID_MODEL_FROM_DATABASE=DAT72 Tape
+
usb:v03F0p0139*
ID_MODEL_FROM_DATABASE=Barcode Scanner 4430
@@ -767,6 +770,9 @@ usb:v03F0p1211*
usb:v03F0p1217*
ID_MODEL_FROM_DATABASE=LaserJet 2300L
+usb:v03F0p1227*
+ ID_MODEL_FROM_DATABASE=Virtual CD-ROM
+
usb:v03F0p1302*
ID_MODEL_FROM_DATABASE=PhotoSmart 370 series
@@ -2060,6 +2066,9 @@ usb:v0402p5636*
usb:v0402p5637*
ID_MODEL_FROM_DATABASE=M5637 IDE Controller
+usb:v0402p5642*
+ ID_MODEL_FROM_DATABASE=Storage Device
+
usb:v0402p5661*
ID_MODEL_FROM_DATABASE=M5661 MP3 player
@@ -3884,6 +3893,9 @@ usb:v041Ep4087*
usb:v041Ep4088*
ID_MODEL_FROM_DATABASE=Live! Cam Chat HD [VF0700]
+usb:v041Ep4095*
+ ID_MODEL_FROM_DATABASE=Live! Cam Sync HD [VF0770]
+
usb:v041Ep4100*
ID_MODEL_FROM_DATABASE=Nomad Jukebox 2
@@ -8999,6 +9011,9 @@ usb:v0483p3747*
usb:v0483p3748*
ID_MODEL_FROM_DATABASE=ST-LINK/V2
+usb:v0483p374B*
+ ID_MODEL_FROM_DATABASE=ST-LINK/V2.1 (Nucleo-F103RB)
+
usb:v0483p4810*
ID_MODEL_FROM_DATABASE=ISDN adapter
@@ -9326,6 +9341,9 @@ usb:v0499p103C*
usb:v0499p1054*
ID_MODEL_FROM_DATABASE=S90XS Keyboard/Music Synthesizer
+usb:v0499p160F*
+ ID_MODEL_FROM_DATABASE=P-105
+
usb:v0499p2000*
ID_MODEL_FROM_DATABASE=DGP-7
@@ -10226,6 +10244,9 @@ usb:v04A9p1729*
usb:v04A9p172B*
ID_MODEL_FROM_DATABASE=MP140 ser
+usb:v04A9p1736*
+ ID_MODEL_FROM_DATABASE=PIXMA MX320 series
+
usb:v04A9p173B*
ID_MODEL_FROM_DATABASE=PIXMA MP270 All-In-One Printer
@@ -10241,6 +10262,9 @@ usb:v04A9p1748*
usb:v04A9p174D*
ID_MODEL_FROM_DATABASE=MX360 ser
+usb:v04A9p176D*
+ ID_MODEL_FROM_DATABASE=PIXMA MG2550
+
usb:v04A9p1900*
ID_MODEL_FROM_DATABASE=CanoScan LiDE 90
@@ -12866,12 +12890,18 @@ usb:v04CAp1766*
usb:v04CAp2004*
ID_MODEL_FROM_DATABASE=Bluetooth 4.0 [Broadcom BCM20702A0]
+usb:v04CAp2006*
+ ID_MODEL_FROM_DATABASE=Broadcom BCM43142A0 Bluetooth Device
+
usb:v04CAp300B*
ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth
usb:v04CAp300D*
ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth
+usb:v04CAp300F*
+ ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth
+
usb:v04CAp7025*
ID_MODEL_FROM_DATABASE=HP HD Webcam
@@ -13361,6 +13391,9 @@ usb:v04D8pFC1E*
usb:v04D8pFC92*
ID_MODEL_FROM_DATABASE=Open Bench Logic Sniffer
+usb:v04D8pFFEE*
+ ID_MODEL_FROM_DATABASE=Devantech USB-ISS
+
usb:v04D8pFFEF*
ID_MODEL_FROM_DATABASE=PICoPLC [APStech]
@@ -14390,6 +14423,9 @@ usb:v04E8p60C4*
usb:v04E8p6124*
ID_MODEL_FROM_DATABASE=D3 Station External Hard Drive
+usb:v04E8p6125*
+ ID_MODEL_FROM_DATABASE=D3 Station External Hard Drive
+
usb:v04E8p61B6*
ID_MODEL_FROM_DATABASE=M3 Portable Hard Drive 1TB
@@ -15524,6 +15560,9 @@ usb:v04F9p0248*
usb:v04F9p0273*
ID_MODEL_FROM_DATABASE=DCP-7057 scanner/printer
+usb:v04F9p029F*
+ ID_MODEL_FROM_DATABASE=MFC-9325CW Multifunction Printer
+
usb:v04F9p02B3*
ID_MODEL_FROM_DATABASE=MFC J4510DW
@@ -16332,7 +16371,7 @@ usb:v0529*
ID_VENDOR_FROM_DATABASE=Aladdin Knowledge Systems
usb:v0529p0001*
- ID_MODEL_FROM_DATABASE=HASP v0.06
+ ID_MODEL_FROM_DATABASE=HASP copy protection dongle
usb:v0529p030B*
ID_MODEL_FROM_DATABASE=eToken R1 v3.1.3.x
@@ -17264,6 +17303,9 @@ usb:v0550p000B*
usb:v0550p014E*
ID_MODEL_FROM_DATABASE=CM215b Printer
+usb:v0550p0165*
+ ID_MODEL_FROM_DATABASE=DocuPrint M215b
+
usb:v0551*
ID_VENDOR_FROM_DATABASE=CompuTrend Systems, Inc.
@@ -18455,6 +18497,9 @@ usb:v057Cp8403*
usb:v057Cp84FF*
ID_MODEL_FROM_DATABASE=AVM Fritz!WLAN USB N (in CD-ROM-mode)
+usb:v057Cp8501*
+ ID_MODEL_FROM_DATABASE=FRITZ WLAN N v2 [RT5572/rt2870.bin]
+
usb:v057D*
ID_VENDOR_FROM_DATABASE=Shark Multimedia, Inc.
@@ -19820,6 +19865,9 @@ usb:v059Fp1052*
usb:v059Fp1064*
ID_MODEL_FROM_DATABASE=Rugged 16 and 32 GB
+usb:v059Fp106E*
+ ID_MODEL_FROM_DATABASE=Porsche Design Desktop Drive
+
usb:v059FpA601*
ID_MODEL_FROM_DATABASE=HardDrive
@@ -20702,6 +20750,9 @@ usb:v05C6p6503*
usb:v05C6p6613*
ID_MODEL_FROM_DATABASE=Onda H600/N501HS ZTE MF330
+usb:v05C6p6764*
+ ID_MODEL_FROM_DATABASE=A0001 Phone [OnePlus One]
+
usb:v05C6p9000*
ID_MODEL_FROM_DATABASE=SIMCom SIM5218 modem
@@ -22664,6 +22715,9 @@ usb:v064E*
usb:v064Ep2100*
ID_MODEL_FROM_DATABASE=Sony Visual Communication Camera
+usb:v064Ep9700*
+ ID_MODEL_FROM_DATABASE=Asus Integrated Webcam
+
usb:v064EpA100*
ID_MODEL_FROM_DATABASE=Acer OrbiCam
@@ -26288,6 +26342,9 @@ usb:v0781p5571*
usb:v0781p5576*
ID_MODEL_FROM_DATABASE=Cruzer Facet
+usb:v0781p557D*
+ ID_MODEL_FROM_DATABASE=Cruzer Force (64GB)
+
usb:v0781p5580*
ID_MODEL_FROM_DATABASE=SDCZ80 Flash Drive
@@ -29213,6 +29270,12 @@ usb:v08A9p0014*
usb:v08A9p0015*
ID_MODEL_FROM_DATABASE=USBee DX
+usb:v08AC*
+ ID_VENDOR_FROM_DATABASE=Macraigor Systems LLC
+
+usb:v08ACp2024*
+ ID_MODEL_FROM_DATABASE=usbWiggler
+
usb:v08AE*
ID_VENDOR_FROM_DATABASE=Macally (Mace Group, Inc.)
@@ -30095,6 +30158,12 @@ usb:v0908p01F4*
usb:v0908p01FE*
ID_MODEL_FROM_DATABASE=SIMATIC NET PC Adapter A2
+usb:v0908p04B1*
+ ID_MODEL_FROM_DATABASE=MediSET
+
+usb:v0908p04B2*
+ ID_MODEL_FROM_DATABASE=NC interface
+
usb:v0908p2701*
ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA
@@ -31016,6 +31085,9 @@ usb:v0951p1607*
usb:v0951p160D*
ID_MODEL_FROM_DATABASE=DataTraveler Vault Privacy
+usb:v0951p160E*
+ ID_MODEL_FROM_DATABASE=DT110P/1GB Capless
+
usb:v0951p1613*
ID_MODEL_FROM_DATABASE=DataTraveler DT101C Flash Drive
@@ -32306,6 +32378,9 @@ usb:v0A5Cp2154*
usb:v0A5Cp216C*
ID_MODEL_FROM_DATABASE=BCM43142A0 Bluetooth Device
+usb:v0A5Cp216F*
+ ID_MODEL_FROM_DATABASE=BCM20702A0 Bluetooth
+
usb:v0A5Cp217D*
ID_MODEL_FROM_DATABASE=HP Bluethunder
@@ -32381,6 +32456,9 @@ usb:v0A5Cp5802*
usb:v0A5Cp5803*
ID_MODEL_FROM_DATABASE=BCM5880 Secure Applications Processor with secure keyboard
+usb:v0A5Cp5804*
+ ID_MODEL_FROM_DATABASE=BCM5880 Secure Applications Processor with fingerprint swipe sensor
+
usb:v0A5Cp6300*
ID_MODEL_FROM_DATABASE=Pirelli Remote NDIS Device
@@ -36800,6 +36878,9 @@ usb:v0CF2p6220*
usb:v0CF2p6225*
ID_MODEL_FROM_DATABASE=SD card reader (UB6225)
+usb:v0CF2p6230*
+ ID_MODEL_FROM_DATABASE=SD Card Reader (UB623X)
+
usb:v0CF2p6250*
ID_MODEL_FROM_DATABASE=SD card reader (UB6250)
@@ -37217,6 +37298,9 @@ usb:v0D62p0003*
usb:v0D62p0004*
ID_MODEL_FROM_DATABASE=Keyboard
+usb:v0D62p001B*
+ ID_MODEL_FROM_DATABASE=Keyboard
+
usb:v0D62p001C*
ID_MODEL_FROM_DATABASE=Benq X120 Internet Keyboard Pro
@@ -37478,6 +37562,9 @@ usb:v0D8Cp010F*
usb:v0D8Cp0115*
ID_MODEL_FROM_DATABASE=CM108 Audio Controller
+usb:v0D8Cp0139*
+ ID_MODEL_FROM_DATABASE=Multimedia Headset [Gigaware by Ignition L.P.]
+
usb:v0D8Cp013C*
ID_MODEL_FROM_DATABASE=CM108 Audio Controller
@@ -37892,6 +37979,9 @@ usb:v0DB5p013A*
usb:v0DB5p013B*
ID_MODEL_FROM_DATABASE=LSR116 HID
+usb:v0DB5p0160*
+ ID_MODEL_FROM_DATABASE=NFC and Smartcard Module (NSM)
+
usb:v0DB7*
ID_VENDOR_FROM_DATABASE=ELCON Systemtechnik
@@ -38426,6 +38516,9 @@ usb:v0E20*
usb:v0E20p0101*
ID_MODEL_FROM_DATABASE=NoteTaker
+usb:v0E20p0200*
+ ID_MODEL_FROM_DATABASE=Seiko Instruments InkLink Handwriting System
+
usb:v0E21*
ID_VENDOR_FROM_DATABASE=Cowon Systems, Inc.
@@ -39323,6 +39416,9 @@ usb:v0F39*
usb:v0F39p0876*
ID_MODEL_FROM_DATABASE=Keyboard [87 Francium Pro]
+usb:v0F39p1086*
+ ID_MODEL_FROM_DATABASE=DK2108SZ Keyboard [Ducky Zero]
+
usb:v0F3D*
ID_VENDOR_FROM_DATABASE=Airprime, Incorporated
@@ -40149,7 +40245,7 @@ usb:v1004p61FE*
ID_MODEL_FROM_DATABASE=Optimus Android Phone [USB tethering mode]
usb:v1004p6300*
- ID_MODEL_FROM_DATABASE=Optimus Android Phone
+ ID_MODEL_FROM_DATABASE=G2/Optimus Android Phone
usb:v1004p631C*
ID_MODEL_FROM_DATABASE=G2/Optimus Android Phone [MTP mode]
@@ -40163,6 +40259,12 @@ usb:v1004p631E*
usb:v1004p631F*
ID_MODEL_FROM_DATABASE=Optimus Android Phone (Charge Mode)
+usb:v1004p633E*
+ ID_MODEL_FROM_DATABASE=G2 Android Phone [MTP mode]
+
+usb:v1004p6344*
+ ID_MODEL_FROM_DATABASE=G2 Android Phone [tethering mode]
+
usb:v1004p6356*
ID_MODEL_FROM_DATABASE=Optimus Android Phone [Virtual CD mode]
@@ -44880,7 +44982,7 @@ usb:v152Dp3562*
ID_MODEL_FROM_DATABASE=JMS567 SATA 6.0Gb/s bridge
usb:v152Dp3569*
- ID_MODEL_FROM_DATABASE=ATA/ATAPI Bridge [AdPlus SuperVer]
+ ID_MODEL_FROM_DATABASE=JMS566 SATA 3Gb/s bridge
usb:v152E*
ID_VENDOR_FROM_DATABASE=LG (HLDS)
@@ -46031,6 +46133,9 @@ usb:v1687p5289*
usb:v1687p6211*
ID_MODEL_FROM_DATABASE=FlashDisk
+usb:v1687p6213*
+ ID_MODEL_FROM_DATABASE=FlashDisk
+
usb:v1688*
ID_VENDOR_FROM_DATABASE=Saab AB
@@ -49040,6 +49145,9 @@ usb:v1BCE*
usb:v1BCF*
ID_VENDOR_FROM_DATABASE=Sunplus Innovation Technology Inc.
+usb:v1BCFp0005*
+ ID_MODEL_FROM_DATABASE=Optical Mouse
+
usb:v1BCFp0007*
ID_MODEL_FROM_DATABASE=Optical Mouse
@@ -49055,12 +49163,30 @@ usb:v1BCFp05CF*
usb:v1BCFp0C31*
ID_MODEL_FROM_DATABASE=SPIF30x Serial-ATA bridge
+usb:v1BCFp2880*
+ ID_MODEL_FROM_DATABASE=Dell HD Webcam
+
usb:v1BCFp2885*
ID_MODEL_FROM_DATABASE=ASUS Webcam
usb:v1BCFp2888*
ID_MODEL_FROM_DATABASE=HP Universal Camera
+usb:v1BCFp28A2*
+ ID_MODEL_FROM_DATABASE=Dell Integrated Webcam
+
+usb:v1BCFp28A6*
+ ID_MODEL_FROM_DATABASE=DELL XPS Integrated Webcam
+
+usb:v1BCFp28AE*
+ ID_MODEL_FROM_DATABASE=Laptop Integrated Webcam HD
+
+usb:v1BCFp28BD*
+ ID_MODEL_FROM_DATABASE=Dell Integrated HD Webcam
+
+usb:v1BCFp2985*
+ ID_MODEL_FROM_DATABASE=Laptop Integrated Webcam HD
+
usb:v1BCFp2B83*
ID_MODEL_FROM_DATABASE=Laptop Integrated Webcam FHD
@@ -49868,6 +49994,9 @@ usb:v1F4D*
usb:v1F4DpB803*
ID_MODEL_FROM_DATABASE=Lifeview LV5TDLX DVB-T [RTL2832U]
+usb:v1F4DpD220*
+ ID_MODEL_FROM_DATABASE=Geniatech T220 DVB-T2 TV Stick
+
usb:v1F6F*
ID_VENDOR_FROM_DATABASE=Aliph
@@ -50141,6 +50270,12 @@ usb:v2001pF118*
usb:v2002*
ID_VENDOR_FROM_DATABASE=DAP Technologies
+usb:v2003*
+ ID_VENDOR_FROM_DATABASE=detectomat
+
+usb:v2003pEA61*
+ ID_MODEL_FROM_DATABASE=dc3500
+
usb:v200C*
ID_VENDOR_FROM_DATABASE=Reloop
@@ -50237,6 +50372,12 @@ usb:v2019pED17*
usb:v2019pED18*
ID_MODEL_FROM_DATABASE=GW-USHyper300 / GW-USH300N 802.11bgn Wireless Adapter [Realtek RTL8191SU]
+usb:v203D*
+ ID_VENDOR_FROM_DATABASE=Encore Electronics Inc.
+
+usb:v203Dp1480*
+ ID_MODEL_FROM_DATABASE=ENUWI-N3 [802.11n Wireless N150 Adapter]
+
usb:v2040*
ID_VENDOR_FROM_DATABASE=Hauppauge
@@ -50372,6 +50513,18 @@ usb:v2047p0855*
usb:v2047p0964*
ID_MODEL_FROM_DATABASE=Inventio Software MSP430
+usb:v2058*
+ ID_VENDOR_FROM_DATABASE=Nano River Technology
+
+usb:v2058p2058*
+ ID_MODEL_FROM_DATABASE=ViperBoard I2C, SPI, GPIO interface
+
+usb:v2077*
+ ID_VENDOR_FROM_DATABASE=Taicang T&W Electronics Co. Ltd
+
+usb:v2077p9002*
+ ID_MODEL_FROM_DATABASE=W1M100 HSPA/WCDMA Module
+
usb:v2080*
ID_VENDOR_FROM_DATABASE=Barnes & Noble
@@ -50387,6 +50540,9 @@ usb:v2080p0003*
usb:v2080p0004*
ID_MODEL_FROM_DATABASE=NOOK Tablet
+usb:v2086*
+ ID_VENDOR_FROM_DATABASE=SIMPASS
+
usb:v2087*
ID_VENDOR_FROM_DATABASE=Cando
@@ -50453,18 +50609,60 @@ usb:v20B7pC25B*
usb:v20B7pCB72*
ID_MODEL_FROM_DATABASE=ben-wpan, cntr
+usb:v20CE*
+ ID_VENDOR_FROM_DATABASE=Minicircuits
+
+usb:v20CEp0012*
+ ID_MODEL_FROM_DATABASE=RF Sythesizer 250-4200MHz model SSG-4000LH
+
+usb:v20CEp0021*
+ ID_MODEL_FROM_DATABASE=RF Switch Matrix
+
+usb:v20CEp0022*
+ ID_MODEL_FROM_DATABASE=I/O Controller
+
usb:v20DF*
ID_VENDOR_FROM_DATABASE=Simtec Electronics
usb:v20DFp0001*
ID_MODEL_FROM_DATABASE=Entropy Key [UDEKEY01]
+usb:v20F1*
+ ID_VENDOR_FROM_DATABASE=NET New Electronic Technology GmbH
+
+usb:v20F1p0101*
+ ID_MODEL_FROM_DATABASE=iCube3 Camera
+
usb:v20F4*
ID_VENDOR_FROM_DATABASE=TRENDnet
usb:v20F4p648B*
ID_MODEL_FROM_DATABASE=TEW-648UBM 802.11n 150Mbps Micro Wireless N Adapter [Realtek RTL8188CUS]
+usb:v20F7*
+ ID_VENDOR_FROM_DATABASE=XIMEA
+
+usb:v20F7pA003*
+ ID_MODEL_FROM_DATABASE=Subminiature 5Mpix B/W Camera, MU9PM-MH
+
+usb:v2100*
+ ID_VENDOR_FROM_DATABASE=RT Systems
+
+usb:v2100p9E52*
+ ID_MODEL_FROM_DATABASE=Yaesu VX-7
+
+usb:v2100p9E54*
+ ID_MODEL_FROM_DATABASE=CT29B Radio Cable
+
+usb:v2100p9E57*
+ ID_MODEL_FROM_DATABASE=RTS01 Radio Cable
+
+usb:v2100p9E5D*
+ ID_MODEL_FROM_DATABASE=K4Y Radio Cable
+
+usb:v2100p9E5F*
+ ID_MODEL_FROM_DATABASE=FT232RL [RTS05 Serial Cable]
+
usb:v2101*
ID_VENDOR_FROM_DATABASE=ActionStar
@@ -50501,6 +50699,18 @@ usb:v2109p3431*
usb:v2109p8110*
ID_MODEL_FROM_DATABASE=Hub
+usb:v2113*
+ ID_VENDOR_FROM_DATABASE=Softkinetic
+
+usb:v2113p0137*
+ ID_MODEL_FROM_DATABASE=DepthSense 311 (3D)
+
+usb:v2113p0145*
+ ID_MODEL_FROM_DATABASE=DepthSense 325
+
+usb:v2113p8000*
+ ID_MODEL_FROM_DATABASE=DepthSense 311 (Color)
+
usb:v2149*
ID_VENDOR_FROM_DATABASE=Advanced Silicon S.A.
@@ -51635,6 +51845,12 @@ usb:v3579*
usb:v3579p6901*
ID_MODEL_FROM_DATABASE=Media Reader
+usb:v357D*
+ ID_VENDOR_FROM_DATABASE=Sharkoon
+
+usb:v357Dp7788*
+ ID_MODEL_FROM_DATABASE=QuickPort XT
+
usb:v3636*
ID_VENDOR_FROM_DATABASE=InVibro
@@ -52427,6 +52643,12 @@ usb:v55AApB204*
usb:v55AApB207*
ID_MODEL_FROM_DATABASE=Memory Stick Reader
+usb:v5654*
+ ID_VENDOR_FROM_DATABASE=Gotview
+
+usb:v5654pCA42*
+ ID_MODEL_FROM_DATABASE=MasterHD 3
+
usb:v5656*
ID_VENDOR_FROM_DATABASE=Uni-Trend Group Limited
@@ -52706,6 +52928,12 @@ usb:v734Cp5920*
usb:v734Cp5928*
ID_MODEL_FROM_DATABASE=Q-Box II DVB-S2 HD
+usb:v7373*
+ ID_VENDOR_FROM_DATABASE=Beijing STONE Technology Co. Ltd.
+
+usb:v7373p5740*
+ ID_MODEL_FROM_DATABASE=Intelligent TFT-LCD Module
+
usb:v7392*
ID_VENDOR_FROM_DATABASE=Edimax Technology Co., Ltd
@@ -52991,6 +53219,12 @@ usb:v9AC4*
usb:v9AC4p4B8F*
ID_MODEL_FROM_DATABASE=ProxMark-3 RFID Instrument
+usb:v9E88*
+ ID_VENDOR_FROM_DATABASE=Marvell Semiconductor, Inc.
+
+usb:v9E88p9E8F*
+ ID_MODEL_FROM_DATABASE=Plug Computer Basic [SheevaPlug]
+
usb:vA128*
ID_VENDOR_FROM_DATABASE=AnMo Electronics Corp. / Dino-Lite (?)
diff --git a/man/libudev.xml b/man/libudev.xml
new file mode 100644
index 0000000000..5660b9d990
--- /dev/null
+++ b/man/libudev.xml
@@ -0,0 +1,125 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="libudev"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>libudev</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>libudev</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>libudev</refname>
+ <refpurpose>API for enumerating and introspecting local devices</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+ </funcsynopsis>
+
+ <cmdsynopsis>
+ <command>pkg-config --cflags --libs libudev</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><filename>libudev.h</filename> provides APIs to introspect
+ and enumerate devices on the local system.</para>
+
+ <para>All functions require a libudev context to operate. This
+ context can be create via
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
+ It is used to track library state and link objects together. No
+ global state is used by libudev, everything is always linked to
+ a udev context. Furthermore, multiple different udev contexts can
+ be used in parallel by multiple threads. However, a single context
+ must not be accessed by multiple threads in parallel. The caller
+ is responsible of providing suitable locking if they intend to use
+ it from multiple threads.</para>
+
+ <para>To introspect a local device on a system, a udev device
+ object can be created via
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ and friends. The device object allows to query current state,
+ read and write attributes and lookup properties of the device in
+ question.</para>
+
+ <para>To enumerate local devices on the system, an enumeration
+ object can be created via
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
+
+ <para>To monitor the local system for hotplugged or unplugged
+ devices, a monitor can be created via
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
+
+ <para>Whenever libudev returns a list of objects, the
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ API should be used to iterate, access and modify those lists.</para>
+
+ <para>Furthermore, libudev also exports legacy APIs that should
+ not be used by new software (and as such are not documented as
+ part of this manual). This includes the hardware-database known
+ as <constant>udev_hwdb</constant> (please use the new
+ <citerefentry><refentrytitle>sd-hwdb</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ API instead) and the <constant>udev_queue</constant> object to
+ query the udev-daemon (which should not be used by new software
+ at all).</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd-device</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd-hwdb</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/systemd-bus-proxyd.xml b/man/systemd-bus-proxyd.xml
index bbcf3d0981..f7b94cd481 100644
--- a/man/systemd-bus-proxyd.xml
+++ b/man/systemd-bus-proxyd.xml
@@ -24,7 +24,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-bus-proxyd" conditional="ENABLE_KDBUS"
+<refentry id="systemd-bus-proxyd"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
diff --git a/man/systemd-bus-proxyd@.service.xml b/man/systemd-bus-proxyd@.service.xml
index 9dabc4dd5f..4ac6ba040c 100644
--- a/man/systemd-bus-proxyd@.service.xml
+++ b/man/systemd-bus-proxyd@.service.xml
@@ -24,7 +24,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-bus-proxyd@.service" conditional='ENABLE_KDBUS'>
+<refentry id="systemd-bus-proxyd@.service">
<refentryinfo>
<title>systemd-bus-proxyd@.service</title>
diff --git a/man/systemd-cgtop.xml b/man/systemd-cgtop.xml
index d14564480d..969edd055e 100644
--- a/man/systemd-cgtop.xml
+++ b/man/systemd-cgtop.xml
@@ -85,6 +85,11 @@
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
+ <para>The CPU load value can be between 0 and 100 times the number of
+ processors the system has. For example, if the system has 8 processors,
+ the CPU load value is going to be between 0% and 800%. The number of
+ processors can be found in <literal>/proc/cpuinfo</literal>.</para>
+
<para>To emphasize this: unless
<literal>CPUAccounting=1</literal>,
<literal>MemoryAccounting=1</literal> and
diff --git a/man/systemd.swap.xml b/man/systemd.swap.xml
index d3ddc1ab4d..4f3f371ae3 100644
--- a/man/systemd.swap.xml
+++ b/man/systemd.swap.xml
@@ -180,7 +180,7 @@
<listitem><para>Swap priority to use when activating the swap
device or file. This takes an integer. This setting is
- optional and ignored when priotiry is set by <option>pri=</option> in the
+ optional and ignored when priority is set by <option>pri=</option> in the
<varname>Options=</varname> option.</para></listitem>
</varlistentry>
diff --git a/man/udev_device_get_syspath.xml b/man/udev_device_get_syspath.xml
new file mode 100644
index 0000000000..b3062ae4a8
--- /dev/null
+++ b/man/udev_device_get_syspath.xml
@@ -0,0 +1,207 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_device_get_syspath"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_device_get_syspath</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_device_get_syspath</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_device_get_syspath</refname>
+ <refname>udev_device_get_sysname</refname>
+ <refname>udev_device_get_sysnum</refname>
+ <refname>udev_device_get_devpath</refname>
+ <refname>udev_device_get_devnode</refname>
+ <refname>udev_device_get_devnum</refname>
+ <refname>udev_device_get_devtype</refname>
+ <refname>udev_device_get_subsystem</refname>
+ <refname>udev_device_get_driver</refname>
+ <refname>udev_device_get_udev</refname>
+ <refname>udev_device_get_parent</refname>
+ <refname>udev_device_get_parent_with_subsystem_devtype</refname>
+ <refname>udev_device_get_is_initialized</refname>
+ <refname>udev_device_get_action</refname>
+
+ <refpurpose>Query device properties</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_syspath</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_sysname</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_sysnum</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_devpath</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_devnode</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>dev_t <function>udev_device_get_devnum</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_devtype</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_subsystem</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_driver</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev *<function>udev_device_get_udev</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_get_parent</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_get_parent_with_subsystem_devtype</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_device_get_is_initialized</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_action</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ <paramdef>const char *<parameter>subsystem</parameter></paramdef>
+ <paramdef>const char *<parameter>devtype</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add documentation.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success, <function>udev_device_get_syspath()</function>,
+ <function>udev_device_get_sysname()</function>,
+ <function>udev_device_get_sysnum()</function>,
+ <function>udev_device_get_devpath()</function>,
+ <function>udev_device_get_devnode()</function>,
+ <function>udev_device_get_devtype()</function>,
+ <function>udev_device_get_subsystem()</function>,
+ <function>udev_device_get_driver()</function> and
+ <function>udev_device_get_action()</function> return a pointer
+ to a constant string that describes the requested property. The
+ lifetime of this string is bound to the device it was requested
+ on. On failure, each function may return
+ <constant>NULL</constant>.</para>
+
+ <para>On success, <function>udev_device_get_devnum()</function>
+ returns the device type of the passed device. On failure, a
+ device type with minor and major number set to
+ <constant>0</constant> is returned.</para>
+
+ <para><function>udev_device_get_udev()</function> always returns
+ a valid pointer to the udev context that this device belongs
+ to.</para>
+
+ <para>On success, <function>udev_device_get_parent()</function>
+ and
+ <function>udev_device_get_parent_with_subsystem_devtype()</function>
+ return a pointer to the parent device. No additional reference
+ to this device is acquired, but the child device owns a reference
+ to such parent device. On failure, <constant>NULL</constant>
+ is returned.</para>
+
+ <para>On success, <function>udev_device_get_is_initialized()</function>
+ returns either <constant>1</constant> or <constant>0</constant>,
+ depending on whether the passed device is initialized or not. On
+ failure, a negative error code is returned.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_has_tag</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_device_has_tag.xml b/man/udev_device_has_tag.xml
new file mode 100644
index 0000000000..480257343c
--- /dev/null
+++ b/man/udev_device_has_tag.xml
@@ -0,0 +1,163 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_device_has_tag"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_device_has_tag</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_device_has_tag</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_device_has_tag</refname>
+ <refname>udev_device_get_devlinks_list_entry</refname>
+ <refname>udev_device_get_properties_list_entry</refname>
+ <refname>udev_device_get_tags_list_entry</refname>
+ <refname>udev_device_get_sysattr_list_entry</refname>
+ <refname>udev_device_get_property_value</refname>
+ <refname>udev_device_get_sysattr_value</refname>
+ <refname>udev_device_set_sysattr_value</refname>
+
+ <refpurpose>Retrieve or set device attributes</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>struct udev_list_entry *<function>udev_device_get_devlinks_list_entry</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_list_entry *<function>udev_device_get_properties_list_entry</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_list_entry *<function>udev_device_get_tags_list_entry</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_list_entry *<function>udev_device_get_sysattr_list_entry</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_property_value</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ <paramdef>const char *<parameter>key</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_device_has_tag</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ <paramdef>const char *<parameter>tag</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_device_get_sysattr_value</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ <paramdef>const char *<parameter>sysattr</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_device_set_sysattr_value</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ <paramdef>const char *<parameter>sysattr</parameter></paramdef>
+ <paramdef>const char *<parameter>value</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success,
+ <function>udev_device_get_devlinks_list_entry()</function>,
+ <function>udev_device_get_properties_list_entry()</function>,
+ <function>udev_device_get_tags_list_entry()</function> and
+ <function>udev_device_get_sysattr_list_entry()</function> return
+ a pointer to the first entry of the retrieved list. If that list
+ is empty, or if an error occurred, <constant>NULL</constant> is
+ returned.</para>
+
+ <para>On success,
+ <function>udev_device_get_property_value()</function> and
+ <function>udev_device_get_sysattr_value()</function> return a
+ pointer to a constant string of the requested value. On error,
+ <constant>NULL</constant> is returned.</para>
+
+ <para>On success,
+ <function>udev_device_set_sysattr_value()</function> returns
+ an integer greater than, or equal to, <constant>0</constant>.
+ On failure, a negative error code is returned.</para>
+
+ <para>On success, <function>udev_device_has_tag()</function>
+ returns <constant>1</constant> or <constant>0</constant>,
+ depending on whether the device has the given tag or not.
+ On failure, a negative error code is returned.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_get_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_device_new_from_syspath.xml b/man/udev_device_new_from_syspath.xml
new file mode 100644
index 0000000000..fc147a879a
--- /dev/null
+++ b/man/udev_device_new_from_syspath.xml
@@ -0,0 +1,186 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_device_new_from_syspath"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_device_new_from_syspath</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_device_new_from_syspath</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_device_new_from_syspath</refname>
+ <refname>udev_device_new_from_devnum</refname>
+ <refname>udev_device_new_from_subsystem_sysname</refname>
+ <refname>udev_device_new_from_device_id</refname>
+ <refname>udev_device_new_from_environment</refname>
+ <refname>udev_device_ref</refname>
+ <refname>udev_device_unref</refname>
+
+ <refpurpose>Create, acquire and release a udev device object</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_new_from_syspath</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ <paramdef>const char *<parameter>syspath</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_new_from_devnum</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ <paramdef>char <parameter>type</parameter></paramdef>
+ <paramdef>dev_t <parameter>devnum</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_new_from_subsystem_sysname</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ <paramdef>const char *<parameter>subsystem</parameter></paramdef>
+ <paramdef>const char *<parameter>sysname</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_new_from_device_id</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ <paramdef>const char *<parameter>id</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_new_from_environment</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_ref</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_device_unref</function></funcdef>
+ <paramdef>struct udev_device *<parameter>udev_device</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><function>udev_device_new_from_syspath</function>,
+ <function>udev_device_new_from_devnum</function>,
+ <function>udev_device_new_from_subsystem_sysname</function>,
+ <function>udev_device_new_from_device_id</function>, and
+ <function>udev_device_new_from_environment</function>
+ allocate a new udev device object and returns a pointer to it. This
+ object is opaque and must not be accessed by the caller via different
+ means than functions provided by libudev. Initially, the reference count
+ of the device is 1. You can acquire further references, and drop
+ gained references via <function>udev_device_ref()</function> and
+ <function>udev_device_unref()</function>. Once the reference count hits 0,
+ the device object is destroyed and freed.</para>
+
+ <para><function>udev_device_new_from_syspath</function>,
+ <function>udev_device_new_from_devnum</function>,
+ <function>udev_device_new_from_subsystem_sysname</function>, and
+ <function>udev_device_new_from_device_id</function>
+ create the device object based on information found in
+ <filename>/sys</filename> annotated with properties from the udev-internal
+ device database. A syspath is any subdirectory of <filename>/sys</filename>,
+ with the restriction that a subdirectory of <filename>/sys/devices</filename>
+ (or a symlink to one) represents a real device and as such must contain
+ a <filename>uevent</filename> file. <function>udev_device_new_from_devnum</function>
+ takes a device type, which can be <constant>b</constant> for block devices or
+ <constant>c</constant> for character devices, as well as a devnum (see
+ <citerefentry><refentrytitle>makedev</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
+ <function>udev_device_new_from_subsystem_sysname</function> looks up devices based
+ on the provided subsystem and sysname and
+ <function>udev_device_new_from_device_id</function> looks up devices based on the provided
+ device id (see
+ <citerefentry><refentrytitle>udev_device_get_subsystem</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
+ </para>
+
+ <para><function>udev_device_new_from_environment</function>
+ creates a device from the current environment (see
+ <citerefentry><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>).
+ Each key-value pair is interpreted in the same way as if it was
+ received in an uevent (see
+ <citerefentry><refentrytitle>udev_monitor_receive_device</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
+ The keys <constant>DEVPATH</constant>, <constant>SUBSYSTEM</constant>,
+ <constant>ACTION</constant>, and <constant>SEQNUM</constant> are mandatory.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success, <function>udev_device_new_from_syspath()</function>,
+ <function>udev_device_new_from_devnum()</function>,
+ <function>udev_device_new_from_subsystem_sysname()</function>,
+ <function>udev_device_new_from_device_id()</function> and
+ <function>udev_device_new_from_environment()</function> return a
+ pointer to the allocated udev device. On failure,
+ <constant>NULL</constant> is returned.
+ <function>udev_device_ref()</function> returns the argument
+ that it was passed, unmodified.
+ <function>udev_device_unref()</function> always returns
+ <constant>NULL</constant>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_get_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_has_tag</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_enumerate_add_match_subsystem.xml b/man/udev_enumerate_add_match_subsystem.xml
new file mode 100644
index 0000000000..5acce00bb0
--- /dev/null
+++ b/man/udev_enumerate_add_match_subsystem.xml
@@ -0,0 +1,163 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_enumerate_add_match_subsystem"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_enumerate_add_match_subsystem</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_enumerate_add_match_subsystem</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_enumerate_add_match_subsystem</refname>
+ <refname>udev_enumerate_add_nomatch_subsystem</refname>
+ <refname>udev_enumerate_add_match_sysattr</refname>
+ <refname>udev_enumerate_add_nomatch_sysattr</refname>
+ <refname>udev_enumerate_add_match_property</refname>
+ <refname>udev_enumerate_add_match_sysname</refname>
+ <refname>udev_enumerate_add_match_tag</refname>
+ <refname>udev_enumerate_add_match_parent</refname>
+ <refname>udev_enumerate_add_match_is_initialized</refname>
+
+ <refpurpose>Modify filters</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_match_subsystem</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>subsystem</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_nomatch_subsystem</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>subsystem</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_match_sysattr</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>sysattr</parameter></paramdef>
+ <paramdef>const char *<parameter>value</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_nomatch_sysattr</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>sysattr</parameter></paramdef>
+ <paramdef>const char *<parameter>value</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_match_property</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>property</parameter></paramdef>
+ <paramdef>const char *<parameter>value</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_match_sysname</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>sysname</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_match_tag</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>tag</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_match_parent</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>struct udev_device *<parameter>parent</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_match_is_initialized</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success,
+ <function>udev_enumerate_add_match_subsystem</function>,
+ <function>udev_enumerate_add_nomatch_subsystem</function>,
+ <function>udev_enumerate_add_match_sysattr</function>,
+ <function>udev_enumerate_add_nomatch_sysattr</function>,
+ <function>udev_enumerate_add_match_property</function>,
+ <function>udev_enumerate_add_match_sysname</function>,
+ <function>udev_enumerate_add_match_tag</function>,
+ <function>udev_enumerate_add_match_parent</function> and
+ <function>udev_enumerate_add_match_is_initialized</function>
+ return an integer greater than, or equal to,
+ <constant>0</constant>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_scan_devices</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_enumerate_new.xml b/man/udev_enumerate_new.xml
new file mode 100644
index 0000000000..b5856c5577
--- /dev/null
+++ b/man/udev_enumerate_new.xml
@@ -0,0 +1,111 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_enumerate_new"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_enumerate_new</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_enumerate_new</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_enumerate_new</refname>
+ <refname>udev_enumerate_ref</refname>
+ <refname>udev_enumerate_unref</refname>
+
+ <refpurpose>Create, acquire and release a udev enumerate object</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>struct udev_enumerate *<function>udev_enumerate_new</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_enumerate *<function>udev_enumerate_ref</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_enumerate *<function>udev_enumerate_unref</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success, <function>udev_enumerate_new()</function> returns a
+ pointer to the allocated udev monitor. On failure,
+ <constant>NULL</constant> is returned.
+ <function>udev_enumerate_ref()</function> returns the argument
+ that it was passed, unmodified.
+ <function>udev_enumerate_unref()</function> always returns
+ <constant>NULL</constant>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_add_match_subsystem</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_scan_devices</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_enumerate_scan_devices.xml b/man/udev_enumerate_scan_devices.xml
new file mode 100644
index 0000000000..73566f5089
--- /dev/null
+++ b/man/udev_enumerate_scan_devices.xml
@@ -0,0 +1,133 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_enumerate_scan_devices"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_enumerate_scan_devices</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_enumerate_scan_devices</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_enumerate_scan_devices</refname>
+ <refname>udev_enumerate_scan_subsystems</refname>
+ <refname>udev_enumerate_get_list_entry</refname>
+ <refname>udev_enumerate_add_syspath</refname>
+ <refname>udev_enumerate_get_udev</refname>
+
+ <refpurpose>Query or modify a udev enumerate object</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_scan_devices</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_scan_subsystems</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_list_entry *<function>udev_enumerate_get_list_entry</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_enumerate_add_syspath</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ <paramdef>const char *<parameter>syspath</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev *<function>udev_enumerate_get_udev</function></funcdef>
+ <paramdef>struct udev_enumerate *<parameter>udev_enumerate</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success,
+ <function>udev_enumerate_scan_devices()</function>,
+ <function>udev_enumerate_scan_subsystems()</function> and
+ <function>udev_enumerate_add_syspath()</function>
+ return an integer greater than, or equal to,
+ <constant>0</constant>.</para>
+
+ <para>On success,
+ <function>udev_enumerate_get_list_entry()</function>
+ returns a pointer to the first entry in the list of found
+ devices. If the list is empty, or on failure,
+ <constant>NULL</constant> is returned.</para>
+
+ <para><function>udev_enumerate_get_udev()</function> always
+ returns a pointer to the udev context that this enumerate
+ object is associated with.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_add_match_subsystem</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_list_entry.xml b/man/udev_list_entry.xml
new file mode 100644
index 0000000000..6e033bdc81
--- /dev/null
+++ b/man/udev_list_entry.xml
@@ -0,0 +1,123 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_list_entry"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_list_entry</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_list_entry</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_list_entry</refname>
+ <refname>udev_list_entry_get_next</refname>
+ <refname>udev_list_entry_get_by_name</refname>
+ <refname>udev_list_entry_get_name</refname>
+ <refname>udev_list_entry_get_value</refname>
+
+ <refpurpose>Iterate and access udev lists</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>struct udev_list_entry *<function>udev_list_entry_get_next</function></funcdef>
+ <paramdef>struct udev_list_entry *<parameter>list_entry</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_list_entry *<function>udev_list_entry_get_by_name</function></funcdef>
+ <paramdef>struct udev_list_entry *<parameter>list_entry</parameter></paramdef>
+ <paramdef>const char *<parameter>name</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_list_entry_get_name</function></funcdef>
+ <paramdef>struct udev_list_entry *<parameter>list_entry</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>const char *<function>udev_list_entry_get_value</function></funcdef>
+ <paramdef>struct udev_list_entry *<parameter>list_entry</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success,
+ <function>udev_list_entry_get_next()</function> and
+ <function>udev_list_entry_get_by_name()</function> return
+ a pointer to the requested list entry. If no such entry can
+ be found, or on failure, <constant>NULL</constant> is
+ returned.</para>
+
+ <para>On success,
+ <function>udev_list_entry_get_name()</function> and
+ <function>udev_list_entry_get_value()</function> return a
+ pointer to a constant string representing the requested value.
+ The string is bound to the lifetime of the list-entry itself.
+ On failure, <constant>NULL</constant> is returned.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_monitor_filter_update.xml b/man/udev_monitor_filter_update.xml
new file mode 100644
index 0000000000..f129595618
--- /dev/null
+++ b/man/udev_monitor_filter_update.xml
@@ -0,0 +1,122 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_monitor_filter_update"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_monitor_filter_update</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_monitor_filter_update</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_monitor_filter_update</refname>
+ <refname>udev_monitor_filter_remove</refname>
+ <refname>udev_monitor_filter_add_match_subsystem_devtype</refname>
+ <refname>udev_monitor_filter_add_match_tag</refname>
+
+ <refpurpose>Modify filters</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>int <function>udev_monitor_filter_update</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_monitor_filter_remove</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_monitor_filter_add_match_subsystem_devtype</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ <paramdef>const char *<parameter>subsystem</parameter></paramdef>
+ <paramdef>const char *<parameter>devtype</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_monitor_filter_add_match_tag</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ <paramdef>const char *<parameter>tag</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success,
+ <function>udev_monitor_filter_update()</function>,
+ <function>udev_monitor_filter_remove()</function>,
+ <function>udev_monitor_filter_add_match_subsystem_devtype()</function>
+ and
+ <function>udev_monitor_filter_add_match_tag()</function>
+ return an integer greater than, or equal to,
+ <constant>0</constant>. On failure, a negative error code is
+ returned.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_receive_device</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_monitor_new_from_netlink.xml b/man/udev_monitor_new_from_netlink.xml
new file mode 100644
index 0000000000..d73a4acaec
--- /dev/null
+++ b/man/udev_monitor_new_from_netlink.xml
@@ -0,0 +1,113 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_monitor_new_from_netlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_monitor_new_from_netlink</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_monitor_new_from_netlink</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_monitor_new_from_netlink</refname>
+ <refname>udev_monitor_ref</refname>
+ <refname>udev_monitor_unref</refname>
+
+ <refpurpose>Create, acquire and release a udev monitor object</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>struct udev_monitor *<function>udev_monitor_new_from_netlink</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ <paramdef>const char *<parameter>name</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_monitor *<function>udev_monitor_ref</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev_monitor *<function>udev_monitor_unref</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success,
+ <function>udev_monitor_new_from_netlink()</function> returns a
+ pointer to the allocated udev monitor. On failure,
+ <constant>NULL</constant> is returned.
+ <function>udev_monitor_ref()</function> returns the argument
+ that it was passed, unmodified.
+ <function>udev_monitor_unref()</function> always returns
+ <constant>NULL</constant>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_filter_update</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_receive_device</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_monitor_receive_device.xml b/man/udev_monitor_receive_device.xml
new file mode 100644
index 0000000000..7e842f88df
--- /dev/null
+++ b/man/udev_monitor_receive_device.xml
@@ -0,0 +1,137 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_monitor_receive_device"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_monitor_receive_device</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_monitor_receive_device</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_monitor_receive_device</refname>
+ <refname>udev_monitor_enable_receiving</refname>
+ <refname>udev_monitor_set_receive_buffer_size</refname>
+ <refname>udev_monitor_get_fd</refname>
+ <refname>udev_monitor_get_udev</refname>
+
+ <refpurpose>Query and modify device monitor</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>struct udev_device *<function>udev_monitor_receive_device</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_monitor_enable_receiving</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_monitor_set_receive_buffer_size</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ <paramdef>int <parameter>size</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>udev_monitor_get_fd</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev *<function>udev_monitor_get_udev</function></funcdef>
+ <paramdef>struct udev_monitor *<parameter>udev_monitor</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <!--<refsect1>
+ <title>Description</title>
+
+ <para>XXX: Add short description.</para>
+ </refsect1>-->
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success,
+ <function>udev_monitor_receive_device()</function> returns a
+ pointer to a newly referenced device that was received via the
+ monitor. The caller is responsible to drop this reference when
+ done. On failure, <constant>NULL</constant> is returned.</para>
+
+ <para>On success,
+ <function>udev_monitor_enable_receiving()</function> and
+ <function>udev_monitor_set_receive_buffer_size()</function>
+ return an integer greater than, or equal to,
+ <constant>0</constant>. On failure, a negative error code is
+ returned.</para>
+
+ <para>On success, <function>udev_monitor_get_fd()</function>
+ returns the file descriptor used by this monitor. On failure,
+ a negative error code is returned.</para>
+
+ <para><function>udev_monitor_get_udev()</function> always returns
+ a pointer to the udev context that this monitor is associated
+ with.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>udev_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_device_new_from_syspath</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_monitor_filter_update</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/udev_new.xml b/man/udev_new.xml
new file mode 100644
index 0000000000..587835a3ca
--- /dev/null
+++ b/man/udev_new.xml
@@ -0,0 +1,110 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="udev_new"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>udev_new</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>David</firstname>
+ <surname>Herrmann</surname>
+ <email>dh.herrmann@gmail.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>udev_new</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>udev_new</refname>
+ <refname>udev_ref</refname>
+ <refname>udev_unref</refname>
+
+ <refpurpose>Create, acquire and release a udev context object</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;libudev.h&gt;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>struct udev *<function>udev_new</function></funcdef>
+ <paramdef><parameter>void</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev *<function>udev_ref</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>struct udev *<function>udev_unref</function></funcdef>
+ <paramdef>struct udev *<parameter>udev</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><function>udev_new()</function> allocates a new udev context
+ object and returns a pointer to it. This object is opaque and must
+ not be accessed by the caller via different means than functions
+ provided by libudev. Initially, the reference count of the context
+ is 1. You can acquire further references, and drop gained references
+ via <function>udev_ref()</function> and
+ <function>udev_unref()</function>. Once the reference count hits 0,
+ the context object is destroyed and freed.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Return Value</title>
+
+ <para>On success, <function>udev_new()</function> returns a pointer
+ to the allocated udev context. On failure, <constant>NULL</constant>
+ is returned. <function>udev_ref()</function> returns the argument
+ that it was passed, unmodified. <function>udev_unref()</function>
+ always returns <constant>NULL</constant>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/shell-completion/zsh/_loginctl b/shell-completion/zsh/_loginctl
index bd33b66fae..1e2a4db2a0 100644
--- a/shell-completion/zsh/_loginctl
+++ b/shell-completion/zsh/_loginctl
@@ -1,15 +1,43 @@
#compdef loginctl
-_loginctl_all_sessions(){_sys_all_sessions=($(loginctl --no-legend list-sessions | { while read a b; do echo " $a"; done; }) )}
-_loginctl_all_users() {_sys_all_users=( $(loginctl --no-legend list-users | { while read a b; do echo " $a"; done; }) )}
-_loginctl_all_seats() {_sys_all_seats=( $(loginctl --no-legend list-seats | { while read a b; do echo " $a"; done; }) )}
+_loginctl_all_sessions() {
+ local session description
+ loginctl --no-legend list-sessions | while read -r session description; do
+ _sys_all_sessions+=( "$session" )
+ _sys_all_sessions_descr+=( "${session}:$description" )
+ done
+}
+
+_loginctl_all_users() {
+ local uid description
+ loginctl --no-legend list-users | while read -r uid description; do
+ _sys_all_users+=( "$uid" )
+ _sys_all_users_descr+=( "${uid}:$description" )
+ done
+}
+_loginctl_all_seats() {
+ local seat description
+ loginctl --no-legend list-seats | while read -r seat description; do
+ _sys_all_seats+=( "$seat" )
+ _sys_all_seats_descr+=( "${seat}:$description" )
+ done
+}
+
+local fun
# Completion functions for SESSIONS
for fun in session-status show-session activate lock-session unlock-session terminate-session kill-session ; do
(( $+functions[_loginctl_$fun] )) || _loginctl_$fun()
{
+ local -a _sys_all_sessions{,_descr}
+
_loginctl_all_sessions
- compadd "$@" -a - _sys_all_sessions
+ for _ignore in $words[2,-1]; do
+ _sys_all_sessions[(i)$_ignore]=()
+ _sys_all_sessions_descr[(i)$_ignore:*]=()
+ done
+
+ _describe -t systemd-sessions session _sys_all_sessions_descr _sys_all_sessions "$@"
}
done
@@ -17,16 +45,34 @@ done
for fun in user-status show-user enable-linger disable-linger terminate-user kill-user ; do
(( $+functions[_loginctl_$fun] )) || _loginctl_$fun()
{
- _loginctl_all_users
- compadd "$@" -a - _sys_all_users
+ local -a _sys_all_users{,_descr}
+ zstyle -a ":completion:${curcontext}:users" users _sys_all_users
+
+ if ! (( $#_sys_all_users )); then
+ _loginctl_all_users
+ fi
+
+ for _ignore in $words[2,-1]; do
+ _sys_all_users[(i)$_ignore]=()
+ _sys_all_users_descr[(i)$_ignore:*]=()
+ done
+ # using the common tag `users' here, not rolling our own `systemd-users' tag
+ _describe -t users user ${_sys_all_users_descr:+_sys_all_users_descr} _sys_all_users "$@"
}
done
# Completion functions for SEATS
(( $+functions[_loginctl_seats] )) || _loginctl_seats()
{
+ local -a _sys_all_seats{,_descr}
+
_loginctl_all_seats
- compadd "$@" -a - _sys_all_seats
+ for _ignore in $words[2,-1]; do
+ _sys_all_seats[(i)$_ignore]=()
+ _sys_all_seats_descr[(i)$_ignore:*]=()
+ done
+
+ _describe -t systemd-seats seat _sys_all_seats_descr _sys_all_seats "$@"
}
for fun in seat-status show-seat terminate-seat ; do
(( $+functions[_loginctl_$fun] )) || _loginctl_$fun()
@@ -36,8 +82,6 @@ done
# Completion functions for ATTACH
(( $+functions[_loginctl_attach] )) || _loginctl_attach()
{
- _loginctl_all_seats
-
_arguments -w -C -S -s \
':seat:_loginctl_seats' \
'*:device:_files'
@@ -78,7 +122,7 @@ done
if (( CURRENT == 1 )); then
_describe -t commands 'loginctl command' _loginctl_cmds || compadd "$@"
else
- local curcontext="$curcontext"
+ local curcontext="$curcontext" _ignore
cmd="${${_loginctl_cmds[(r)$words[1]:*]%%:*}}"
diff --git a/src/basic/def.h b/src/basic/def.h
index 011c7c667e..5aaba1fe87 100644
--- a/src/basic/def.h
+++ b/src/basic/def.h
@@ -63,13 +63,7 @@
#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket"
#define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus"
-
-#ifdef ENABLE_KDBUS
-# define DEFAULT_SYSTEM_BUS_ADDRESS KERNEL_SYSTEM_BUS_ADDRESS ";" UNIX_SYSTEM_BUS_ADDRESS
-#else
-# define DEFAULT_SYSTEM_BUS_ADDRESS UNIX_SYSTEM_BUS_ADDRESS
-#endif
-
+#define DEFAULT_SYSTEM_BUS_ADDRESS KERNEL_SYSTEM_BUS_ADDRESS ";" UNIX_SYSTEM_BUS_ADDRESS
#define UNIX_USER_BUS_ADDRESS_FMT "unix:path=%s/bus"
#define KERNEL_USER_BUS_ADDRESS_FMT "kernel:path=/sys/fs/kdbus/"UID_FMT"-user/bus"
diff --git a/src/basic/exit-status.c b/src/basic/exit-status.c
index c09efdd2cb..5ab36825c0 100644
--- a/src/basic/exit-status.c
+++ b/src/basic/exit-status.c
@@ -20,6 +20,7 @@
***/
#include <stdlib.h>
+#include <signal.h>
#include "exit-status.h"
#include "set.h"
diff --git a/src/basic/util.c b/src/basic/util.c
index e0c5069ff8..727be56f58 100644
--- a/src/basic/util.c
+++ b/src/basic/util.c
@@ -5209,35 +5209,6 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
break;
- case VALUE_ESCAPE:
- if (c == 0) {
- if (flags & UNQUOTE_RELAX)
- goto finish;
- return -EINVAL;
- }
-
- if (!GREEDY_REALLOC(s, allocated, sz+7))
- return -ENOMEM;
-
- if (flags & UNQUOTE_CUNESCAPE) {
- uint32_t u;
-
- r = cunescape_one(*p, (size_t) -1, &c, &u);
- if (r < 0)
- return -EINVAL;
-
- (*p) += r - 1;
-
- if (c != 0)
- s[sz++] = c; /* normal explicit char */
- else
- sz += utf8_encode_unichar(s + sz, u); /* unicode chars we'll encode as utf8 */
- } else
- s[sz++] = c;
-
- state = VALUE;
- break;
-
case SINGLE_QUOTE:
if (c == 0) {
if (flags & UNQUOTE_RELAX)
@@ -5256,35 +5227,6 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
break;
- case SINGLE_QUOTE_ESCAPE:
- if (c == 0) {
- if (flags & UNQUOTE_RELAX)
- goto finish;
- return -EINVAL;
- }
-
- if (!GREEDY_REALLOC(s, allocated, sz+7))
- return -ENOMEM;
-
- if (flags & UNQUOTE_CUNESCAPE) {
- uint32_t u;
-
- r = cunescape_one(*p, (size_t) -1, &c, &u);
- if (r < 0)
- return -EINVAL;
-
- (*p) += r - 1;
-
- if (c != 0)
- s[sz++] = c;
- else
- sz += utf8_encode_unichar(s + sz, u);
- } else
- s[sz++] = c;
-
- state = SINGLE_QUOTE;
- break;
-
case DOUBLE_QUOTE:
if (c == 0)
return -EINVAL;
@@ -5301,33 +5243,56 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
break;
+ case SINGLE_QUOTE_ESCAPE:
case DOUBLE_QUOTE_ESCAPE:
+ case VALUE_ESCAPE:
+ if (!GREEDY_REALLOC(s, allocated, sz+7))
+ return -ENOMEM;
+
if (c == 0) {
+ if ((flags & UNQUOTE_CUNESCAPE_RELAX) &&
+ (state == VALUE_ESCAPE || flags & UNQUOTE_RELAX)) {
+ /* If we find an unquoted trailing backslash and we're in
+ * UNQUOTE_CUNESCAPE_RELAX mode, keep it verbatim in the
+ * output.
+ *
+ * Unbalanced quotes will only be allowed in UNQUOTE_RELAX
+ * mode, UNQUOTE_CUNESCAP_RELAX mode does not allow them.
+ */
+ s[sz++] = '\\';
+ goto finish;
+ }
if (flags & UNQUOTE_RELAX)
goto finish;
return -EINVAL;
}
- if (!GREEDY_REALLOC(s, allocated, sz+7))
- return -ENOMEM;
-
if (flags & UNQUOTE_CUNESCAPE) {
uint32_t u;
r = cunescape_one(*p, (size_t) -1, &c, &u);
- if (r < 0)
+ if (r < 0) {
+ if (flags & UNQUOTE_CUNESCAPE_RELAX) {
+ s[sz++] = '\\';
+ s[sz++] = c;
+ goto end_escape;
+ }
return -EINVAL;
+ }
(*p) += r - 1;
if (c != 0)
- s[sz++] = c;
+ s[sz++] = c; /* normal explicit char */
else
- sz += utf8_encode_unichar(s + sz, u);
+ sz += utf8_encode_unichar(s + sz, u); /* unicode chars we'll encode as utf8 */
} else
s[sz++] = c;
- state = DOUBLE_QUOTE;
+end_escape:
+ state = (state == SINGLE_QUOTE_ESCAPE) ? SINGLE_QUOTE :
+ (state == DOUBLE_QUOTE_ESCAPE) ? DOUBLE_QUOTE :
+ VALUE;
break;
case SPACE:
@@ -5355,6 +5320,36 @@ finish:
return 1;
}
+int unquote_first_word_and_warn(
+ const char **p,
+ char **ret,
+ UnquoteFlags flags,
+ const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *rvalue) {
+ /* Try to unquote it, if it fails, warn about it and try again but this
+ * time using UNQUOTE_CUNESCAPE_RELAX to keep the backslashes verbatim
+ * in invalid escape sequences. */
+ const char *save;
+ int r;
+
+ save = *p;
+ r = unquote_first_word(p, ret, flags);
+ if (r < 0 && !(flags&UNQUOTE_CUNESCAPE_RELAX)) {
+ /* Retry it with UNQUOTE_CUNESCAPE_RELAX. */
+ *p = save;
+ r = unquote_first_word(p, ret, flags|UNQUOTE_CUNESCAPE_RELAX);
+ if (r < 0)
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Unbalanced quoting in command line, ignoring: \"%s\"", rvalue);
+ else
+ log_syntax(unit, LOG_WARNING, filename, line, EINVAL,
+ "Invalid escape sequences in command line: \"%s\"", rvalue);
+ }
+ return r;
+}
+
int unquote_many_words(const char **p, UnquoteFlags flags, ...) {
va_list ap;
char **l;
diff --git a/src/basic/util.h b/src/basic/util.h
index 7aca46d777..a1d1dd15c3 100644
--- a/src/basic/util.h
+++ b/src/basic/util.h
@@ -839,11 +839,13 @@ int is_dir(const char *path, bool follow);
int is_device_node(const char *path);
typedef enum UnquoteFlags {
- UNQUOTE_RELAX = 1,
- UNQUOTE_CUNESCAPE = 2,
+ UNQUOTE_RELAX = 1,
+ UNQUOTE_CUNESCAPE = 2,
+ UNQUOTE_CUNESCAPE_RELAX = 4,
} UnquoteFlags;
int unquote_first_word(const char **p, char **ret, UnquoteFlags flags);
+int unquote_first_word_and_warn(const char **p, char **ret, UnquoteFlags flags, const char *unit, const char *filename, unsigned line, const char *rvalue);
int unquote_many_words(const char **p, UnquoteFlags flags, ...) _sentinel_;
int free_and_strdup(char **p, const char *s);
diff --git a/src/bus-proxyd/bus-proxyd.c b/src/bus-proxyd/bus-proxyd.c
index 3e398b53e9..3cc3b33ae7 100644
--- a/src/bus-proxyd/bus-proxyd.c
+++ b/src/bus-proxyd/bus-proxyd.c
@@ -239,11 +239,7 @@ static int parse_argv(int argc, char *argv[]) {
if (!e)
return log_oom();
-#ifdef ENABLE_KDBUS
a = strjoin("x-machine-kernel:machine=", e, ";x-machine-unix:machine=", e, NULL);
-#else
- a = strjoin("x-machine-unix:machine=", e, NULL);
-#endif
if (!a)
return log_oom();
diff --git a/src/bus-proxyd/proxy.c b/src/bus-proxyd/proxy.c
index aa5010c1ac..28ab1c97fc 100644
--- a/src/bus-proxyd/proxy.c
+++ b/src/bus-proxyd/proxy.c
@@ -275,12 +275,16 @@ int proxy_set_policy(Proxy *p, SharedPolicy *sp, char **configuration) {
return log_error_errno(r, "Couldn't determine bus scope: %m");
if (streq(scope, "system"))
- strv = strv_new("/etc/dbus-1/system.conf",
+ strv = strv_new("/usr/share/dbus-1/system.conf",
+ "/etc/dbus-1/system.conf",
+ "/usr/share/dbus-1/system.d/",
"/etc/dbus-1/system.d/",
"/etc/dbus-1/system-local.conf",
NULL);
else if (streq(scope, "user"))
- strv = strv_new("/etc/dbus-1/session.conf",
+ strv = strv_new("/usr/share/dbus-1/session.conf",
+ "/etc/dbus-1/session.conf",
+ "/usr/share/dbus-1/session.d/",
"/etc/dbus-1/session.d/",
"/etc/dbus-1/session-local.conf",
NULL);
diff --git a/src/bus-proxyd/stdio-bridge.c b/src/bus-proxyd/stdio-bridge.c
index 61bc08ae33..f275f6705f 100644
--- a/src/bus-proxyd/stdio-bridge.c
+++ b/src/bus-proxyd/stdio-bridge.c
@@ -110,11 +110,7 @@ static int parse_argv(int argc, char *argv[]) {
if (!e)
return log_oom();
-#ifdef ENABLE_KDBUS
a = strjoin("x-machine-kernel:machine=", e, ";x-machine-unix:machine=", e, NULL);
-#else
- a = strjoin("x-machine-unix:machine=", e, NULL);
-#endif
if (!a)
return log_oom();
diff --git a/src/core/execute.c b/src/core/execute.c
index 444865da86..94cc101738 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -771,7 +771,7 @@ static int setup_pam(
};
pam_handle_t *handle = NULL;
- sigset_t ss, old_ss;
+ sigset_t old_ss;
int pam_code = PAM_SUCCESS;
int err;
char **e = NULL;
@@ -868,6 +868,11 @@ static int setup_pam(
/* Check if our parent process might already have
* died? */
if (getppid() == parent_pid) {
+ sigset_t ss;
+
+ assert_se(sigemptyset(&ss) >= 0);
+ assert_se(sigaddset(&ss, SIGTERM) >= 0);
+
for (;;) {
if (sigwait(&ss, &sig) < 0) {
if (errno == EINTR)
@@ -1509,7 +1514,6 @@ static int exec_child(
}
}
-#ifdef ENABLE_KDBUS
if (params->bus_endpoint_fd >= 0 && context->bus_endpoint) {
uid_t ep_uid = (uid == UID_INVALID) ? 0 : uid;
@@ -1519,7 +1523,6 @@ static int exec_child(
return r;
}
}
-#endif
/* If delegation is enabled we'll pass ownership of the cgroup
* (but only in systemd's own controller hierarchy!) to the
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
index f5584b6b14..e7a6bdc8c4 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -66,10 +66,8 @@ int kmod_setup(void) {
/* this should never be a module */
{ "unix", "/proc/net/unix", true, true, NULL },
-#ifdef ENABLE_KDBUS
/* IPC is needed before we bring up any other services */
{ "kdbus", "/sys/fs/kdbus", false, false, is_kdbus_wanted },
-#endif
#ifdef HAVE_LIBIPTC
/* netfilter is needed by networkd, nspawn among others, and cannot be autoloaded */
diff --git a/src/core/load-fragment-gperf.gperf.m4 b/src/core/load-fragment-gperf.gperf.m4
index 66c9145aa6..aae81c80cb 100644
--- a/src/core/load-fragment-gperf.gperf.m4
+++ b/src/core/load-fragment-gperf.gperf.m4
@@ -229,9 +229,7 @@ Service.BusName, config_parse_bus_name, 0,
Service.FileDescriptorStoreMax, config_parse_unsigned, 0, offsetof(Service, n_fd_store_max)
Service.NotifyAccess, config_parse_notify_access, 0, offsetof(Service, notify_access)
Service.Sockets, config_parse_service_sockets, 0, 0
-m4_ifdef(`ENABLE_KDBUS',
-`Service.BusPolicy, config_parse_bus_endpoint_policy, 0, offsetof(Service, exec_context)',
-`Service.BusPolicy, config_parse_warn_compat, DISABLED_EXPERIMENTAL, 0')
+Service.BusPolicy, config_parse_bus_endpoint_policy, 0, offsetof(Service, exec_context)
EXEC_CONTEXT_CONFIG_ITEMS(Service)m4_dnl
CGROUP_CONTEXT_CONFIG_ITEMS(Service)m4_dnl
KILL_CONTEXT_CONFIG_ITEMS(Service)m4_dnl
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index df5fe6fb32..a48cb4029a 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -520,9 +520,9 @@ int config_parse_exec(
void *data,
void *userdata) {
- ExecCommand **e = data, *nce;
- char *path, **n;
- unsigned k;
+ ExecCommand **e = data;
+ const char *p;
+ bool semicolon;
int r;
assert(filename);
@@ -532,156 +532,154 @@ int config_parse_exec(
e += ltype;
+ rvalue += strspn(rvalue, WHITESPACE);
+ p = rvalue;
+
if (isempty(rvalue)) {
/* An empty assignment resets the list */
*e = exec_command_free_list(*e);
return 0;
}
- /* We accept an absolute path as first argument, or
- * alternatively an absolute prefixed with @ to allow
- * overriding of argv[0]. */
- for (;;) {
+ do {
int i;
- const char *word, *state, *reason;
- size_t l;
+ _cleanup_strv_free_ char **n = NULL;
+ size_t nlen = 0, nbufsize = 0;
+ _cleanup_free_ ExecCommand *nce = NULL;
+ _cleanup_free_ char *path = NULL, *firstword = NULL;
+ char *f;
bool separate_argv0 = false, ignore = false;
- path = NULL;
- nce = NULL;
- n = NULL;
+ semicolon = false;
- rvalue += strspn(rvalue, WHITESPACE);
+ r = unquote_first_word_and_warn(&p, &firstword, UNQUOTE_CUNESCAPE, unit, filename, line, rvalue);
+ if (r <= 0)
+ return 0;
- if (rvalue[0] == 0)
- break;
+ f = firstword;
+ for (i = 0; i < 2; i++) {
+ /* We accept an absolute path as first argument, or
+ * alternatively an absolute prefixed with @ to allow
+ * overriding of argv[0]. */
+ if (*f == '-' && !ignore)
+ ignore = true;
+ else if (*f == '@' && !separate_argv0)
+ separate_argv0 = true;
+ else
+ break;
+ f ++;
+ }
- k = 0;
- FOREACH_WORD_QUOTED(word, l, rvalue, state) {
- if (k == 0) {
- for (i = 0; i < 2; i++) {
- if (*word == '-' && !ignore) {
- ignore = true;
- word ++;
- }
-
- if (*word == '@' && !separate_argv0) {
- separate_argv0 = true;
- word ++;
- }
- }
- } else if (strneq(word, ";", MAX(l, 1U)))
- goto found;
+ if (isempty(f)) {
+ /* First word is either "-" or "@" with no command. */
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Empty path in command line, ignoring: \"%s\"", rvalue);
+ return 0;
+ }
- k++;
+ if (!string_is_safe(f)) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Executable path contains special characters, ignoring: %s", rvalue);
+ return 0;
}
- if (!isempty(state)) {
- log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Trailing garbage, ignoring.");
+ if (!path_is_absolute(f)) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Executable path is not absolute, ignoring: %s", rvalue);
+ return 0;
+ }
+ if (endswith(f, "/")) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Executable path specifies a directory, ignoring: %s", rvalue);
return 0;
}
- found:
- /* If separate_argv0, we'll move first element to path variable */
- n = new(char*, MAX(k + !separate_argv0, 1u));
- if (!n)
- return log_oom();
+ if (f == firstword) {
+ path = firstword;
+ firstword = NULL;
+ } else {
+ path = strdup(f);
+ if (!path)
+ return log_oom();
+ }
- k = 0;
- FOREACH_WORD_QUOTED(word, l, rvalue, state) {
- char *c;
- unsigned skip;
-
- if (separate_argv0 ? path == NULL : k == 0) {
- /* first word, very special */
- skip = separate_argv0 + ignore;
-
- /* skip special chars in the beginning */
- if (l <= skip) {
- log_syntax(unit, LOG_ERR, filename, line, EINVAL,
- "Empty path in command line, ignoring: \"%s\"", rvalue);
- r = 0;
- goto fail;
- }
+ if (!separate_argv0) {
+ if (!GREEDY_REALLOC(n, nbufsize, nlen + 2))
+ return log_oom();
+ f = strdup(path);
+ if (!f)
+ return log_oom();
+ n[nlen++] = f;
+ n[nlen] = NULL;
+ }
- } else if (strneq(word, ";", MAX(l, 1U)))
- /* new commandline */
- break;
+ path_kill_slashes(path);
- else
- skip = strneq(word, "\\;", MAX(l, 1U));
+ for (;;) {
+ _cleanup_free_ char *word = NULL;
- r = cunescape_length(word + skip, l - skip, UNESCAPE_RELAX, &c);
- if (r < 0) {
- log_syntax(unit, LOG_ERR, filename, line, r, "Failed to unescape command line, ignoring: %s", rvalue);
- r = 0;
- goto fail;
+ /* Check explicitly for an unquoted semicolon as
+ * command separator token. */
+ if (p[0] == ';' && (!p[1] || strchr(WHITESPACE, p[1]))) {
+ p ++;
+ p += strspn(p, WHITESPACE);
+ semicolon = true;
+ break;
}
- if (!utf8_is_valid(c)) {
- log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
- r = 0;
- goto fail;
+ /* Check for \; explicitly, to not confuse it with \\;
+ * or "\;" or "\\;" etc. unquote_first_word would
+ * return the same for all of those. */
+ if (p[0] == '\\' && p[1] == ';' && (!p[2] || strchr(WHITESPACE, p[2]))) {
+ p += 2;
+ p += strspn(p, WHITESPACE);
+ if (!GREEDY_REALLOC(n, nbufsize, nlen + 2))
+ return log_oom();
+ f = strdup(";");
+ if (!f)
+ return log_oom();
+ n[nlen++] = f;
+ n[nlen] = NULL;
+ continue;
}
- /* where to stuff this? */
- if (separate_argv0 && path == NULL)
- path = c;
- else
- n[k++] = c;
- }
+ r = unquote_first_word_and_warn(&p, &word, UNQUOTE_CUNESCAPE, unit, filename, line, rvalue);
+ if (r == 0)
+ break;
+ else if (r < 0)
+ return 0;
- n[k] = NULL;
+ if (!GREEDY_REALLOC(n, nbufsize, nlen + 2))
+ return log_oom();
+ n[nlen++] = word;
+ n[nlen] = NULL;
+ word = NULL;
+ }
- if (!n[0])
- reason = "Empty executable name or zeroeth argument";
- else if (!string_is_safe(path ?: n[0]))
- reason = "Executable path contains special characters";
- else if (!path_is_absolute(path ?: n[0]))
- reason = "Executable path is not absolute";
- else if (endswith(path ?: n[0], "/"))
- reason = "Executable path specifies a directory";
- else
- goto ok;
-
- log_syntax(unit, LOG_ERR, filename, line, EINVAL, "%s, ignoring: %s", reason, rvalue);
- r = 0;
- goto fail;
-
-ok:
- if (!path) {
- path = strdup(n[0]);
- if (!path) {
- r = log_oom();
- goto fail;
- }
+ if (!n || !n[0]) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Empty executable name or zeroeth argument, ignoring: %s", rvalue);
+ return 0;
}
nce = new0(ExecCommand, 1);
- if (!nce) {
- r = log_oom();
- goto fail;
- }
+ if (!nce)
+ return log_oom();
nce->argv = n;
nce->path = path;
nce->ignore = ignore;
- path_kill_slashes(nce->path);
-
exec_command_append_list(e, nce);
- rvalue = state;
- }
-
- return 0;
+ /* Do not _cleanup_free_ these. */
+ n = NULL;
+ path = NULL;
+ nce = NULL;
-fail:
- n[k] = NULL;
- strv_free(n);
- free(path);
- free(nce);
+ rvalue = p;
+ } while (semicolon);
- return r;
+ return 0;
}
DEFINE_CONFIG_PARSE_ENUM(config_parse_service_type, service_type, ServiceType, "Failed to parse service type");
diff --git a/src/core/manager.c b/src/core/manager.c
index eb80dd1b46..a1f37bbbb3 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -731,7 +731,6 @@ static int manager_setup_notify(Manager *m) {
}
static int manager_setup_kdbus(Manager *m) {
-#ifdef ENABLE_KDBUS
_cleanup_free_ char *p = NULL;
assert(m);
@@ -749,7 +748,6 @@ static int manager_setup_kdbus(Manager *m) {
return log_debug_errno(m->kdbus_fd, "Failed to set up kdbus: %m");
log_debug("Successfully set up kdbus on %s", p);
-#endif
return 0;
}
diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c
index c35248eeae..42a6b952b9 100644
--- a/src/core/mount-setup.c
+++ b/src/core/mount-setup.c
@@ -104,10 +104,8 @@ static const MountPoint mount_table[] = {
{ "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
is_efi_boot, MNT_NONE },
#endif
-#ifdef ENABLE_KDBUS
{ "kdbusfs", "/sys/fs/kdbus", "kdbusfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
NULL, MNT_IN_CONTAINER },
-#endif
};
/* These are API file systems that might be mounted by other software,
diff --git a/src/core/service.c b/src/core/service.c
index 71252e29e2..fa1e80b710 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -568,14 +568,12 @@ static int service_add_extras(Service *s) {
s->notify_access = NOTIFY_MAIN;
if (s->bus_name) {
-#ifdef ENABLE_KDBUS
const char *n;
n = strjoina(s->bus_name, ".busname");
r = unit_add_dependency_by_name(UNIT(s), UNIT_AFTER, n, NULL, true);
if (r < 0)
return r;
-#endif
r = unit_watch_bus_name(UNIT(s), s->bus_name);
if (r < 0)
@@ -1180,7 +1178,6 @@ static int service_spawn(
} else
path = UNIT(s)->cgroup_path;
-#ifdef ENABLE_KDBUS
if (s->exec_context.bus_endpoint) {
r = bus_kernel_create_endpoint(UNIT(s)->manager->running_as == MANAGER_SYSTEM ? "system" : "user",
UNIT(s)->id, &bus_endpoint_path);
@@ -1192,7 +1189,6 @@ static int service_spawn(
* as the service is running. */
exec_params.bus_endpoint_fd = s->bus_endpoint_fd = r;
}
-#endif
exec_params.argv = argv;
exec_params.fds = fds;
diff --git a/src/journal/test-journal-interleaving.c b/src/journal/test-journal-interleaving.c
index c2fc123e42..adefa1b026 100644
--- a/src/journal/test-journal-interleaving.c
+++ b/src/journal/test-journal-interleaving.c
@@ -62,10 +62,19 @@ static void test_close(JournalFile *f) {
static void append_number(JournalFile *f, int n, uint64_t *seqnum) {
char *p;
dual_timestamp ts;
+ static dual_timestamp previous_ts = {};
struct iovec iovec[1];
dual_timestamp_get(&ts);
+ if (ts.monotonic <= previous_ts.monotonic)
+ ts.monotonic = previous_ts.monotonic + 1;
+
+ if (ts.realtime <= previous_ts.realtime)
+ ts.realtime = previous_ts.realtime + 1;
+
+ previous_ts = ts;
+
assert_se(asprintf(&p, "NUMBER=%d", n) >= 0);
iovec[0].iov_base = p;
iovec[0].iov_len = strlen(p);
diff --git a/src/journal/test-journal-stream.c b/src/journal/test-journal-stream.c
index e1146c692d..b5ecf2f375 100644
--- a/src/journal/test-journal-stream.c
+++ b/src/journal/test-journal-stream.c
@@ -80,6 +80,7 @@ int main(int argc, char *argv[]) {
char *z;
const void *data;
size_t l;
+ dual_timestamp previous_ts = DUAL_TIMESTAMP_NULL;
/* journal_file_open requires a valid machine id */
if (access("/etc/machine-id", F_OK) != 0)
@@ -101,6 +102,14 @@ int main(int argc, char *argv[]) {
dual_timestamp_get(&ts);
+ if (ts.monotonic <= previous_ts.monotonic)
+ ts.monotonic = previous_ts.monotonic + 1;
+
+ if (ts.realtime <= previous_ts.realtime)
+ ts.realtime = previous_ts.realtime + 1;
+
+ previous_ts = ts;
+
assert_se(asprintf(&p, "NUMBER=%u", i) >= 0);
iovec[0].iov_base = p;
iovec[0].iov_len = strlen(p);
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
index 6853038b67..6a0d270739 100644
--- a/src/libsystemd-network/sd-dhcp-client.c
+++ b/src/libsystemd-network/sd-dhcp-client.c
@@ -928,6 +928,8 @@ static int client_initialize_time_events(sd_dhcp_client *client) {
r = sd_event_source_set_priority(client->timeout_resend,
client->event_priority);
+ if (r < 0)
+ goto error;
r = sd_event_source_set_description(client->timeout_resend, "dhcp4-resend-timer");
if (r < 0)
diff --git a/src/libsystemd/.gitignore b/src/libsystemd/.gitignore
index d48e1cdd13..50a1692374 100644
--- a/src/libsystemd/.gitignore
+++ b/src/libsystemd/.gitignore
@@ -1,2 +1 @@
-/libsystemd.sym
/libsystemd.pc
diff --git a/src/libsystemd/libsystemd.sym.m4 b/src/libsystemd/libsystemd.sym
index 3121e71282..809db1f6cc 100644
--- a/src/libsystemd/libsystemd.sym.m4
+++ b/src/libsystemd/libsystemd.sym
@@ -459,41 +459,3 @@ global:
sd_event_source_get_signal;
sd_event_source_get_child_pid;
} LIBSYSTEMD_220;
-
-m4_ifdef(`ENABLE_KDBUS',
-LIBSYSTEMD_FUTURE {
-global:
- /* sd-utf8 */
- sd_utf8_is_valid;
- sd_ascii_is_valid;
-
- /* sd-resolve */
- sd_resolve_default;
- sd_resolve_new;
- sd_resolve_ref;
- sd_resolve_unref;
- sd_resolve_get_fd;
- sd_resolve_get_events;
- sd_resolve_get_timeout;
- sd_resolve_process;
- sd_resolve_wait;
- sd_resolve_get_tid;
- sd_resolve_attach_event;
- sd_resolve_detach_event;
- sd_resolve_get_event;
- sd_resolve_getaddrinfo;
- sd_resolve_getnameinfo;
- sd_resolve_res_query;
- sd_resolve_res_search;
- sd_resolve_query_ref;
- sd_resolve_query_unref;
- sd_resolve_query_is_done;
- sd_resolve_query_get_userdata;
- sd_resolve_query_set_userdata;
- sd_resolve_query_get_resolve;
-
- /* sd-path */
- sd_path_home;
- sd_path_search;
-} LIBSYSTEMD_220;
-)
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
index 0881b4779a..5dd6468707 100644
--- a/src/libsystemd/sd-bus/sd-bus.c
+++ b/src/libsystemd/sd-bus/sd-bus.c
@@ -1239,18 +1239,9 @@ int bus_set_address_user(sd_bus *b) {
if (!ee)
return -ENOMEM;
-#ifdef ENABLE_KDBUS
(void) asprintf(&b->address, KERNEL_USER_BUS_ADDRESS_FMT ";" UNIX_USER_BUS_ADDRESS_FMT, getuid(), ee);
-#else
- (void) asprintf(&b->address, UNIX_USER_BUS_ADDRESS_FMT, ee);
-#endif
- } else {
-#ifdef ENABLE_KDBUS
+ } else
(void) asprintf(&b->address, KERNEL_USER_BUS_ADDRESS_FMT, getuid());
-#else
- return -ECONNREFUSED;
-#endif
- }
if (!b->address)
return -ENOMEM;
@@ -1372,11 +1363,7 @@ int bus_set_address_system_machine(sd_bus *b, const char *machine) {
if (!e)
return -ENOMEM;
-#ifdef ENABLE_KDBUS
b->address = strjoin("x-machine-kernel:machine=", e, ";x-machine-unix:machine=", e, NULL);
-#else
- b->address = strjoin("x-machine-unix:machine=", e, NULL);
-#endif
if (!b->address)
return -ENOMEM;
@@ -2958,10 +2945,8 @@ _public_ int sd_bus_add_match(
/* Do not install server-side matches for matches
* against the local service, interface or bus
- * path. Also, when on kdbus don't install driver
- * matches server side. */
- if (scope == BUS_MATCH_GENERIC ||
- (!bus->is_kernel && scope == BUS_MATCH_DRIVER)) {
+ * path. */
+ if (scope != BUS_MATCH_LOCAL) {
if (!bus->is_kernel) {
/* When this is not a kernel transport, we
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
index c27b01db96..9a8d682107 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/libudev-device.c
@@ -871,7 +871,7 @@ _public_ struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_
udev_list_cleanup(&udev_device->sysattrs);
FOREACH_DEVICE_SYSATTR(udev_device->device, sysattr)
- udev_list_entry_add(&udev_device->properties, sysattr, NULL);
+ udev_list_entry_add(&udev_device->sysattrs, sysattr, NULL);
udev_device->sysattrs_read = true;
}
diff --git a/src/login/logind-button.c b/src/login/logind-button.c
index 8079d0b5aa..210b889c4f 100644
--- a/src/login/logind-button.c
+++ b/src/login/logind-button.c
@@ -100,7 +100,7 @@ static void button_lid_switch_handle_action(Manager *manager, bool is_edge) {
assert(manager);
/* If we are docked, handle the lid switch differently */
- if (manager_is_docked_or_multiple_displays(manager))
+ if (manager_is_docked_or_external_displays(manager))
handle_action = manager->handle_lid_switch_docked;
else
handle_action = manager->handle_lid_switch;
diff --git a/src/login/logind-core.c b/src/login/logind-core.c
index f9e6ddfb3f..a6c01f7d85 100644
--- a/src/login/logind-core.c
+++ b/src/login/logind-core.c
@@ -477,7 +477,7 @@ int manager_spawn_autovt(Manager *m, unsigned int vtnr) {
return r;
}
-bool manager_is_docked(Manager *m) {
+static bool manager_is_docked(Manager *m) {
Iterator i;
Button *b;
@@ -488,7 +488,7 @@ bool manager_is_docked(Manager *m) {
return false;
}
-int manager_count_displays(Manager *m) {
+static int manager_count_external_displays(Manager *m) {
_cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL;
struct udev_list_entry *item = NULL, *first = NULL;
int r;
@@ -510,7 +510,8 @@ int manager_count_displays(Manager *m) {
udev_list_entry_foreach(item, first) {
_cleanup_udev_device_unref_ struct udev_device *d = NULL;
struct udev_device *p;
- const char *status;
+ const char *status, *enabled, *dash, *nn, *i;
+ bool external = false;
d = udev_device_new_from_syspath(m->udev, udev_list_entry_get_name(item));
if (!d)
@@ -526,6 +527,40 @@ int manager_count_displays(Manager *m) {
if (!streq_ptr(udev_device_get_subsystem(p), "drm"))
continue;
+ nn = udev_device_get_sysname(d);
+ if (!nn)
+ continue;
+
+ /* Ignore internal displays: the type is encoded in
+ * the sysfs name, as the second dash seperated item
+ * (the first is the card name, the last the connector
+ * number). We implement a whitelist of external
+ * displays here, rather than a whitelist, to ensure
+ * we don't block suspends too eagerly. */
+ dash = strchr(nn, '-');
+ if (!dash)
+ continue;
+
+ dash++;
+ FOREACH_STRING(i, "VGA-", "DVI-I-", "DVI-D-", "DVI-A-"
+ "Composite-", "SVIDEO-", "Component-",
+ "DIN-", "DP-", "HDMI-A-", "HDMI-B-", "TV-") {
+
+ if (startswith(dash, i)) {
+ external = true;
+ break;
+ }
+ }
+ if (!external)
+ continue;
+
+ /* Ignore ports that are not enabled */
+ enabled = udev_device_get_sysattr_value(d, "enabled");
+ if (!enabled)
+ continue;
+ if (!streq_ptr(enabled, "enabled"))
+ continue;
+
/* We count any connector which is not explicitly
* "disconnected" as connected. */
status = udev_device_get_sysattr_value(d, "status");
@@ -536,7 +571,7 @@ int manager_count_displays(Manager *m) {
return n;
}
-bool manager_is_docked_or_multiple_displays(Manager *m) {
+bool manager_is_docked_or_external_displays(Manager *m) {
int n;
/* If we are docked don't react to lid closing */
@@ -547,11 +582,11 @@ bool manager_is_docked_or_multiple_displays(Manager *m) {
/* If we have more than one display connected,
* assume that we are docked. */
- n = manager_count_displays(m);
+ n = manager_count_external_displays(m);
if (n < 0)
log_warning_errno(n, "Display counting failed: %m");
- else if (n > 1) {
- log_debug("Multiple (%i) displays connected.", n);
+ else if (n >= 1) {
+ log_debug("External (%i) displays connected.", n);
return true;
}
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index e6f9ec7845..8ebcd3f5ca 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -258,7 +258,7 @@ static int property_get_docked(
assert(reply);
assert(m);
- return sd_bus_message_append(reply, "b", manager_is_docked_or_multiple_displays(m));
+ return sd_bus_message_append(reply, "b", manager_is_docked_or_external_displays(m));
}
static int method_get_session(sd_bus_message *message, void *userdata, sd_bus_error *error) {
diff --git a/src/login/logind-user.c b/src/login/logind-user.c
index 6720899def..21d7268120 100644
--- a/src/login/logind-user.c
+++ b/src/login/logind-user.c
@@ -36,9 +36,10 @@
#include "bus-error.h"
#include "conf-parser.h"
#include "clean-ipc.h"
-#include "logind-user.h"
#include "smack-util.h"
#include "formats-util.h"
+#include "label.h"
+#include "logind-user.h"
User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name) {
User *u;
@@ -105,7 +106,7 @@ void user_free(User *u) {
free(u);
}
-int user_save(User *u) {
+static int user_save_internal(User *u) {
_cleanup_free_ char *temp_path = NULL;
_cleanup_fclose_ FILE *f = NULL;
int r;
@@ -113,9 +114,6 @@ int user_save(User *u) {
assert(u);
assert(u->state_file);
- if (!u->started)
- return 0;
-
r = mkdir_safe_label("/run/systemd/users", 0755, 0, 0);
if (r < 0)
goto finish;
@@ -258,6 +256,15 @@ finish:
return r;
}
+int user_save(User *u) {
+ assert(u);
+
+ if (!u->started)
+ return 0;
+
+ return user_save_internal (u);
+}
+
int user_load(User *u) {
_cleanup_free_ char *display = NULL, *realtime = NULL, *monotonic = NULL;
Session *s = NULL;
@@ -323,7 +330,7 @@ static int user_mkdir_runtime_path(User *u) {
if (path_is_mount_point(p, 0) <= 0) {
_cleanup_free_ char *t = NULL;
- (void) mkdir(p, 0700);
+ (void) mkdir_label(p, 0700);
if (mac_smack_use())
r = asprintf(&t, "mode=0700,smackfsroot=*,uid=" UID_FMT ",gid=" GID_FMT ",size=%zu", u->uid, u->gid, u->manager->runtime_dir_size);
@@ -351,6 +358,10 @@ static int user_mkdir_runtime_path(User *u) {
goto fail;
}
}
+
+ r = label_fix(p, false, false);
+ if (r < 0)
+ log_warning_errno(r, "Failed to fix label of '%s', ignoring: %m", p);
}
u->runtime_path = p;
@@ -453,6 +464,12 @@ int user_start(User *u) {
if (r < 0)
return r;
+ /* Save the user data so far, because pam_systemd will read the
+ * XDG_RUNTIME_DIR out of it while starting up systemd --user.
+ * We need to do user_save_internal() because we have not
+ * "officially" started yet. */
+ user_save_internal(u);
+
/* Spawn user systemd */
r = user_start_service(u);
if (r < 0)
@@ -704,7 +721,7 @@ UserState user_get_state(User *u) {
if (u->stopping)
return USER_CLOSING;
- if (u->slice_job || u->service_job)
+ if (!u->started || u->slice_job || u->service_job)
return USER_OPENING;
if (u->sessions) {
diff --git a/src/login/logind.h b/src/login/logind.h
index cd226f55fc..feb381d0b1 100644
--- a/src/login/logind.h
+++ b/src/login/logind.h
@@ -156,9 +156,7 @@ int manager_get_idle_hint(Manager *m, dual_timestamp *t);
int manager_get_user_by_pid(Manager *m, pid_t pid, User **user);
int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session);
-bool manager_is_docked(Manager *m);
-int manager_count_displays(Manager *m);
-bool manager_is_docked_or_multiple_displays(Manager *m);
+bool manager_is_docked_or_external_displays(Manager *m);
extern const sd_bus_vtable manager_vtable[];
diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
index b5d419000c..0ebdfdf19e 100644
--- a/src/login/pam_systemd.c
+++ b/src/login/pam_systemd.c
@@ -177,7 +177,6 @@ static int export_legacy_dbus_address(
uid_t uid,
const char *runtime) {
-#ifdef ENABLE_KDBUS
_cleanup_free_ char *s = NULL;
int r;
@@ -195,7 +194,7 @@ static int export_legacy_dbus_address(
pam_syslog(handle, LOG_ERR, "Failed to set bus variable.");
return r;
}
-#endif
+
return PAM_SUCCESS;
}
diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
index 9f026beb13..7813a0bcc7 100644
--- a/src/machine/machine-dbus.c
+++ b/src/machine/machine-dbus.c
@@ -509,11 +509,7 @@ int bus_machine_method_open_login(sd_bus_message *message, void *userdata, sd_bu
if (r < 0)
return r;
-#ifdef ENABLE_KDBUS
# define ADDRESS_FMT "x-machine-kernel:pid=%1$" PID_PRI ";x-machine-unix:pid=%1$" PID_PRI
-#else
-# define ADDRESS_FMT "x-machine-unix:pid=%1$" PID_PRI
-#endif
if (asprintf(&address, ADDRESS_FMT, m->leader) < 0)
return log_oom();
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 3c31629d1e..d1154de08a 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -4972,6 +4972,10 @@ finish:
if (pid > 0)
kill(pid, SIGKILL);
+ /* Try to flush whatever is still queued in the pty */
+ if (master >= 0)
+ (void) copy_bytes(master, STDOUT_FILENO, (off_t) -1, false);
+
loop_remove(loop_nr, &image_fd);
if (remove_subvol && arg_directory) {
diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c
index 466f9aa601..bd8c988751 100644
--- a/src/shared/acl-util.c
+++ b/src/shared/acl-util.c
@@ -223,7 +223,7 @@ int acl_search_groups(const char *path, char ***ret_groups) {
return ret;
}
-int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask) {
+int parse_acl(const char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask) {
_cleanup_free_ char **a = NULL, **d = NULL; /* strings are not be freed */
_cleanup_strv_free_ char **split;
char **entry;
@@ -232,7 +232,7 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask)
split = strv_split(text, ",");
if (!split)
- return log_oom();
+ return -ENOMEM;
STRV_FOREACH(entry, split) {
char *p;
@@ -245,9 +245,9 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask)
r = strv_push(&d, p);
else
r = strv_push(&a, *entry);
+ if (r < 0)
+ return r;
}
- if (r < 0)
- return r;
if (!strv_isempty(a)) {
_cleanup_free_ char *join;
@@ -258,7 +258,7 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask)
a_acl = acl_from_text(join);
if (!a_acl)
- return -EINVAL;
+ return -errno;
if (want_mask) {
r = calc_acl_mask_if_needed(&a_acl);
@@ -276,7 +276,7 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask)
d_acl = acl_from_text(join);
if (!d_acl)
- return -EINVAL;
+ return -errno;
if (want_mask) {
r = calc_acl_mask_if_needed(&d_acl);
@@ -288,6 +288,7 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask)
*acl_access = a_acl;
*acl_default = d_acl;
a_acl = d_acl = NULL;
+
return 0;
}
diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h
index c8bcc266d0..cf612e8722 100644
--- a/src/shared/acl-util.h
+++ b/src/shared/acl-util.h
@@ -33,7 +33,7 @@ int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry);
int calc_acl_mask_if_needed(acl_t *acl_p);
int add_base_acls_if_needed(acl_t *acl_p, const char *path);
int acl_search_groups(const char* path, char ***ret_groups);
-int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask);
+int parse_acl(const char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask);
int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl);
/* acl_free takes multiple argument types.
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index 8fcc289957..11350dad71 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -545,7 +545,6 @@ int bus_open_system_systemd(sd_bus **_bus) {
* directly to the system instance, instead of going via the
* bus */
-#ifdef ENABLE_KDBUS
r = sd_bus_new(&bus);
if (r < 0)
return r;
@@ -564,7 +563,6 @@ int bus_open_system_systemd(sd_bus **_bus) {
}
bus = sd_bus_unref(bus);
-#endif
r = sd_bus_new(&bus);
if (r < 0)
@@ -598,7 +596,6 @@ int bus_open_user_systemd(sd_bus **_bus) {
assert(_bus);
-#ifdef ENABLE_KDBUS
r = sd_bus_new(&bus);
if (r < 0)
return r;
@@ -616,7 +613,6 @@ int bus_open_user_systemd(sd_bus **_bus) {
}
bus = sd_bus_unref(bus);
-#endif
e = secure_getenv("XDG_RUNTIME_DIR");
if (!e)
@@ -2034,15 +2030,22 @@ int bus_path_decode_unique(const char *path, const char *prefix, char **ret_send
bool is_kdbus_wanted(void) {
_cleanup_free_ char *value = NULL;
+#ifdef ENABLE_KDBUS
+ const bool configured = true;
+#else
+ const bool configured = false;
+#endif
+
int r;
- if (get_proc_cmdline_key("kdbus", NULL) <= 0) {
- r = get_proc_cmdline_key("kdbus=", &value);
- if (r <= 0 || parse_boolean(value) != 1)
- return false;
- }
+ if (get_proc_cmdline_key("kdbus", NULL) > 0)
+ return true;
+
+ r = get_proc_cmdline_key("kdbus=", &value);
+ if (r <= 0)
+ return configured;
- return true;
+ return parse_boolean(value) == 1;
}
bool is_kdbus_available(void) {
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index ac5eb16f62..068da465d9 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -274,8 +274,10 @@ static int output_short(
if (r < 0)
return log_error_errno(r, "Failed to get journal fields: %m");
- if (!message)
+ if (!message) {
+ log_debug("Skipping message without MESSAGE= field.");
return 0;
+ }
if (!(flags & OUTPUT_SHOW_ALL))
strip_tab_ansi(&message, &message_len);
diff --git a/src/shared/watchdog.c b/src/shared/watchdog.c
index 2fe4eb81cf..9d39beb340 100644
--- a/src/shared/watchdog.c
+++ b/src/shared/watchdog.c
@@ -60,8 +60,13 @@ static int update_timeout(void) {
flags = WDIOS_ENABLECARD;
r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags);
- if (r < 0)
- return log_warning_errno(errno, "Failed to enable hardware watchdog: %m");
+ if (r < 0) {
+ /* ENOTTY means the watchdog is always enabled so we're fine */
+ log_full(errno == ENOTTY ? LOG_DEBUG : LOG_WARNING,
+ "Failed to enable hardware watchdog: %m");
+ if (errno != ENOTTY)
+ return -errno;
+ }
r = ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0);
if (r < 0)
diff --git a/src/test/test-barrier.c b/src/test/test-barrier.c
index 2d109a30e7..f37cb49c85 100644
--- a/src/test/test-barrier.c
+++ b/src/test/test-barrier.c
@@ -438,6 +438,16 @@ TEST_BARRIER(test_barrier_pending_exit,
TEST_BARRIER_WAIT_SUCCESS(pid2));
int main(int argc, char *argv[]) {
+ /*
+ * This test uses real-time alarms and sleeps to test for CPU races
+ * explicitly. This is highly fragile if your system is under load. We
+ * already increased the BASE_TIME value to make the tests more robust,
+ * but that just makes the test take significantly longer. Hence,
+ * disable the test by default, so it will not break CI.
+ */
+ if (argc < 2)
+ return EXIT_TEST_SKIP;
+
log_parse_environment();
log_open();
diff --git a/src/test/test-cgroup-mask.c b/src/test/test-cgroup-mask.c
index 289dddbaac..72f874d8a9 100644
--- a/src/test/test-cgroup-mask.c
+++ b/src/test/test-cgroup-mask.c
@@ -77,12 +77,12 @@ static int test_cgroup_mask(void) {
assert_se(unit_get_members_mask(root) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY));
/* Verify aggregation of sibling masks. */
- assert_se(unit_get_siblings_mask(son) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported));
- assert_se(unit_get_siblings_mask(daughter) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported));
+ assert_se(unit_get_siblings_mask(son) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY));
+ assert_se(unit_get_siblings_mask(daughter) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY));
assert_se(unit_get_siblings_mask(grandchild) == 0);
- assert_se(unit_get_siblings_mask(parent_deep) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported));
- assert_se(unit_get_siblings_mask(parent) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & m->cgroup_supported));
- assert_se(unit_get_siblings_mask(root) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & m->cgroup_supported));
+ assert_se(unit_get_siblings_mask(parent_deep) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY));
+ assert_se(unit_get_siblings_mask(parent) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY));
+ assert_se(unit_get_siblings_mask(root) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY));
/* Verify aggregation of target masks. */
assert_se(unit_get_target_mask(son) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported));
diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c
index a8025c825b..8358789e6f 100644
--- a/src/test/test-unit-file.c
+++ b/src/test/test-unit-file.c
@@ -145,19 +145,19 @@ static void test_config_parse_exec(void) {
assert_se(r == 0);
assert_se(c1->command_next == NULL);
- log_info("/* no command, check for bad memory access */");
+ log_info("/* no command, whitespace only, reset */");
r = config_parse_exec(NULL, "fake", 3, "section", 1,
"LValue", 0, " ",
&c, NULL);
assert_se(r == 0);
- assert_se(c1->command_next == NULL);
+ assert_se(c == NULL);
log_info("/* ignore && honour_argv0 */");
r = config_parse_exec(NULL, "fake", 4, "section", 1,
"LValue", 0, "-@/RValue///slashes3 argv0a r1",
&c, NULL);
assert_se(r >= 0);
- c1 = c1->command_next;
+ c1 = c;
check_execcommand(c1, "/RValue/slashes3", "argv0a", "r1", NULL, true);
log_info("/* ignore && honour_argv0 */");
@@ -195,6 +195,19 @@ static void test_config_parse_exec(void) {
c1 = c1->command_next;
check_execcommand(c1, "/goo/goo", NULL, "boo", NULL, false);
+ log_info("/* two semicolons in a row */");
+ r = config_parse_exec(NULL, "fake", 5, "section", 1,
+ "LValue", 0,
+ "-@/RValue argv0 r1 ; ; "
+ "/goo/goo boo",
+ &c, NULL);
+ assert_se(r >= 0);
+ c1 = c1->command_next;
+ check_execcommand(c1, "/RValue", "argv0", "r1", NULL, true);
+
+ /* second command fails because the executable name is ";" */
+ assert_se(c1->command_next == NULL);
+
log_info("/* trailing semicolon */");
r = config_parse_exec(NULL, "fake", 5, "section", 1,
"LValue", 0,
@@ -206,6 +219,26 @@ static void test_config_parse_exec(void) {
assert_se(c1->command_next == NULL);
+ log_info("/* trailing semicolon, no whitespace */");
+ r = config_parse_exec(NULL, "fake", 5, "section", 1,
+ "LValue", 0,
+ "-@/RValue argv0 r1 ;",
+ &c, NULL);
+ assert_se(r >= 0);
+ c1 = c1->command_next;
+ check_execcommand(c1, "/RValue", "argv0", "r1", NULL, true);
+
+ assert_se(c1->command_next == NULL);
+
+ log_info("/* trailing semicolon in single quotes */");
+ r = config_parse_exec(NULL, "fake", 5, "section", 1,
+ "LValue", 0,
+ "-@/RValue argv0 r1 ';'",
+ &c, NULL);
+ assert_se(r >= 0);
+ c1 = c1->command_next;
+ check_execcommand(c1, "/RValue", "argv0", "r1", ";", true);
+
log_info("/* escaped semicolon */");
r = config_parse_exec(NULL, "fake", 5, "section", 1,
"LValue", 0,
@@ -218,12 +251,22 @@ static void test_config_parse_exec(void) {
log_info("/* escaped semicolon with following arg */");
r = config_parse_exec(NULL, "fake", 5, "section", 1,
"LValue", 0,
- "/sbin/find \\; x",
+ "/sbin/find \\; /x",
+ &c, NULL);
+ assert_se(r >= 0);
+ c1 = c1->command_next;
+ check_execcommand(c1,
+ "/sbin/find", NULL, ";", "/x", false);
+
+ log_info("/* escaped semicolon as part of an expression */");
+ r = config_parse_exec(NULL, "fake", 5, "section", 1,
+ "LValue", 0,
+ "/sbin/find \\;x",
&c, NULL);
assert_se(r >= 0);
c1 = c1->command_next;
check_execcommand(c1,
- "/sbin/find", NULL, ";", "x", false);
+ "/sbin/find", NULL, "\\;x", NULL, false);
log_info("/* encoded semicolon */");
r = config_parse_exec(NULL, "fake", 5, "section", 1,
@@ -234,6 +277,25 @@ static void test_config_parse_exec(void) {
c1 = c1->command_next;
check_execcommand(c1, "/bin/find", NULL, ";", NULL, false);
+ log_info("/* quoted semicolon */");
+ r = config_parse_exec(NULL, "fake", 5, "section", 1,
+ "LValue", 0,
+ "/bin/find \";\"",
+ &c, NULL);
+ assert_se(r >= 0);
+ c1 = c1->command_next;
+ check_execcommand(c1, "/bin/find", NULL, ";", NULL, false);
+
+ log_info("/* quoted semicolon with following arg */");
+ r = config_parse_exec(NULL, "fake", 5, "section", 1,
+ "LValue", 0,
+ "/sbin/find \";\" /x",
+ &c, NULL);
+ assert_se(r >= 0);
+ c1 = c1->command_next;
+ check_execcommand(c1,
+ "/sbin/find", NULL, ";", "/x", false);
+
log_info("/* spaces in the filename */");
r = config_parse_exec(NULL, "fake", 5, "section", 1,
"LValue", 0,
diff --git a/src/test/test-util.c b/src/test/test-util.c
index ed8db45115..ad9ea3bcce 100644
--- a/src/test/test-util.c
+++ b/src/test/test-util.c
@@ -1304,6 +1304,244 @@ static void test_unquote_first_word(void) {
assert_se(streq(t, "pi\360\237\222\251le"));
free(t);
assert_se(p == original + 32);
+
+ p = original = "fooo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_RELAX) > 0);
+ assert_se(streq(t, "fooo"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE_RELAX) > 0);
+ assert_se(streq(t, "fooo\\"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE_RELAX|UNQUOTE_RELAX) > 0);
+ assert_se(streq(t, "fooo\\"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE|UNQUOTE_CUNESCAPE_RELAX) > 0);
+ assert_se(streq(t, "fooo\\"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word(&p, &t, 0) == -EINVAL);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_RELAX) > 0);
+ assert_se(streq(t, "foo"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE_RELAX) == -EINVAL);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE_RELAX|UNQUOTE_RELAX) > 0);
+ assert_se(streq(t, "foo\\"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE|UNQUOTE_CUNESCAPE_RELAX|UNQUOTE_RELAX) > 0);
+ assert_se(streq(t, "foo\\"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_RELAX) > 0);
+ assert_se(streq(t, "fooo bar"));
+ free(t);
+ assert_se(p == original + 10);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE_RELAX) > 0);
+ assert_se(streq(t, "fooo bar"));
+ free(t);
+ assert_se(p == original + 10);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE_RELAX|UNQUOTE_RELAX) > 0);
+ assert_se(streq(t, "fooo bar"));
+ free(t);
+ assert_se(p == original + 10);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE) == -EINVAL);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE|UNQUOTE_CUNESCAPE_RELAX) > 0);
+ assert_se(streq(t, "fooo\\ bar"));
+ free(t);
+ assert_se(p == original + 10);
+
+ p = original = "\\w+@\\K[\\d.]+";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE) == -EINVAL);
+ assert_se(p == original + 1);
+
+ p = original = "\\w+@\\K[\\d.]+";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE|UNQUOTE_CUNESCAPE_RELAX) > 0);
+ assert_se(streq(t, "\\w+@\\K[\\d.]+"));
+ free(t);
+ assert_se(p == original + 12);
+
+ p = original = "\\w+\\b";
+ assert_se(unquote_first_word(&p, &t, UNQUOTE_CUNESCAPE|UNQUOTE_CUNESCAPE_RELAX) > 0);
+ assert_se(streq(t, "\\w+\b"));
+ free(t);
+ assert_se(p == original + 5);
+}
+
+static void test_unquote_first_word_and_warn(void) {
+ const char *p, *original;
+ char *t;
+
+ p = original = "foobar waldo";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "foobar"));
+ free(t);
+ assert_se(p == original + 7);
+
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "waldo"));
+ free(t);
+ assert_se(p == original + 12);
+
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) == 0);
+ assert_se(!t);
+ assert_se(p == original + 12);
+
+ p = original = "\"foobar\" \'waldo\'";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "foobar"));
+ free(t);
+ assert_se(p == original + 9);
+
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "waldo"));
+ free(t);
+ assert_se(p == original + 16);
+
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) == 0);
+ assert_se(!t);
+ assert_se(p == original + 16);
+
+ p = original = "\"";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) == -EINVAL);
+ assert_se(p == original + 1);
+
+ p = original = "\'";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) == -EINVAL);
+ assert_se(p == original + 1);
+
+ p = original = "\'fooo";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) == -EINVAL);
+ assert_se(p == original + 5);
+
+ p = original = "\'fooo";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_RELAX, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "fooo"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = " foo\\ba\\x6ar ";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "foo\ba\x6ar"));
+ free(t);
+ assert_se(p == original + 13);
+
+ p = original = " foo\\ba\\x6ar ";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "foobax6ar"));
+ free(t);
+ assert_se(p == original + 13);
+
+ p = original = " f\\u00f6o \"pi\\U0001F4A9le\" ";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "föo"));
+ free(t);
+ assert_se(p == original + 13);
+
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "pi\360\237\222\251le"));
+ free(t);
+ assert_se(p == original + 32);
+
+ p = original = "fooo\\";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_RELAX, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "fooo"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "fooo\\"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "fooo\\"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) == -EINVAL);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_RELAX, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "foo"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) == -EINVAL);
+ assert_se(p == original + 5);
+
+ p = original = "\"foo\\";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE|UNQUOTE_RELAX, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "foo"));
+ free(t);
+ assert_se(p == original + 5);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_RELAX, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "fooo bar"));
+ free(t);
+ assert_se(p == original + 10);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word_and_warn(&p, &t, 0, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "fooo bar"));
+ free(t);
+ assert_se(p == original + 10);
+
+ p = original = "fooo\\ bar quux";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "fooo\\ bar"));
+ free(t);
+ assert_se(p == original + 10);
+
+ p = original = "\\w+@\\K[\\d.]+";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "\\w+@\\K[\\d.]+"));
+ free(t);
+ assert_se(p == original + 12);
+
+ p = original = "\\w+\\b";
+ assert_se(unquote_first_word_and_warn(&p, &t, UNQUOTE_CUNESCAPE, NULL, "fake", 1, original) > 0);
+ assert_se(streq(t, "\\w+\b"));
+ free(t);
+ assert_se(p == original + 5);
}
static void test_unquote_many_words(void) {
@@ -1610,6 +1848,7 @@ int main(int argc, char *argv[]) {
test_glob_exists();
test_execute_directory();
test_unquote_first_word();
+ test_unquote_first_word_and_warn();
test_unquote_many_words();
test_parse_proc_cmdline();
test_raw_clone();
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 027a5c2ca8..42f757c4b7 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -496,9 +496,10 @@ static int dir_cleanup(
}
if (mountpoint && S_ISREG(s.st_mode))
- if ((streq(dent->d_name, ".journal") && s.st_uid == 0) ||
- streq(dent->d_name, "aquota.user") ||
- streq(dent->d_name, "aquota.group")) {
+ if (s.st_uid == 0 && STR_IN_SET(dent->d_name,
+ ".journal",
+ "aquota.user",
+ "aquota.group")) {
log_debug("Skipping \"%s\".", sub_path);
continue;
}
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index 5ce11606c9..c205f1d5ec 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -43,6 +43,7 @@
#include "sd-daemon.h"
#include "sd-event.h"
+#include "terminal-util.h"
#include "signal-util.h"
#include "event-util.h"
#include "netlink-util.h"
@@ -435,7 +436,6 @@ static void worker_spawn(Manager *manager, struct event *event) {
if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) {
log_debug_errno(errno, "Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d));
fd_lock = safe_close(fd_lock);
- r = -EAGAIN;
goto skip;
}
}
@@ -1687,6 +1687,10 @@ int main(int argc, char *argv[]) {
log_info("starting version " VERSION);
+ /* connect /dev/null to stdin, stdout, stderr */
+ if (log_get_max_level() < LOG_DEBUG)
+ (void) make_null_stdio();
+
pid = fork();
switch (pid) {
case 0:
diff --git a/sysusers.d/systemd.conf.m4 b/sysusers.d/systemd.conf.m4
index 23175de1f5..81b1d79c37 100644
--- a/sysusers.d/systemd.conf.m4
+++ b/sysusers.d/systemd.conf.m4
@@ -6,9 +6,7 @@
# (at your option) any later version.
g systemd-journal - -
-m4_ifdef(`ENABLE_KDBUS',
u systemd-bus-proxy - "systemd Bus Proxy"
-)m4_dnl
m4_ifdef(`ENABLE_NETWORKD',
u systemd-network - "systemd Network Management"
)m4_dnl
diff --git a/units/systemd-networkd.service.m4.in b/units/systemd-networkd.service.m4.in
index 7f216f331c..64d9130c24 100644
--- a/units/systemd-networkd.service.m4.in
+++ b/units/systemd-networkd.service.m4.in
@@ -17,13 +17,11 @@ Before=network.target multi-user.target shutdown.target
Conflicts=shutdown.target
Wants=network.target
-m4_ifdef(`ENABLE_KDBUS',
# On kdbus systems we pull in the busname explicitly, because it
# carries policy that allows the daemon to acquire its name.
Wants=org.freedesktop.network1.busname
After=org.freedesktop.network1.busname
-)m4_dnl
[Service]
Type=notify
Restart=on-failure
diff --git a/units/systemd-resolved.service.m4.in b/units/systemd-resolved.service.m4.in
index 98ae564af6..dce5402458 100644
--- a/units/systemd-resolved.service.m4.in
+++ b/units/systemd-resolved.service.m4.in
@@ -10,13 +10,11 @@ Description=Network Name Resolution
Documentation=man:systemd-resolved.service(8)
After=systemd-networkd.service network.target
-m4_ifdef(`ENABLE_KDBUS',
# On kdbus systems we pull in the busname explicitly, because it
# carries policy that allows the daemon to acquire its name.
Wants=org.freedesktop.resolve1.busname
After=org.freedesktop.resolve1.busname
-)m4_dnl
[Service]
Type=notify
Restart=always