All of lore.kernel.org
 help / color / mirror / Atom feed
* [Powertop] [PATCH] Make libpci dependency optional
@ 2012-07-18 14:53 Igor Zhbanov
  0 siblings, 0 replies; 3+ messages in thread
From: Igor Zhbanov @ 2012-07-18 14:53 UTC (permalink / raw)
  To: powertop

[-- Attachment #1: Type: text/plain, Size: 4825 bytes --]

Make libpci dependency optional. Provide --without-libpci option to configure.
---
 configure.ac               |   10 +++++++---
 src/devices/runtime_pm.cpp |    3 +++
 src/lib.cpp                |    5 +++++
 src/main.cpp               |    6 ++++++
 src/tuning/runtime.cpp     |    4 ++++
 5 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index ff4cdea..4a7cdfe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -47,9 +47,13 @@ AC_CHECK_FUNCS([fdatasync getpagesize gettimeofday memmove memset mkdir munmap p
 
 AC_SEARCH_LIBS([delwin], [ncursesw ncurses], [], AC_MSG_ERROR([ncurses is required but was not found]), [])
 
-PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
-	AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_MSG_ERROR([libpci is required but was not found]), [])
-]) 
+AC_ARG_WITH([libpci], AS_HELP_STRING([--without-libpci], [Disable libcpi support]))
+AS_IF([test "x$with_libpci" = "xno"], [
+	AC_DEFINE([DISABLE_PCI], [1], [Disable PCI support])], [
+	PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
+		AC_SEARCH_LIBS([pci_get_dev], [pci], [],
+		AC_MSG_ERROR([libpci is required but was not found]), [])])])
+
 PKG_CHECK_MODULES([LIBZ], [zlib],[],[
 	AC_SEARCH_LIBS([deflate], [z], [], AC_MSG_ERROR([zlib is required but was not found]), [])
 ]) 
diff --git a/src/devices/runtime_pm.cpp b/src/devices/runtime_pm.cpp
index 0d13cab..0ef0895 100644
--- a/src/devices/runtime_pm.cpp
+++ b/src/devices/runtime_pm.cpp
@@ -22,6 +22,7 @@
  * Authors:
  *	Arjan van de Ven <arjan(a)linux.intel.com>
  */
+#include "../../config.h"
 #include "runtime_pm.h"
 
 #include <string.h>
@@ -201,6 +202,7 @@ static void do_bus(const char *bus)
 
 		dev = new class runtime_pmdevice(entry->d_name, filename);
 
+#ifndef DISABLE_PCI
 		if (strcmp(bus, "pci") == 0) {
 			uint16_t vendor = 0, device = 0;
 
@@ -226,6 +228,7 @@ static void do_bus(const char *bus)
 				dev->set_human_name(devname);
 			}
 		}
+#endif /* !DISABLE_PCI */
 		all_devices.push_back(dev);
 	}
 	closedir(dir);
diff --git a/src/lib.cpp b/src/lib.cpp
index 0f87e48..3eb3b15 100644
--- a/src/lib.cpp
+++ b/src/lib.cpp
@@ -23,6 +23,7 @@
  *	Arjan van de Ven <arjan(a)linux.intel.com>
  *	Peter Anvin
  */
+#include "../config.h"
 #include <map>
 #include <string.h>
 #include <iostream>
@@ -35,9 +36,11 @@
 #include <math.h>
 #include <stdlib.h>
 
+#ifndef DISABLE_PCI
 extern "C" {
 #include <pci/pci.h>
 }
+#endif /* !DISABLE_PCI */
 
 #include "lib.h"
 
@@ -266,6 +269,7 @@ void format_watts(double W, char *buffer, unsigned int len)
 }
 
 
+#ifndef DISABLE_PCI
 static struct pci_access *pci_access;
 
 char *pci_id_to_name(uint16_t vendor, uint16_t device, char *buffer, int len)
@@ -289,6 +293,7 @@ void end_pci_access(void)
 	if (pci_access)
 		pci_free_name_list(pci_access);
 }
+#endif /* !DISABLE_PCI */
 
 int utf_ok = -1;
 
