diff options
author | David <dbphillipsnz@gmail.com> | 2014-05-10 13:31:43 +1200 |
---|---|---|
committer | David <dbphillipsnz@gmail.com> | 2014-05-10 13:31:43 +1200 |
commit | 55da9c20452dd62db8fb776d4fee8f16a967281d (patch) | |
tree | 2de2992c05b696a7dacd0b6004737010cb7a8070 /freq_tray | |
parent | e7d8d46e9a7f8590fd89f4b1964778f6b1f57e13 (diff) | |
download | paramano-55da9c20452dd62db8fb776d4fee8f16a967281d.tar.xz |
Better makefile (I got sidetracked)
Diffstat (limited to 'freq_tray')
-rw-r--r-- | freq_tray/getcore.c | 51 | ||||
-rw-r--r-- | freq_tray/getcore.h | 27 | ||||
-rw-r--r-- | freq_tray/getfreq.c | 137 | ||||
-rw-r--r-- | freq_tray/getfreq.h | 31 | ||||
-rw-r--r-- | freq_tray/getgov.c | 113 | ||||
-rw-r--r-- | freq_tray/getgov.h | 28 |
6 files changed, 0 insertions, 387 deletions
diff --git a/freq_tray/getcore.c b/freq_tray/getcore.c deleted file mode 100644 index ad4878f..0000000 --- a/freq_tray/getcore.c +++ /dev/null @@ -1,51 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#include "getcore.h" - -#include <stdio.h> -#include <stdlib.h> -#include <glib.h> - -unsigned int NUMBER_OF_CORES; - -static gboolean core_exists(unsigned int core) -{ - FILE* fd; - char path[80]; - char corestr[4]; - - sprintf(corestr, "%d", core); - sprintf(path, "/sys/devices/system/cpu/cpu%s/cpufreq/scaling_cur_freq", corestr); - debug("Checking if core %d exists by opening '%s'\n",core,path); - return (gboolean)(fd = fopen(path, "r")); -} - -void gc_init() -{ - NUMBER_OF_CORES = 0; - while(core_exists(++NUMBER_OF_CORES)); - debug("Found %d cores\n",NUMBER_OF_CORES); -} - - -/* to do */ -int gc_number() -{ - return NUMBER_OF_CORES; -} diff --git a/freq_tray/getcore.h b/freq_tray/getcore.h deleted file mode 100644 index 43dcd12..0000000 --- a/freq_tray/getcore.h +++ /dev/null @@ -1,27 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#ifndef GETCORE_H -#define GETCORE_H - -#include "../debug.h" - -void gc_init(); -int gc_number(); - -#endif diff --git a/freq_tray/getfreq.c b/freq_tray/getfreq.c deleted file mode 100644 index 4b00775..0000000 --- a/freq_tray/getfreq.c +++ /dev/null @@ -1,137 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#include "getfreq.h" -#include "getcore.h" -#include "math.h" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <glib.h> - -/* [CORE][FREQUENCY NUMBER] */ -char AVAILABLE_FREQUENCIES[999][50][13]; -int NUMBER_OF_AVAILABLE_FREQUENCIES; - -void gf_init() -{ - // TO DO : get rid of magic constants - gchar freq_string[500]; - - int i = 0; - int j = 0; - for(i = 0; i < gc_number(); ++i) - { - memset(freq_string, '\0', 500); - - // Get available governor freqs. If no governor, try next cpu - if (gf_available(i, freq_string, 500) == -1) - { - debug("Couldn't find gov on core %d\n",i); - continue; - } - - /* go through every frequency in freq_string */ - j = 0; - gchar* curr = &freq_string[0]; - gchar* end_of_curr = g_strstr_len(curr, strlen(curr), " "); - while(end_of_curr) - { - memset(AVAILABLE_FREQUENCIES[i][j], '\0', 13); - memmove(AVAILABLE_FREQUENCIES[i][j], curr, end_of_curr - curr); - - curr = end_of_curr+1; - end_of_curr = g_strstr_len(curr, strlen(curr), " "); - ++j; - } - } - NUMBER_OF_AVAILABLE_FREQUENCIES = j; - debug("Found %d frequencies\n",j); -} - -int gf_current(int core) -{ - FILE* fd; - char buff[13]; - char path[80]; - int freq; - - sprintf(path, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", core); - - if(!(fd = fopen(path, "r"))) - { - debug("Couldn't open '%s'\n",path); - return -1; - } - - fgets(buff, 13, fd); - - freq = atoi(buff); - fclose(fd); - debug("Found freq %d on core %d\n",freq,core); - return freq; -} - -int gf_available(int core, char* out, int size) -{ - FILE* fd; - char path[80]; - - sprintf(path, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_available_frequencies", core); - - if(!(fd = fopen(path, "r"))) - { - debug("Couldn't open '%s'\n",path); - return -1; - } - - fgets(out, size, fd); - - fclose(fd); - return 0; -} - -void gf_get_frequency_label(int freq, char* out) -{ - int i = 0; - while(freq/pow(10, i) >= 1) - ++i; - - if(i == 7) - sprintf(out, "%.2f GHz", freq/pow(10, i-1)); - else - sprintf(out, "%.2d MHz", freq/1000); - - debug("Prepared freq label '%s' for freq %d\n",out,freq); -} - -char* gf_freqa(int core, int index) -{ - return AVAILABLE_FREQUENCIES[core][index]; -} - -int gf_freqi(int core, int index) -{ - return atoi(gf_freqa(core, index)); -} - -int gf_number() -{ - return NUMBER_OF_AVAILABLE_FREQUENCIES; -} diff --git a/freq_tray/getfreq.h b/freq_tray/getfreq.h deleted file mode 100644 index 8df9eca..0000000 --- a/freq_tray/getfreq.h +++ /dev/null @@ -1,31 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#ifndef GETFREQ_H -#define GETFREQ_H - -void gf_init(); -int gf_current(int core); -int gf_available(int core, char* out, int size); -void gf_get_frequency_label(int freq, char* out); -char* gf_freqa(int core, int index); -int gf_freqi(int core, int index); -int gf_number(); - - -#endif diff --git a/freq_tray/getgov.c b/freq_tray/getgov.c deleted file mode 100644 index 181ad41..0000000 --- a/freq_tray/getgov.c +++ /dev/null @@ -1,113 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#include "string.h" -#include "getgov.h" -#include "getcore.h" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <glib.h> - -/* [CORE][GOVERNOR NUMBER] */ -gchar AVAILABLE_GOVERNORS[999][50][13]; -gint NUMBER_OF_AVAILABLE_GOVERNORS; - -void gg_init() -{ - gchar gov_string[500]; - int i = 0; - int j = 0; - for(i = 0; i < gc_number(); ++i) - { - memset(gov_string, '\0', 500); - gg_available(i, gov_string, 500); - - // go through every governor in gov_string - j = 0; - gchar* curr = &gov_string[0]; - gchar* end_of_curr = g_strstr_len(curr, strlen(curr), " "); - while(end_of_curr) - { - memset(AVAILABLE_GOVERNORS[i][j], '\0', 13); - memmove(AVAILABLE_GOVERNORS[i][j], curr, end_of_curr - curr); - - curr = end_of_curr+1; - end_of_curr = g_strstr_len(curr, strlen(curr), " "); - ++j; - } - } - NUMBER_OF_AVAILABLE_GOVERNORS = j; -} - -int gg_current(int core, char* out, int size) -{ - FILE* fd; - char path[80]; - char corestr[4]; - - sprintf(corestr, "%i", core); - - sprintf(path, "/sys/devices/system/cpu/cpu%s/cpufreq/scaling_governor", corestr); - - if(!(fd = fopen(path, "r"))) - { - debug("Couldn't open '%s'\n",path); - return -1; - } - - fgets(out, size, fd); - // Chomp - gchar* newline = g_strrstr(out, "\n"); - *newline = '\0'; - - debug("Current gov for core %d is '%s'\n",core,out); - - fclose(fd); - return 0; -} - -int gg_available(int core, char* out, int size) -{ - FILE* fd; - char path[80]; - - sprintf(path, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_available_governors", core); - - if(!(fd = fopen(path, "r"))) - { - debug("Couldn't open '%s'\n",path); - return -1; - } - - fgets(out, size, fd); - - fclose(fd); - return 0; -} - -char* gg_gov(int core, int index) -{ - return AVAILABLE_GOVERNORS[core][index]; -} - -int gg_number() -{ - return NUMBER_OF_AVAILABLE_GOVERNORS; -} diff --git a/freq_tray/getgov.h b/freq_tray/getgov.h deleted file mode 100644 index fca341d..0000000 --- a/freq_tray/getgov.h +++ /dev/null @@ -1,28 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#ifndef GETGOV_H -#define GETGOV_H - -void gg_init(); -int gg_current(int core, char* out, int size); -int gg_available(int core, char* out, int size); -char* gg_gov(int core, int index); -int gg_number(); - -#endif |