diff options
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)" @@ -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: @@ -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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 <libudev.h></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 |