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);
|
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 *
|
Eina_List *
|
||||||
disks_get(void)
|
disks_get(void)
|
||||||
{
|
{
|
||||||
|
@ -170,6 +196,7 @@ disks_get(void)
|
||||||
list = eina_list_sort(list, eina_list_count(list), _cmp_cb);
|
list = eina_list_sort(list, eina_list_count(list), _cmp_cb);
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
|
|
||||||
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
||||||
static const int mib[] = { CTL_HW, HW_DISKNAMES };
|
static const int mib[] = { CTL_HW, HW_DISKNAMES };
|
||||||
static const unsigned int miblen = 2;
|
static const unsigned int miblen = 2;
|
||||||
|
|
|
@ -16,6 +16,9 @@ typedef struct _File_System {
|
||||||
Disk_Usage usage;
|
Disk_Usage usage;
|
||||||
} File_System;
|
} File_System;
|
||||||
|
|
||||||
|
Eina_Bool
|
||||||
|
disk_zfs_mounted_get(void);
|
||||||
|
|
||||||
File_System *
|
File_System *
|
||||||
disk_mount_file_system_get(const char *path);
|
disk_mount_file_system_get(const char *path);
|
||||||
|
|
||||||
|
|
|
@ -493,10 +493,10 @@ _memory_usage_get(meminfo_t *memory)
|
||||||
fclose(f);
|
fclose(f);
|
||||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||||
unsigned int free = 0, active = 0, inactive = 0, wired = 0;
|
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;
|
long int result = 0;
|
||||||
int page_size = getpagesize();
|
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);
|
len = sizeof(memory->total);
|
||||||
if (sysctl(mib, 2, &memory->total, &len, NULL, 0) == -1)
|
if (sysctl(mib, 2, &memory->total, &len, NULL, 0) == -1)
|
||||||
|
@ -530,6 +530,11 @@ _memory_usage_get(meminfo_t *memory)
|
||||||
miblen = 3;
|
miblen = 3;
|
||||||
if (sysctlnametomib("vm.swap_info", mib, &miblen) == -1) return;
|
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;
|
struct xswdev xsw;
|
||||||
/* previous mib is important for this one... */
|
/* previous mib is important for this one... */
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,8 @@ typedef struct
|
||||||
unsigned long shared;
|
unsigned long shared;
|
||||||
unsigned long swap_total;
|
unsigned long swap_total;
|
||||||
unsigned long swap_used;
|
unsigned long swap_used;
|
||||||
|
|
||||||
|
unsigned long zfs_arc_used;
|
||||||
} meminfo_t;
|
} meminfo_t;
|
||||||
|
|
||||||
#define MAX_BATTERIES 10
|
#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);
|
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;
|
progress = ui->progress_mem;
|
||||||
ratio = sysinfo->memory.total / 100.0;
|
ratio = sysinfo->memory.total / 100.0;
|
||||||
value = sysinfo->memory.used / ratio;
|
value = sysinfo->memory.used / ratio;
|
||||||
|
@ -1679,6 +1682,8 @@ _ui_init(Evas_Object *parent)
|
||||||
ui->cpu_times = NULL;
|
ui->cpu_times = NULL;
|
||||||
ui->cpu_list = NULL;
|
ui->cpu_list = NULL;
|
||||||
|
|
||||||
|
ui->zfs_mounted = disk_zfs_mounted_get();
|
||||||
|
|
||||||
_ui = NULL;
|
_ui = NULL;
|
||||||
_evisum_config = NULL;
|
_evisum_config = NULL;
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,8 @@ typedef struct Ui
|
||||||
Eina_Bool sort_reverse;
|
Eina_Bool sort_reverse;
|
||||||
Eina_Bool show_self;
|
Eina_Bool show_self;
|
||||||
|
|
||||||
|
Eina_Bool zfs_mounted;
|
||||||
|
|
||||||
uint64_t incoming_max;
|
uint64_t incoming_max;
|
||||||
uint64_t outgoing_max;
|
uint64_t outgoing_max;
|
||||||
} Ui;
|
} Ui;
|
||||||
|
|
|
@ -91,6 +91,7 @@ ui_tab_disk_update(Ui *ui)
|
||||||
{
|
{
|
||||||
Eina_List *disks;
|
Eina_List *disks;
|
||||||
char *path;
|
char *path;
|
||||||
|
Eina_Bool zfs_mounted = EINA_FALSE;
|
||||||
|
|
||||||
if (!ui->disk_visible)
|
if (!ui->disk_visible)
|
||||||
return;
|
return;
|
||||||
|
@ -103,6 +104,9 @@ ui_tab_disk_update(Ui *ui)
|
||||||
File_System *fs = disk_mount_file_system_get(path);
|
File_System *fs = disk_mount_file_system_get(path);
|
||||||
if (fs)
|
if (fs)
|
||||||
{
|
{
|
||||||
|
if (fs->type == 0x2FC12FC1)
|
||||||
|
zfs_mounted = EINA_TRUE;
|
||||||
|
|
||||||
_ui_disk_add(ui, fs->path, fs->mount, fs->usage.total, fs->usage.used);
|
_ui_disk_add(ui, fs->path, fs->mount, fs->usage.total, fs->usage.used);
|
||||||
disk_mount_file_system_free(fs);
|
disk_mount_file_system_free(fs);
|
||||||
}
|
}
|
||||||
|
@ -110,5 +114,7 @@ ui_tab_disk_update(Ui *ui)
|
||||||
}
|
}
|
||||||
if (disks)
|
if (disks)
|
||||||
eina_list_free(disks);
|
eina_list_free(disks);
|
||||||
|
|
||||||
|
if (!zfs_mounted) ui->zfs_mounted = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define __UI_DISK_H__
|
#define __UI_DISK_H__
|
||||||
|
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
|
#include "system/disks.h"
|
||||||
|
|
||||||
void
|
void
|
||||||
ui_tab_disk_add(Ui *ui);
|
ui_tab_disk_add(Ui *ui);
|
||||||
|
|
|
@ -136,6 +136,9 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
|
||||||
if (!ui->mem_visible)
|
if (!ui->mem_visible)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (ui->zfs_mounted)
|
||||||
|
sysinfo->memory.used += sysinfo->memory.zfs_arc_used;
|
||||||
|
|
||||||
progress = ui->progress_mem_used;
|
progress = ui->progress_mem_used;
|
||||||
ratio = sysinfo->memory.total / 100.0;
|
ratio = sysinfo->memory.total / 100.0;
|
||||||
value = sysinfo->memory.used / ratio;
|
value = sysinfo->memory.used / ratio;
|
||||||
|
|
Loading…
Reference in New Issue