summaryrefslogtreecommitdiff
path: root/sys-apps/uevt/files/uevt-2.3-support_for_more_than_one_CPU.patch
blob: 87e72c81e726e1547f62813239d3838bc2d87b7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
From 69d2f45e234190fbfb37745ea05ab88547a3de96 Mon Sep 17 00:00:00 2001
From: Elentir <elentir@frugalware.org>
Date: Wed, 29 Aug 2012 03:41:38 +0000
Subject: fix for processors with more than 2 cores

---
diff --git a/src/helpers/uevt-cpu-helper.vala b/src/helpers/uevt-cpu-helper.vala
index 89df7db..81283ff 100644
--- a/src/helpers/uevt-cpu-helper.vala
+++ b/src/helpers/uevt-cpu-helper.vala
@@ -21,9 +21,9 @@ using Posix;
 
 namespace UEvtCpuHelper
 {
-    string[] availcpulist;
+    int cpunumber;
 
-    private string[] uevt_cpu_helper_detect_cpu_number()
+    private int uevt_cpu_helper_detect_cpu_number()
     {
         string prescpu = "";
         GLib.File file = File.new_for_path("/sys/devices/system/cpu/present");
@@ -38,17 +38,17 @@ namespace UEvtCpuHelper
 
         string[] availcpu = prescpu.split("-", 0);
 
-        return availcpu;
+        return int.parse(availcpu[1]);
     }
 
-    private string uevt_cpu_helper_get_cpu_max_freq(string cpu_num)
+    private string uevt_cpu_helper_get_cpu_max_freq(int cpu_num)
     {
         string freq = "";
 
-        if(!(cpu_num in availcpulist))
+        if(cpu_num > cpunumber)
             return "";
 
-        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_max_freq"
+        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_max_freq"
                                      .printf(cpu_num));
 
         try {
@@ -61,14 +61,14 @@ namespace UEvtCpuHelper
         return freq;
     }
 
-    private string uevt_cpu_helper_get_cpu_min_freq(string cpu_num)
+    private string uevt_cpu_helper_get_cpu_min_freq(int cpu_num)
     {
         string freq = "";
 
-        if(!(cpu_num in availcpulist))
+        if(cpu_num > cpunumber)
             return "";
 
-        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_min_freq"
+        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_min_freq"
                                      .printf(cpu_num));
 
         try {
@@ -81,14 +81,14 @@ namespace UEvtCpuHelper
         return freq;
     }
 
-    private string uevt_cpu_helper_get_frequency(string cpu_num)
+    private string uevt_cpu_helper_get_frequency(int cpu_num)
     {
         string freq = "";
 
-        if(!(cpu_num in availcpulist))
+        if(cpu_num > cpunumber)
             return "";
 
-        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_cur_freq"
+        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq"
                                      .printf(cpu_num));
 
         try {
@@ -101,7 +101,7 @@ namespace UEvtCpuHelper
         return freq;
     }
 
-    private void uevt_cpu_helper_set_frequency(string cpu_num, string newfreq)
+    private void uevt_cpu_helper_set_frequency(int cpu_num, string newfreq)
     {
         string newfreqstring = newfreq.to_string();
 
@@ -110,7 +110,7 @@ namespace UEvtCpuHelper
             return;
         }
 
-        FILE file = FILE.open("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_setspeed"
+        FILE file = FILE.open("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_setspeed"
                                   .printf(cpu_num), "w");
         file.puts(newfreq);
 
@@ -119,20 +119,20 @@ namespace UEvtCpuHelper
 
     private void uevt_cpu_helper_set_global_frequency(string newfrequency)
     {
-        foreach(string cpu in availcpulist)
+        for(int cpu = 0; cpu <= cpunumber; cpu++)
             uevt_cpu_helper_set_frequency(cpu, newfrequency);
 
         return;
     }
 
-    private string[] uevt_cpu_helper_get_available_cpu_freqs(string cpu_num)
+    private string[] uevt_cpu_helper_get_available_cpu_freqs(int cpu_num)
     {
         string[] freqs = {};
 
-        if(!(cpu_num in availcpulist))
+        if(cpu_num > cpunumber)
             return {};
 
-        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_available_frequencies"
+        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_available_frequencies"
                                      .printf(cpu_num));
 
         try {
@@ -147,14 +147,14 @@ namespace UEvtCpuHelper
         return freqs;
     }
 
-    private string[] uevt_cpu_helper_get_available_governors(string cpu_num)
+    private string[] uevt_cpu_helper_get_available_governors(int cpu_num)
     {
         string[] govs = {};
 
-        if(!(cpu_num in availcpulist))
+        if(cpu_num > cpunumber)
             return {};
 
-        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_available_governors"
+        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_available_governors"
                                      .printf(cpu_num));
 
         try {
@@ -169,14 +169,14 @@ namespace UEvtCpuHelper
         return govs;
     }
 
-    private string uevt_cpu_helper_get_governor(string cpu_num)
+    private string uevt_cpu_helper_get_governor(int cpu_num)
     {
         string gov = "";
 
-        if(!(cpu_num in availcpulist))
+        if(cpu_num > cpunumber)
             return "";
 
-        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_governor"
+        GLib.File file = File.new_for_path("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor"
                                            .printf(cpu_num));
 
         try {
@@ -189,14 +189,14 @@ namespace UEvtCpuHelper
         return gov;
     }
 
-    private void uevt_cpu_helper_set_governor(string cpu_num, string newgovernor)
+    private void uevt_cpu_helper_set_governor(int cpu_num, string newgovernor)
     {
         if(!(newgovernor in uevt_cpu_helper_get_available_governors(cpu_num))) {
             Posix.stdout.printf("Unrecognized governor %s\n", newgovernor);
             return;
         }
 
-        FILE file = FILE.open("/sys/devices/system/cpu/cpu%s/cpufreq/scaling_governor"
+        FILE file = FILE.open("/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor"
                               .printf(cpu_num), "w");
         file.puts(newgovernor);
 
@@ -205,7 +205,7 @@ namespace UEvtCpuHelper
 
     private void uevt_cpu_helper_set_global_governor(string newgovernor)
     {
-        foreach(string cpu in availcpulist)
+        for(int cpu = 0; cpu <= cpunumber; cpu++)
             uevt_cpu_helper_set_governor(cpu, newgovernor);
 
         return;
@@ -215,7 +215,7 @@ namespace UEvtCpuHelper
     {
         string minfreq;
 
-        foreach(string cpu in availcpulist) {
+        for(int cpu = 0; cpu <= cpunumber; cpu++) {
             minfreq = uevt_cpu_helper_get_cpu_min_freq(cpu);
             uevt_cpu_helper_set_frequency(cpu, minfreq);
         }
@@ -227,7 +227,7 @@ namespace UEvtCpuHelper
     {
         string maxfreq;
 
-        foreach(string cpu in availcpulist) {
+        for(int cpu = 0; cpu <= cpunumber; cpu++) {
             maxfreq = uevt_cpu_helper_get_cpu_max_freq(cpu);
             uevt_cpu_helper_set_frequency(cpu, maxfreq);
         }
@@ -242,11 +242,11 @@ namespace UEvtCpuHelper
             return 1;
         }
 
-        availcpulist = uevt_cpu_helper_detect_cpu_number();
+        cpunumber = uevt_cpu_helper_detect_cpu_number();
 
         if(args[1] == "show-infos") {
-            foreach(string cpu in availcpulist) {
-                Posix.stdout.printf("CPU %s : current governor %s, current frequency %s\n",
+            for(int cpu = 0; cpu <= cpunumber; cpu++) {
+                Posix.stdout.printf("CPU %d : current governor %s, current frequency %s\n",
                                     cpu,
                                     uevt_cpu_helper_get_governor(cpu),
                                     uevt_cpu_helper_get_frequency(cpu));
--
cgit v0.9.0.3