static void pprint_get_mountlist(gboolean allfs) { glibtop_mountlist buf; glibtop_mountentry *entries; size_t i; entries = glibtop_get_mountlist(&buf, allfs); HEADER_PPRINT(glibtop_get_mountlist); printf("glibtop_get_mountlist (allfs = %d)\n", allfs); PPRINT(flags, "%#llx"); PPRINT(number, "%llu"); PPRINT(total, "%llu"); PPRINT(size, "%llu"); printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number); for(i = 0; i < buf.number; ++i) { printf("\t\t .%lu = { .dev = %#llx," " .devname = \"%s\"," " .mountir = \"%s\"," " .type = \"%s\" }\n", (unsigned long) i, entries[i].dev, entries[i].devname, entries[i].mountdir, entries[i].type); } printf("\t\t}\n"); FOOTER_PPRINT(); g_free(entries); }
void baobab_get_filesystem (BaobabFS *fs) { size_t i; glibtop_mountlist mountlist; glibtop_mountentry *mountentries; memset (fs, 0, sizeof *fs); mountentries = glibtop_get_mountlist (&mountlist, FALSE); for (i = 0; i < mountlist.number; ++i) { GFile *file; glibtop_fsusage fsusage; file = g_file_new_for_path (mountentries[i].mountdir); if (!baobab_is_excluded_location (file)) { glibtop_get_fsusage (&fsusage, mountentries[i].mountdir); fs->total += fsusage.blocks * fsusage.block_size; fs->avail += fsusage.bfree * fsusage.block_size; fs->used += (fsusage.blocks - fsusage.bfree) * fsusage.block_size; } g_object_unref (file); } g_free (mountentries); }
void GetDiskLoad (int Maximum, int data [3], LoadGraph *g) { static gboolean first_call = TRUE; static guint64 lastread = 0, lastwrite = 0; static AutoScaler scaler; glibtop_mountlist mountlist; glibtop_mountentry *mountentries; guint i; int max; guint64 read, write; guint64 readdiff, writediff; if(first_call) { autoscaler_init(&scaler, 60, 500); } read = write = 0; mountentries = glibtop_get_mountlist (&mountlist, FALSE); for (i = 0; i < mountlist.number; i++) { glibtop_fsusage fsusage; if (strcmp(mountentries[i].type, "smbfs") == 0 || strcmp(mountentries[i].type, "nfs") == 0 || strcmp(mountentries[i].type, "cifs") == 0) continue; glibtop_get_fsusage(&fsusage, mountentries[i].mountdir); read += fsusage.read; write += fsusage.write; } g_free(mountentries); readdiff = read - lastread; writediff = write - lastwrite; lastread = read; lastwrite = write; if(first_call) { first_call = FALSE; memset(data, 0, 3 * sizeof data[0]); return; } max = autoscaler_get_max(&scaler, readdiff + writediff); data[0] = (float)Maximum * readdiff / (float)max; data[1] = (float)Maximum * writediff / (float)max; data[2] = (float)Maximum - (data [0] + data[1]); }
static void fill_props_model (GtkListStore *store) { GtkTreeIter iter; guint lo; glibtop_mountlist mountlist; glibtop_mountentry *mountentry, *mountentry_tofree; guint64 fstotal, fsavail; mountentry_tofree = glibtop_get_mountlist (&mountlist, 0); for (lo = 0, mountentry = mountentry_tofree; lo < mountlist.number; lo++, mountentry++) { glibtop_fsusage fsusage; gchar * total, *avail; GFile *file; gchar *uri; gboolean excluded; struct stat buf; if (g_stat (mountentry->devname,&buf) == -1) continue; glibtop_get_fsusage (&fsusage, mountentry->mountdir); fstotal = fsusage.blocks * fsusage.block_size; fsavail = fsusage.bfree * fsusage.block_size; total = g_format_size(fstotal); avail = g_format_size(fsavail); file = g_file_new_for_path (mountentry->mountdir); uri = g_file_get_uri (file); excluded = baobab_is_excluded_location (file); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_CHECK, !excluded, COL_DEVICE, mountentry->devname, COL_MOUNT_D, mountentry->mountdir, COL_MOUNT, uri, COL_TYPE, mountentry->type, COL_FS_SIZE, total, COL_FS_AVAIL, avail, -1); g_free(total); g_free(avail); g_free(uri); g_object_unref(file); } g_free (mountentry_tofree); }
static PyObject* gtop_mountlist(PyObject *self, PyObject *args) { glibtop_mountlist buf; int allfs = FALSE; glibtop_mountentry *entries; PyObject *t; if(!PyArg_ParseTuple(args, "|i", &allfs)) return NULL; entries = glibtop_get_mountlist(&buf, allfs); INIT_LIST_WITH2(t, mountentry_to_Struct, entries, buf.number); g_free(entries); return t; }
void disks_update(GsmApplication *app) { GtkListStore *list; glibtop_mountentry * entries; glibtop_mountlist mountlist; guint i; gboolean show_all_fs; list = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(app->disk_list))); show_all_fs = app->settings->get_boolean (GSM_SETTING_SHOW_ALL_FS); entries = glibtop_get_mountlist (&mountlist, show_all_fs); remove_old_disks(GTK_TREE_MODEL(list), entries, mountlist.number); for (i = 0; i < mountlist.number; i++) add_disk(list, &entries[i], show_all_fs); g_free(entries); }
int cb_update_disks(gpointer data) { ProcData *const procdata = static_cast<ProcData*>(data); GtkListStore *list; glibtop_mountentry * entries; glibtop_mountlist mountlist; guint i; list = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(procdata->disk_list))); entries = glibtop_get_mountlist(&mountlist, procdata->config.show_all_fs); remove_old_disks(GTK_TREE_MODEL(list), entries, mountlist.number); for (i = 0; i < mountlist.number; i++) add_disk(list, &entries[i], procdata->config.show_all_fs); g_free(entries); return TRUE; }
int main (int argc, char *argv []) { glibtop_fsusage fsusage; glibtop_mountlist mount_list; glibtop_mountentry *mount_entries; unsigned c, index, method, count, port; char buffer [BUFSIZ]; setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); textdomain (GETTEXT_PACKAGE); glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN); glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method)); printf ("Method = %d\n", method); count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ); buffer [count] = 0; printf ("Command = '%s'\n", buffer); count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ); buffer [count] = 0; glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port)); printf ("Host = '%s' - %u\n\n", buffer, port); printf ("sbrk (0) = %p\n\n", sbrk (0)); for (c = 0; c < PROFILE_COUNT; c++) { mount_entries = glibtop_get_mountlist (&mount_list, 1); g_free (mount_entries); } printf ("sbrk (0) = %p\n\n", sbrk (0)); mount_entries = glibtop_get_mountlist (&mount_list, 1); if (mount_entries == NULL) _exit (1); for (index = 0; index < mount_list.number; index++) printf ("Mount_Entry: %-30s %-10s %-20s\n", mount_entries [index].mountdir, mount_entries [index].type, mount_entries [index].devname); printf ("\n\n%-16s %9s %9s %9s %9s %9s %9s\n", "Mount", "Blocks", "Free", "Avail", "Files", "Free", "BlockSz"); for (index = 0; index < mount_list.number; index++) { glibtop_get_fsusage (&fsusage, mount_entries [index].mountdir); printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n", mount_entries [index].mountdir, fsusage.blocks, fsusage.bfree, fsusage.bavail, fsusage.files, fsusage.ffree, fsusage.block_size); } g_free (mount_entries); printf ("\nsbrk (0) = %p\n\n", sbrk (0)); glibtop_close (); exit (0); }