freebsd: include zfs abomination if in use.
This commit is contained in:
parent
4dc7109ce9
commit
702f650603
|
@ -121,6 +121,32 @@ _cmp_cb(const void *p1, const void *p2)
|
|||
return strcmp(s1, s2);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
disk_zfs_mounted_get(void)
|
||||
{
|
||||
Eina_List *disks;
|
||||
char *path;
|
||||
Eina_Bool zfs_mounted = EINA_FALSE;
|
||||
|
||||
disks = disks_get();
|
||||
EINA_LIST_FREE(disks, path)
|
||||
{
|
||||
File_System *fs = disk_mount_file_system_get(path);
|
||||
if (fs)
|
||||
{
|
||||
if (fs->type == 0x2FC12FC1)
|
||||
zfs_mounted = EINA_TRUE;
|
||||
|
||||
disk_mount_file_system_free(fs);
|
||||
}
|
||||
free(path);
|
||||
}
|
||||
if (disks)
|
||||
eina_list_free(disks);
|
||||
|
||||
return zfs_mounted;
|
||||
}
|
||||
|
||||
Eina_List *
|
||||
disks_get(void)
|
||||
{
|
||||
|
@ -170,6 +196,7 @@ disks_get(void)
|
|||
list = eina_list_sort(list, eina_list_count(list), _cmp_cb);
|
||||
|
||||
return list;
|
||||
|
||||
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
||||
static const int mib[] = { CTL_HW, HW_DISKNAMES };
|
||||
static const unsigned int miblen = 2;
|
||||
|
|
|
@ -16,6 +16,9 @@ typedef struct _File_System {
|
|||
Disk_Usage usage;
|
||||
} File_System;
|
||||
|
||||
Eina_Bool
|
||||
disk_zfs_mounted_get(void);
|
||||
|
||||
File_System *
|
||||
disk_mount_file_system_get(const char *path);
|
||||
|
||||
|
|
|
@ -493,10 +493,10 @@ _memory_usage_get(meminfo_t *memory)
|
|||
fclose(f);
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
unsigned int free = 0, active = 0, inactive = 0, wired = 0;
|
||||
unsigned int cached = 0, buffered = 0;
|
||||
unsigned int cached = 0, buffered = 0, zfs_arc = 0;
|
||||
long int result = 0;
|
||||
int page_size = getpagesize();
|
||||
int mib[4] = { CTL_HW, HW_PHYSMEM, 0, 0 };
|
||||
int mib[5] = { CTL_HW, HW_PHYSMEM, 0, 0, 0 };
|
||||
|
||||
len = sizeof(memory->total);
|
||||
if (sysctl(mib, 2, &memory->total, &len, NULL, 0) == -1)
|
||||
|
@ -530,6 +530,11 @@ _memory_usage_get(meminfo_t *memory)
|
|||
miblen = 3;
|
||||
if (sysctlnametomib("vm.swap_info", mib, &miblen) == -1) return;
|
||||
|
||||
if ((zfs_arc = _sysctlfromname("kstat.zfs.misc.arcstats.c", mib, 5, &len)) != -1)
|
||||
{
|
||||
memory->zfs_arc_used = zfs_arc;
|
||||
}
|
||||
|
||||
struct xswdev xsw;
|
||||
/* previous mib is important for this one... */
|
||||
|
||||
|
|
|
@ -20,6 +20,8 @@ typedef struct
|
|||
unsigned long shared;
|
||||
unsigned long swap_total;
|
||||
unsigned long swap_used;
|
||||
|
||||
unsigned long zfs_arc_used;
|
||||
} meminfo_t;
|
||||
|
||||
#define MAX_BATTERIES 10
|
||||
|
|
|
@ -1628,6 +1628,9 @@ _sys_info_all_poll_feedback_cb(void *data, Ecore_Thread *thread, void *msg)
|
|||
|
||||
elm_progressbar_value_set(ui->progress_cpu, cpu_usage / 100);
|
||||
|
||||
if (ui->zfs_mounted)
|
||||
sysinfo->memory.used += sysinfo->memory.zfs_arc_used;
|
||||
|
||||
progress = ui->progress_mem;
|
||||
ratio = sysinfo->memory.total / 100.0;
|
||||
value = sysinfo->memory.used / ratio;
|
||||
|
@ -1679,6 +1682,8 @@ _ui_init(Evas_Object *parent)
|
|||
ui->cpu_times = NULL;
|
||||
ui->cpu_list = NULL;
|
||||
|
||||
ui->zfs_mounted = disk_zfs_mounted_get();
|
||||
|
||||
_ui = NULL;
|
||||
_evisum_config = NULL;
|
||||
|
||||
|
|
|
@ -107,6 +107,8 @@ typedef struct Ui
|
|||
Eina_Bool sort_reverse;
|
||||
Eina_Bool show_self;
|
||||
|
||||
Eina_Bool zfs_mounted;
|
||||
|
||||
uint64_t incoming_max;
|
||||
uint64_t outgoing_max;
|
||||
} Ui;
|
||||
|
|
|
@ -91,6 +91,7 @@ ui_tab_disk_update(Ui *ui)
|
|||
{
|
||||
Eina_List *disks;
|
||||
char *path;
|
||||
Eina_Bool zfs_mounted = EINA_FALSE;
|
||||
|
||||
if (!ui->disk_visible)
|
||||
return;
|
||||
|
@ -103,6 +104,9 @@ ui_tab_disk_update(Ui *ui)
|
|||
File_System *fs = disk_mount_file_system_get(path);
|
||||
if (fs)
|
||||
{
|
||||
if (fs->type == 0x2FC12FC1)
|
||||
zfs_mounted = EINA_TRUE;
|
||||
|
||||
_ui_disk_add(ui, fs->path, fs->mount, fs->usage.total, fs->usage.used);
|
||||
disk_mount_file_system_free(fs);
|
||||
}
|
||||
|
@ -110,5 +114,7 @@ ui_tab_disk_update(Ui *ui)
|
|||
}
|
||||
if (disks)
|
||||
eina_list_free(disks);
|
||||
|
||||
if (!zfs_mounted) ui->zfs_mounted = EINA_FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define __UI_DISK_H__
|
||||
|
||||
#include "ui.h"
|
||||
#include "system/disks.h"
|
||||
|
||||
void
|
||||
ui_tab_disk_add(Ui *ui);
|
||||
|
|
|
@ -136,6 +136,9 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
|
|||
if (!ui->mem_visible)
|
||||
return;
|
||||
|
||||
if (ui->zfs_mounted)
|
||||
sysinfo->memory.used += sysinfo->memory.zfs_arc_used;
|
||||
|
||||
progress = ui->progress_mem_used;
|
||||
ratio = sysinfo->memory.total / 100.0;
|
||||
value = sysinfo->memory.used / ratio;
|
||||
|
|
Loading…
Reference in New Issue