#include <sys/mount.h>
#endif
-#if !defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) && !defined(__FreeBSD__)
+#if !defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) && !defined (__OpenBSD__) && !defined(__FreeBSD__)
#include <mntent.h>
#endif
void get_fs_type(const char *path, char *result)
{
-#if defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) || defined(__FreeBSD__)
+#if defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) || defined(__FreeBSD__) || defined (__OpenBSD__)
struct statfs s;
if (statfs(path, &s) == 0) {
void update_top()
{
+ kvm_init();
proc_find_top(info.cpu, info.memu);
}
}
#endif
+void clear_diskio_stats()
+{
+}
+
void update_diskio()
{
return; /* XXX: implement? hifi: not sure how */
struct process *processes;
int mib[2];
- int total_pages;
+ u_int total_pages;
+ int64_t usermem;
int pagesize = getpagesize();
/* we get total pages count again to be sure it is up to date */
mib[0] = CTL_HW;
- mib[1] = HW_USERMEM;
- size_t size = sizeof(total_pages);
+ mib[1] = HW_USERMEM64;
+ size_t size = sizeof(usermem);
- if (sysctl(mib, 2, &total_pages, &size, NULL, 0) == -1) {
- ERR("error reading nmempages");
+ if (sysctl(mib, 2, &usermem, &size, NULL, 0) == -1) {
+ ERR("error reading usermem");
}
+ /* translate bytes into page count */
+ total_pages = usermem / pagesize;
+
int max_size = sizeof(struct kinfo_proc2);
p = kvm_getproc2(kd, KERN_PROC_ALL, 0, max_size, &n_processes);
processes[j].pid = p[i].p_pid;
processes[j].name = strndup(p[i].p_comm, text_buffer_size);
processes[j].amount = 100.0 * p[i].p_pctcpu / FSCALE;
- processes[j].totalmem = (float) (p[i].p_vm_rssize * pagesize /
- (float) total_pages) * 100.0;
+ processes[j].totalmem = (float) (p[i].p_vm_rssize /
+ (float) total_pages) * 100.0;
j++;
}
}
#define OBSD_MAX_SENSORS 256
struct obsd_sensors_struct {
+ int device;
+ float temp[MAXSENSORDEVICES][OBSD_MAX_SENSORS];
+ unsigned int fan[MAXSENSORDEVICES][OBSD_MAX_SENSORS];
+ float volt[MAXSENSORDEVICES][OBSD_MAX_SENSORS];
+};
+struct obsd_sensors_struct obsd_sensors;
+
+#if defined(i386) || defined(__i386__)
+typedef struct apm_power_info *apm_info_t;
+#endif
+
+#endif /*OPENBSD_H_*/
+#ifndef OPENBSD_H_
+#define OPENBSD_H_
+
+#include "common.h"
+#include <sys/sysctl.h>
+#include <sys/sensors.h>
+#include <machine/apmvar.h>
+
+void update_obsd_sensors(void);
+void get_obsd_vendor(char *buf, size_t client_buffer_size);
+void get_obsd_product(char *buf, size_t client_buffer_size);
+
+#define OBSD_MAX_SENSORS 256
+struct obsd_sensors_struct {
int device;
float temp[MAXSENSORDEVICES][OBSD_MAX_SENSORS];
unsigned int fan[MAXSENSORDEVICES][OBSD_MAX_SENSORS];