summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Catanzaro <mcatanzaro@gnome.org>2020-11-06 09:52:01 -0600
committerMichael Catanzaro <mcatanzaro@gnome.org>2020-11-06 09:52:01 -0600
commit7e214414bf23d1ea34e7fdccb17a7f41040ffea9 (patch)
tree4ddb421111d8ffe6bc1a15948f442d622168d068
parent30bf8d04183c26ca48c6cd4efe4c24058a082783 (diff)
downloadlibgtop-7e214414bf23d1ea34e7fdccb17a7f41040ffea9.tar.gz
Revert "New API to retrieve disk stats in Linux"
This reverts commit 9e62440b314fbf87bbeca865a4223311314c52a3.
-rw-r--r--glibtop.h2
-rw-r--r--include/glibtop/disk.h74
-rw-r--r--include/glibtop/sysdeps.h4
-rw-r--r--include/glibtop/union.h2
-rw-r--r--lib/Makefile.am2
-rw-r--r--lib/command.c1
-rw-r--r--lib/libgtop.sym2
-rw-r--r--lib/sysdeps.c4
-rw-r--r--src/daemon/main.c4
-rw-r--r--sysdeps/common/default.c14
-rw-r--r--sysdeps/common/sysdeps_suid.c3
-rw-r--r--sysdeps/linux/Makefile.am2
-rw-r--r--sysdeps/linux/disk.c96
-rw-r--r--sysdeps/linux/glibtop_private.c18
-rw-r--r--sysdeps/linux/glibtop_private.h3
-rw-r--r--sysdeps/linux/glibtop_server.h1
-rw-r--r--sysdeps/stub/disk.c42
-rw-r--r--sysdeps/stub/glibtop_server.h1
18 files changed, 3 insertions, 272 deletions
diff --git a/glibtop.h b/glibtop.h
index 804294da..3542249a 100644
--- a/glibtop.h
+++ b/glibtop.h
@@ -80,8 +80,6 @@ struct _glibtop
int socket; /* Accepted connection of a socket */
int ncpu; /* Number of CPUs, zero if single-processor */
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
- int ndisk; /* Number of DISKs, zero if single-disk */
- int real_ndisk; /* Number of PHYSICAL DISKs. Only ncpu is monitored */
unsigned long os_version_code; /* Version code of the operating system */
const char *name; /* Program name for error messages */
const char *server_command; /* Command used to invoke server */
diff --git a/include/glibtop/disk.h b/include/glibtop/disk.h
deleted file mode 100644
index 8843112c..00000000
--- a/include/glibtop/disk.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright (C) 1998-99 Martin Baulig
- This file is part of LibGTop 1.0.
-
- Contributed by James Dominic P. Guana <guana.histark@gmail.com>, May 2020.
-
- LibGTop is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License,
- or (at your option) any later version.
-
- LibGTop is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- You should have received a copy of the GNU General Public License
- along with LibGTop; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef __GLIBTOP_DISK_H__
-#define __GLIBTOP_DISK_H__
-
-#include <glibtop.h>
-#include <glibtop/global.h>
-
-G_BEGIN_DECLS
-
-#define GLIBTOP_XDISK_SECTORS_READ 0
-#define GLIBTOP_XDISK_TIME_READ 1
-#define GLIBTOP_XDISK_SECTORS_WRITE 2
-#define GLIBTOP_XDISK_TIME_WRITE 3
-
-#define GLIBTOP_MAX_DISK 4
-
-/* Nobody should really be using more than 4 disk.
- Yes we are :)
- Nobody should really be using more than 32 disk.
-*/
-#define GLIBTOP_NDISK 1024
-
-typedef struct _glibtop_disk glibtop_disk;
-
-struct _glibtop_disk
-{
- guint64 xdisk_sectors_read [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_SECTORS_READ */
- guint64 xdisk_time_read [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_TIME_READ */
- guint64 xdisk_sectors_write [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_SECTORS_WRITE */
- guint64 xdisk_time_write [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_TIME_WRITE */
-};
-
-void glibtop_get_disk(glibtop_disk *buf);
-
-#if GLIBTOP_SUID_DISK
-#define glibtop_get_disk_r glibtop_get_disk_p
-#else
-#define glibtop_get_disk_r glibtop_get_disk_s
-#endif
-
-void glibtop_get_disk_l (glibtop *server, glibtop_disk *buf);
-
-#if GLIBTOP_SUID_DISK
-void _glibtop_init_disk_p (glibtop *server);
-void glibtop_get_disk_p (glibtop *server, glibtop_disk *buf);
-#else
-void _glibtop_init_disk_s (glibtop *server);
-void glibtop_get_disk_s (glibtop *server, glibtop_disk *buf);
-#endif
-
-
-G_END_DECLS
-
-#endif
diff --git a/include/glibtop/sysdeps.h b/include/glibtop/sysdeps.h
index a1db66d8..a18c69e6 100644
--- a/include/glibtop/sysdeps.h
+++ b/include/glibtop/sysdeps.h
@@ -54,9 +54,8 @@ G_BEGIN_DECLS
#define GLIBTOP_SYSDEPS_PROC_WD 25
#define GLIBTOP_SYSDEPS_PROC_AFFINITY 26
#define GLIBTOP_SYSDEPS_PROC_IO 27
-#define GLIBTOP_SYSDEPS_DISK 28
-#define GLIBTOP_MAX_SYSDEPS 29
+#define GLIBTOP_MAX_SYSDEPS 28
/* The 'features' args to glibtop_init_* is an unsigned long */
G_STATIC_ASSERT((1UL << (GLIBTOP_MAX_SYSDEPS - 1)) <= ULONG_MAX);
@@ -70,7 +69,6 @@ struct _glibtop_sysdeps
guint64 flags;
guint64 features; /* server features */
guint64 cpu; /* glibtop_cpu */
- guint64 disk; /* glibtop_cpu */
guint64 mem; /* glibtop_mem */
guint64 swap; /* glibtop_swap */
guint64 uptime; /* glibtop_uptime */
diff --git a/include/glibtop/union.h b/include/glibtop/union.h
index bda7c576..334f0217 100644
--- a/include/glibtop/union.h
+++ b/include/glibtop/union.h
@@ -23,7 +23,6 @@
#define __GLIBTOP_UNION_H__
#include <glibtop/cpu.h>
-#include <glibtop/disk.h>
#include <glibtop/mem.h>
#include <glibtop/swap.h>
#include <glibtop/uptime.h>
@@ -61,7 +60,6 @@ typedef union _glibtop_union glibtop_union;
union _glibtop_union
{
glibtop_cpu cpu;
- glibtop_disk disk;
glibtop_mem mem;
glibtop_swap swap;
glibtop_uptime uptime;
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 5a6f6511..90b82861 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -29,7 +29,7 @@ if HAVE_INTROSPECTION
introspection_sources = $(libgtop_2_0_la_SOURCES) lib.c ../glibtop.h ../libgtopconfig.h \
../include/glibtop/close.h ../include/glibtop/loadavg.h ../include/glibtop/prockernel.h ../include/glibtop/procstate.h \
../include/glibtop/sem_limits.h ../include/glibtop/uptime.h ../include/glibtop/command.h ../include/glibtop/mem.h ../include/glibtop/proclist.h \
- ../include/glibtop/proctime.h ../include/glibtop/shm_limits.h ../include/glibtop/cpu.h ../include/glibtop/disk.h ../include/glibtop/msg_limits.h \
+ ../include/glibtop/proctime.h ../include/glibtop/shm_limits.h ../include/glibtop/cpu.h ../include/glibtop/msg_limits.h \
../include/glibtop/procmem.h ../include/glibtop/procuid.h ../include/glibtop/swap.h \
../include/glibtop/procsegment.h ../include/glibtop/sysdeps.h ../include/glibtop/global.h \
../include/glibtop/procsignal.h ../include/glibtop/union.h ../include/glibtop/gnuserv.h \
diff --git a/lib/command.c b/lib/command.c
index cf2270e0..b6ccf1f2 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -43,7 +43,6 @@ glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
CHECK_CMND(GLIBTOP_CMND_QUIT);
CHECK_CMND(GLIBTOP_CMND_SYSDEPS);
CHECK_CMND(GLIBTOP_CMND_CPU);
- CHECK_CMND(GLIBTOP_CMND_DISK);
CHECK_CMND(GLIBTOP_CMND_MEM);
CHECK_CMND(GLIBTOP_CMND_SWAP);
CHECK_CMND(GLIBTOP_CMND_UPTIME);
diff --git a/lib/libgtop.sym b/lib/libgtop.sym
index 60316a72..afa9d070 100644
--- a/lib/libgtop.sym
+++ b/lib/libgtop.sym
@@ -3,8 +3,6 @@ glibtop_close
glibtop_close_r
glibtop_get_cpu
glibtop_get_cpu_l
-glibtop_get_disk
-glibtop_get_disk_l
glibtop_get_fsusage
glibtop_get_fsusage_l
glibtop_get_loadavg
diff --git a/lib/sysdeps.c b/lib/sysdeps.c
index 96292568..2a761576 100644
--- a/lib/sysdeps.c
+++ b/lib/sysdeps.c
@@ -27,7 +27,6 @@
const unsigned long glibtop_server_features =
GLIBTOP_SUID_CPU +
-GLIBTOP_SUID_DISK +
GLIBTOP_SUID_MEM +
GLIBTOP_SUID_SWAP +
GLIBTOP_SUID_UPTIME +
@@ -57,9 +56,6 @@ const _glibtop_init_func_t _glibtop_init_hook_s [] = {
#if !GLIBTOP_SUID_CPU
_glibtop_init_cpu_s,
#endif
-#if !GLIBTOP_SUID_DISK
- _glibtop_init_disk_s,
-#endif
#if !GLIBTOP_SUID_MEM
_glibtop_init_mem_s,
#endif
diff --git a/src/daemon/main.c b/src/daemon/main.c
index 34cbaf50..b51addf6 100644
--- a/src/daemon/main.c
+++ b/src/daemon/main.c
@@ -97,10 +97,6 @@ handle_parent_connection (int s)
glibtop_get_cpu_l (server, &resp->u.data.cpu);
do_output (s, resp, _offset_data (cpu), 0, NULL);
break;
- case GLIBTOP_CMND_DISK:
- glibtop_get_disk_l (server, &resp->u.disk.cpu);
- do_output (s, resp, _offset_data (disk), 0, NULL);
- break;
case GLIBTOP_CMND_MEM:
glibtop_get_mem_l (server, &resp->u.data.mem);
do_output (s, resp, _offset_data (mem), 0, NULL);
diff --git a/sysdeps/common/default.c b/sysdeps/common/default.c
index c20f2938..e3b096f2 100644
--- a/sysdeps/common/default.c
+++ b/sysdeps/common/default.c
@@ -65,20 +65,6 @@ glibtop_get_cpu(glibtop_cpu *buf)
/**
- * glibtop_get_disk:
- * @buf: A location to return the disk usage.
- *
- * Get the DISK usage.
- *
- */
-void
-glibtop_get_cpu(glibtop_cpu *buf)
-{
- glibtop_get_cpu_l(glibtop_global_server, buf);
-}
-
-
-/**
* glibtop_get_fsusage:
* @buf: A location to return the file system usage.
* @mount_dir: mount dir where to get the information of usage.
diff --git a/sysdeps/common/sysdeps_suid.c b/sysdeps/common/sysdeps_suid.c
index ecb1d53e..24953176 100644
--- a/sysdeps/common/sysdeps_suid.c
+++ b/sysdeps/common/sysdeps_suid.c
@@ -30,9 +30,6 @@ const _glibtop_init_func_t _glibtop_init_hook_p [] = {
#if GLIBTOP_SUID_CPU
_glibtop_init_cpu_p,
#endif
-#if GLIBTOP_SUID_DISK
- _glibtop_init_disk_p,
-#endif
#if GLIBTOP_SUID_MEM
_glibtop_init_mem_p,
#endif
diff --git a/sysdeps/linux/Makefile.am b/sysdeps/linux/Makefile.am
index c51bb155..fdd54696 100644
--- a/sysdeps/linux/Makefile.am
+++ b/sysdeps/linux/Makefile.am
@@ -4,7 +4,7 @@ noinst_LTLIBRARIES = libgtop_sysdeps-2.0.la libgtop_sysdeps_suid-2.0.la
EXTRA_DIST = procmap_smaps.gperf procmap_smaps.c
-libgtop_sysdeps_2_0_la_SOURCES = open.c close.c cpu.c disk.c mem.c swap.c \
+libgtop_sysdeps_2_0_la_SOURCES = open.c close.c cpu.c mem.c swap.c \
uptime.c loadavg.c shm_limits.c msg_limits.c \
sem_limits.c proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c prockernel.c \
diff --git a/sysdeps/linux/disk.c b/sysdeps/linux/disk.c
deleted file mode 100644
index 159f8f12..00000000
--- a/sysdeps/linux/disk.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 1998-99 Martin Baulig
- This file is part of LibGTop 1.0.
-
- Contributed by James Dominic P. Guana <guana.histark@gmail.com>, May 2020.
-
- LibGTop is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License,
- or (at your option) any later version.
-
- LibGTop is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- You should have received a copy of the GNU General Public License
- along with LibGTop; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <config.h>
-#include <glibtop/error.h>
-#include <glibtop/disk.h>
-
-#include "glibtop_private.h"
-
-static const unsigned long _glibtop_sysdeps_disk =
-(1L << GLIBTOP_XDISK_SECTORS_READ) + (1L << GLIBTOP_XDISK_TIME_READ) +
-(1L << GLIBTOP_XDISK_SECTORS_WRITE) + (1L << GLIBTOP_XDISK_TIME_WRITE);
-
-/* Init function. */
-
-void
-_glibtop_init_disk_s (glibtop *server)
-{
- server->sysdeps.disk = _glibtop_sysdeps_disk;
-}
-
-/* Provides information about disk usage. */
-
-#define FILENAME "/proc/diskstats" //kernel reports sectors by 512 bytes even for AF 4kn
-#define STAT_BUFSIZ 81920
-
-void
-glibtop_get_disk_s (glibtop *server, glibtop_disk *buf)
-{
- char buffer [STAT_BUFSIZ], *p;
- int i;
-
- memset (buf, 0, sizeof (glibtop_disk));
-
- file_to_buffer(server, buffer, sizeof buffer, FILENAME);
-
- /*
- * GLOBAL
- */
-
- p = buffer; /* "disk" */
-
- /*
- * PER DISK
- */
-
- for (i = 0; i <= server->ndisk; i++) {
-
- p = skip_multiple_token(p,2);
-
- // skip if disk is the raw device
- if(!check_alphanumeric_word(p)){
-
- p = skip_line(p); /* move to ^ */
- p = skip_multiple_token(p,2);
-
- }
-
- if (!check_disk_line_warn(server, p, i))
- break;
-
- p = skip_token(p); /* prev xdisk_name */
- p = skip_token(p); /* prev xdisk_reads_completed */
- p = skip_token(p); /* prev xdisk_reads_merged */
-
- buf->xdisk_sectors_read [i] = strtoull (p, &p, 0);
- buf->xdisk_time_read [i] = strtoull (p, &p, 0);
-
- p = skip_token(p); /* prev xdisk_writes_completed */
- p = skip_token(p); /* prev xdisk_writes_merged */
-
- buf->xdisk_sectors_write [i] = strtoull (p, &p, 0);
- buf->xdisk_time_write [i] = strtoull (p, &p, 0);
-
- p = skip_line(p); /* move to ^ */
-
- }
-}
diff --git a/sysdeps/linux/glibtop_private.c b/sysdeps/linux/glibtop_private.c
index 7b36561c..d3a49aa6 100644
--- a/sysdeps/linux/glibtop_private.c
+++ b/sysdeps/linux/glibtop_private.c
@@ -57,24 +57,6 @@ skip_token (const char *p)
}
-int
-check_alphanumeric_word (const char *p)
-{
- int test = 0;
- p = next_token(p);
- while (*p && !g_ascii_isspace(*p)) {
- if(g_ascii_isalpha(*p)){
- test = 0;
- }else if(g_ascii_isdigit(*p)){
- test = 1;
- }
- p++;
- };
- p = next_token(p);
- return test;
-}
-
-
/*
* Read functions
*/
diff --git a/sysdeps/linux/glibtop_private.h b/sysdeps/linux/glibtop_private.h
index d42ee669..03761f4f 100644
--- a/sysdeps/linux/glibtop_private.h
+++ b/sysdeps/linux/glibtop_private.h
@@ -61,9 +61,6 @@ skip_line (const char *p)
return (char *) (*p ? p+1 : p);
}
-int
-check_alphanumeric_word (const char *p);
-
/*
* Smart strtoul which handles binary suffixes
* e.g: get_scaled("Size: 32 kB", "Size:") == 32768
diff --git a/sysdeps/linux/glibtop_server.h b/sysdeps/linux/glibtop_server.h
index 43dd9d9f..6240d5de 100644
--- a/sysdeps/linux/glibtop_server.h
+++ b/sysdeps/linux/glibtop_server.h
@@ -23,7 +23,6 @@
#define __LINUX__GLIBTOP_SERVER_H__
#define GLIBTOP_SUID_CPU 0
-#define GLIBTOP_SUID_DISK 0
#define GLIBTOP_SUID_MEM 0
#define GLIBTOP_SUID_SWAP 0
#define GLIBTOP_SUID_UPTIME 0
diff --git a/sysdeps/stub/disk.c b/sysdeps/stub/disk.c
deleted file mode 100644
index a946fdf5..00000000
--- a/sysdeps/stub/disk.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 1998-99 Martin Baulig
- This file is part of LibGTop 1.0.
-
- Contributed by James Dominic P. Guana <guana.histark@gmail.com>, May 2020.
-
- LibGTop is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License,
- or (at your option) any later version.
-
- LibGTop is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- You should have received a copy of the GNU General Public License
- along with LibGTop; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <config.h>
-#include <glibtop.h>
-#include <glibtop/disk.h>
-
-static const unsigned long _glibtop_sysdeps_disk = 0;
-
-/* Init function. */
-
-void
-_glibtop_init_disk_s (glibtop *server)
-{
- server->sysdeps.disk = _glibtop_sysdeps_disk;
-}
-
-/* Provides information about disk usage. */
-
-void
-glibtop_get_disk_s (glibtop *server, glibtop_disk *buf)
-{
- memset (buf, 0, sizeof (glibtop_disk));
-}
diff --git a/sysdeps/stub/glibtop_server.h b/sysdeps/stub/glibtop_server.h
index 0f8bd194..1dd18bf0 100644
--- a/sysdeps/stub/glibtop_server.h
+++ b/sysdeps/stub/glibtop_server.h
@@ -25,7 +25,6 @@
G_BEGIN_DECLS
#define GLIBTOP_SUID_CPU 0
-#define GLIBTOP_SUID_DISK 0
#define GLIBTOP_SUID_MEM 0
#define GLIBTOP_SUID_SWAP 0
#define GLIBTOP_SUID_UPTIME 0