On (05/18/12 15:40), Németh Márton wrote:
Doesn't compile either:
gcc -DHAVE_CONFIG_H -I. -I.. -D_FORTIFY_SOURCE=2 -g -O2 -MT tuning/powertop-iw.o
-MD -MP -MF tuning/.deps/powertop-iw.Tpo -c -o tuning/powertop-iw.o
`test -f 'tuning/iw.c' || echo './'`tuning/iw.c
tuning/iw.c: In function ‘set_power_save’:
tuning/iw.c:130: error: storage size of ‘ps_state’ isn’t known
tuning/iw.c:132: error: ‘NL80211_PS_DISABLED’ undeclared (first use in this function)
tuning/iw.c:132: error: (Each undeclared identifier is reported only once
tuning/iw.c:132: error: for each function it appears in.)
tuning/iw.c:134: error: ‘NL80211_PS_ENABLED’ undeclared (first use in this function)
tuning/iw.c:136: error: ‘NL80211_ATTR_PS_STATE’ undeclared (first use in this function)
tuning/iw.c: In function ‘print_power_save_handler’:
tuning/iw.c:152: error: ‘NL80211_ATTR_PS_STATE’ undeclared (first use in this function)
tuning/iw.c:156: error: ‘NL80211_PS_ENABLED’ undeclared (first use in this function)
tuning/iw.c:159: error: ‘NL80211_PS_DISABLED’ undeclared (first use in this function)
tuning/iw.c: In function ‘__handle_cmd’:
tuning/iw.c:227: error: ‘NL80211_CMD_GET_POWER_SAVE’ undeclared (first use in this
function)
tuning/iw.c:230: error: ‘NL80211_CMD_SET_POWER_SAVE’ undeclared (first use in this
function)
make[3]: *** [tuning/powertop-iw.o] Error 1
make[3]: Leaving directory `/mnt/store/nmarci/src/powertop/powertop2/powertop/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/mnt/store/nmarci/src/powertop/powertop2/powertop/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/store/nmarci/src/powertop/powertop2/powertop'
make: *** [all] Error 2
Looks like I have a linux/nl80211.h installed on my system which doesn't contain
NL80211_PS_ENABLED, NL80211_PS_DISABLED, NL80211_ATTR_PS_STATE,
NL80211_CMD_GET_POWER_SAVE
and NL80211_CMD_SET_POWER_SAVE. These were added by commit
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit...
The header file src/tuning/nl80211.h in powertop repository seems to be a newer one.
Hm.. In that case solution is simple.
---
src/tuning/iw.c | 1 +
src/tuning/iw.h | 6 ------
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/tuning/iw.c b/src/tuning/iw.c
index aeba3fd..68eb6dc 100644
--- a/src/tuning/iw.c
+++ b/src/tuning/iw.c
@@ -39,6 +39,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <unistd.h>
#include <stdbool.h>
+#include "nl80211.h"
#include <netlink/genl/genl.h>
#include <netlink/genl/family.h>
#include <netlink/genl/ctrl.h>
diff --git a/src/tuning/iw.h b/src/tuning/iw.h
index acf132d..6ea5a3d 100644
--- a/src/tuning/iw.h
+++ b/src/tuning/iw.h
@@ -33,12 +33,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <stdbool.h>
-#include <netlink/netlink.h>
-#include <netlink/genl/genl.h>
-#include <netlink/genl/family.h>
-#include <netlink/genl/ctrl.h>
-
-#include <linux/nl80211.h>
#define ETH_ALEN 6