diff --git a/src/main.cpp b/src/main.cpp
index 7a1b976..997c41d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -280,7 +280,9 @@ void report(int time, char *workload, int iterations, char *file)
 	learn_parameters(50, 0);
 	save_all_results("saved_results.powertop");
 	save_parameters("saved_parameters.powertop");
+#ifndef DISABLE_PCI
 	end_pci_access();
+#endif /* !DISABLE_PCI */
 	exit(0);
 }
 
@@ -443,7 +445,9 @@ int main(int argc, char **argv)
 	if (debug_learning) {
 	        learn_parameters(1000, 1);
 		dump_parameter_bundle();
+#ifndef DISABLE_PCI
 		end_pci_access();
+#endif /* !DISABLE_PCI */
 		exit(0);
 	}
 
@@ -473,7 +477,9 @@ int main(int argc, char **argv)
 	save_parameters("saved_parameters.powertop");
 	learn_parameters(500, 0);
 	save_parameters("saved_parameters.powertop");
+#ifndef DISABLE_PCI
 	end_pci_access();
+#endif /* !DISABLE_PCI */
 	clear_tuning();
 	reset_display();
 
diff --git a/src/tuning/runtime.cpp b/src/tuning/runtime.cpp
index b57d53e..4528e41 100644
--- a/src/tuning/runtime.cpp
+++ b/src/tuning/runtime.cpp
@@ -23,6 +23,7 @@
  *	Arjan van de Ven <arjan(a)linux.intel.com>
  */
 
+#include "../../config.h"
 #include "tuning.h"
 #include "tunable.h"
 #include "unistd.h"
@@ -48,6 +49,7 @@ runtime_tunable::runtime_tunable(const char *path, const char *bus, const char *
 	if (!device_has_runtime_pm(path))
 		sprintf(desc, _("%s device %s has no runtime power management"), bus, dev);
 
+#ifndef DISABLE_PCI
 	if (strcmp(bus, "pci") == 0) {
 		char filename[4096];
 		uint16_t vendor = 0, device = 0;
@@ -77,6 +79,8 @@ runtime_tunable::runtime_tunable(const char *path, const char *bus, const char *
 
 
 	}
+#endif /* !DISABLE_PCI */
+
 	sprintf(toggle_good, "echo 'auto' > '%s';", runtime_path);
 	sprintf(toggle_bad, "echo 'on' > '%s';", runtime_path);
 }
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Powertop] [PATCH] Make libpci dependency optional
@ 2012-07-18 15:31 Arjan van de Ven
  0 siblings, 0 replies; 3+ messages in thread
From: Arjan van de Ven @ 2012-07-18 15:31 UTC (permalink / raw)
  To: powertop

[-- Attachment #1: Type: text/plain, Size: 429 bytes --]

On 7/18/2012 7:53 AM, Igor Zhbanov wrote:
> +#ifndef DISABLE_PCI
>  	if (strcmp(bus, "pci") == 0) {
>  		char filename[4096];
>  		uint16_t vendor = 0, device = 0;
> @@ -77,6 +79,8 @@ runtime_tunable::runtime_tunable(const char *path, const char *bus, const char *
>  
>  
>  	}
> +#endif /* !DISABLE_PCI */

and this chunk is just silly

if you don't have PCI, this code will never trigger in the first place.



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Powertop] [PATCH] Make libpci dependency optional
@ 2012-07-18 15:30 Arjan van de Ven
  0 siblings, 0 replies; 3+ messages in thread
From: Arjan van de Ven @ 2012-07-18 15:30 UTC (permalink / raw)
  To: powertop

[-- Attachment #1: Type: text/plain, Size: 391 bytes --]

On 7/18/2012 7:53 AM, Igor Zhbanov wrote:
> +#ifndef DISABLE_PCI
>  	end_pci_access();
> +#endif /* !DISABLE_PCI */

this is the wrong way to do this.
the right way (similar to how the kernel does this, and earlier patches
to this list for this exact same thing did it), is to provide a dummy
end_pci_access().
randomly sprinking #ifdef's all over the code is a really bad idea.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-07-18 15:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-18 14:53 [Powertop] [PATCH] Make libpci dependency optional Igor Zhbanov
2012-07-18 15:30 Arjan van de Ven
2012-07-18 15:31 Arjan van de Ven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.