From b7bc31eb0bd71e2a3466df334a52a2c37c444d40 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 4 Mar 2011 21:17:00 +0100 Subject: apt-pkg/cdrom.{cc,h}: add udev_enumerate_add_match_sysattr to the libudev class --- apt-pkg/cdrom.h | 1 + 1 file changed, 1 insertion(+) (limited to 'apt-pkg/cdrom.h') diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index 14ca1d810..0fcdb6f1a 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -83,6 +83,7 @@ class pkgUdevCdromDevices /*{{{*/ void *libudev_handle; struct udev* (*udev_new)(void); int (*udev_enumerate_add_match_property)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); + int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); int (*udev_enumerate_scan_devices)(struct udev_enumerate *udev_enumerate); struct udev_list_entry* (*udev_enumerate_get_list_entry)(struct udev_enumerate *udev_enumerate); struct udev_device* (*udev_device_new_from_syspath)(struct udev *udev, const char *syspath); -- cgit v1.2.3-70-g09d2 From f7cbd1fbc57bc13dfc2ebc246453ab0875d4151a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Mar 2011 11:20:05 +0100 Subject: apt-pkg/cdrom.h: move new member to the end to minimize ABI risk --- apt-pkg/cdrom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apt-pkg/cdrom.h') diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index 0fcdb6f1a..5f67a3a94 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -83,7 +83,6 @@ class pkgUdevCdromDevices /*{{{*/ void *libudev_handle; struct udev* (*udev_new)(void); int (*udev_enumerate_add_match_property)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); - int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); int (*udev_enumerate_scan_devices)(struct udev_enumerate *udev_enumerate); struct udev_list_entry* (*udev_enumerate_get_list_entry)(struct udev_enumerate *udev_enumerate); struct udev_device* (*udev_device_new_from_syspath)(struct udev *udev, const char *syspath); @@ -93,6 +92,7 @@ class pkgUdevCdromDevices /*{{{*/ struct udev_enumerate *(*udev_enumerate_new) (struct udev *udev); struct udev_list_entry *(*udev_list_entry_get_next)(struct udev_list_entry *list_entry); const char* (*udev_device_get_property_value)(struct udev_device *udev_device, const char *key); + int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); // end libudev dlopen public: -- cgit v1.2.3-70-g09d2 From f4c4a24ea1cd8711c186c1c60b43f0bf0bc8af10 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Mar 2011 11:31:08 +0100 Subject: apt-pkg/cdrom.{cc,h}: add ScanForRemovable helper --- apt-pkg/cdrom.cc | 23 ++++++++++++++++------- apt-pkg/cdrom.h | 7 ++++++- 2 files changed, 22 insertions(+), 8 deletions(-) (limited to 'apt-pkg/cdrom.h') diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 86fe45fbe..deca6b4ac 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -868,8 +868,19 @@ pkgUdevCdromDevices::Dlopen() /*{{{*/ return true; } /*}}}*/ + + /*{{{*/ +// compatiblity only with the old API/ABI, can be removed on the next +// ABI break +vector +pkgUdevCdromDevices::Scan() +{ + return ScanForRemovable(true); +}; + /*}}}*/ + /*{{{*/ vector -pkgUdevCdromDevices::Scan() /*{{{*/ +pkgUdevCdromDevices::ScanForRemovable(bool CdromOnly) { vector cdrom_devices; struct udev_enumerate *enumerate; @@ -881,9 +892,10 @@ pkgUdevCdromDevices::Scan() /*{{{*/ udev_ctx = udev_new(); enumerate = udev_enumerate_new (udev_ctx); - udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1"); - //FIXME: just use removalble here to include usb etc - //udev_enumerate_add_match_sysattr(enumerate, "removable", "1"); + if (CdromOnly) + udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1"); + else + udev_enumerate_add_match_sysattr(enumerate, "removable", "1"); udev_enumerate_scan_devices (enumerate); devices = udev_enumerate_get_list_entry (enumerate); @@ -899,9 +911,6 @@ pkgUdevCdromDevices::Scan() /*{{{*/ if (mountpath == NULL) mountpath = FindMountPointForDevice(devnode); - if (_config->FindB("Debug::Acquire::cdrom", false)) - cerr << "found " << devnode << " mounted on " << mountpath << endl; - // fill in the struct cdrom.DeviceName = string(devnode); if (mountpath) { diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index 5f67a3a94..032fae755 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -68,7 +68,7 @@ class pkgCdrom /*{{{*/ /*}}}*/ -// class that uses libudev to find cdrom devices dynamically +// class that uses libudev to find cdrom/removable devices dynamically struct CdromDevice /*{{{*/ { string DeviceName; @@ -101,7 +101,12 @@ class pkgUdevCdromDevices /*{{{*/ // try to open bool Dlopen(); + + // this is the new interface + vector ScanForRemovable(bool CdromOnly); + // FIXME: compat with the old interface/API/ABI only vector Scan(); + }; /*}}}*/ -- cgit v1.2.3-70-g09d2