mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-27 04:32:55 +00:00
- On FreeBSD, first try dev.cpu.0.freq sysctl (see cpufreq(4) for details)
to detect CPU frequency and only then do i386 magic - Minor cleanup git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky@159 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
parent
79e6886e1c
commit
9c56581089
@ -1,4 +1,9 @@
|
|||||||
#include "conky.h"
|
/** freebsd.c
|
||||||
|
* Contains FreeBSD specific stuff
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -20,6 +25,8 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <ifaddrs.h>
|
#include <ifaddrs.h>
|
||||||
|
|
||||||
|
#include "conky.h"
|
||||||
|
|
||||||
#define GETSYSCTL(name, var) getsysctl(name, &(var), sizeof(var))
|
#define GETSYSCTL(name, var) getsysctl(name, &(var), sizeof(var))
|
||||||
#define KELVTOC(x) ((x - 2732) / 10.0)
|
#define KELVTOC(x) ((x - 2732) / 10.0)
|
||||||
|
|
||||||
@ -59,8 +66,7 @@ static unsigned int get_cpu_speed(void)
|
|||||||
|
|
||||||
return ((tscstop - tscstart) / ((stop - start) / 1000.0));
|
return ((tscstop - tscstart) / ((stop - start) / 1000.0));
|
||||||
}
|
}
|
||||||
#endif
|
#endif /* i386 */
|
||||||
|
|
||||||
|
|
||||||
static int getsysctl(char *name, void *ptr, size_t len)
|
static int getsysctl(char *name, void *ptr, size_t len)
|
||||||
{
|
{
|
||||||
@ -80,7 +86,6 @@ static kvm_t *kd = NULL;
|
|||||||
struct ifmibdata *data = NULL;
|
struct ifmibdata *data = NULL;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
|
|
||||||
static int swapmode(int *retavail, int *retfree)
|
static int swapmode(int *retavail, int *retfree)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
@ -119,12 +124,10 @@ static int swapmode(int *retavail, int *retfree)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void prepare_update()
|
void prepare_update()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/*double get_uptime() */
|
|
||||||
void update_uptime()
|
void update_uptime()
|
||||||
{
|
{
|
||||||
int mib[2] = { CTL_KERN, KERN_BOOTTIME };
|
int mib[2] = { CTL_KERN, KERN_BOOTTIME };
|
||||||
@ -142,7 +145,6 @@ void update_uptime()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void update_meminfo()
|
void update_meminfo()
|
||||||
{
|
{
|
||||||
int total_pages, inactive_pages, free_pages;
|
int total_pages, inactive_pages, free_pages;
|
||||||
@ -237,8 +239,6 @@ void update_net_stats()
|
|||||||
|
|
||||||
void update_total_processes()
|
void update_total_processes()
|
||||||
{
|
{
|
||||||
/* It's easier to use kvm here than sysctl */
|
|
||||||
|
|
||||||
int n_processes;
|
int n_processes;
|
||||||
static int kd_init = 1;
|
static int kd_init = 1;
|
||||||
|
|
||||||
@ -423,31 +423,38 @@ char *get_adt746x_fan()
|
|||||||
|
|
||||||
char *get_freq()
|
char *get_freq()
|
||||||
{
|
{
|
||||||
#if defined(i386) || defined(__i386__)
|
/* First, try to obtain CPU frequency via dev.cpu.0.freq sysctl
|
||||||
int i;
|
* (cpufreq(4)). If failed, do i386 magic. */
|
||||||
|
int freq;
|
||||||
char *cpuspeed;
|
char *cpuspeed;
|
||||||
|
|
||||||
if ((cpuspeed = (char *) malloc(16)) == NULL) {
|
if ((cpuspeed = malloc(8)) == NULL)
|
||||||
CRIT_ERR("get_freq()");
|
CRIT_ERR("get_freq()");
|
||||||
|
|
||||||
|
if (GETSYSCTL("dev.cpu.0.freq", freq) == 0) {
|
||||||
|
snprintf(cpuspeed, 8, "%d", freq);
|
||||||
|
return cpuspeed;
|
||||||
}
|
}
|
||||||
|
#if defined(i386) || defined(__i386__)
|
||||||
|
else {
|
||||||
|
int i;
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
if ((i = get_cpu_speed()) > 0) {
|
if ((i = get_cpu_speed()) > 0) {
|
||||||
if (i < 1000000) {
|
if (i < 1000000) {
|
||||||
i += 50; /* for rounding */
|
i += 50; /* for rounding */
|
||||||
snprintf(cpuspeed, 15, "%d.%d MHz", i / 1000,
|
snprintf(cpuspeed, 8, "%d.%d", i / 1000,
|
||||||
(i / 100) % 10);
|
(i / 100) % 10);
|
||||||
} else {
|
} else
|
||||||
snprintf(cpuspeed, 15, "%d MHz", i / 1000);
|
snprintf(cpuspeed, 8, "%d", i / 1000);
|
||||||
}
|
} else
|
||||||
} else {
|
|
||||||
cpuspeed = "";
|
cpuspeed = "";
|
||||||
}
|
|
||||||
|
|
||||||
return cpuspeed;
|
return cpuspeed;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
return "";
|
return "";
|
||||||
#endif
|
#endif /* i386 */
|
||||||
}
|
}
|
||||||
|
|
||||||
void update_top()
|
void update_top()
|
||||||
|
Loading…
Reference in New Issue
Block a user