New API to retrieve disk stats in Linux
This commit is contained in:
committed by
Robert Roth
parent
d49e17039e
commit
9e62440b31
74
include/glibtop/disk.h
Normal file
74
include/glibtop/disk.h
Normal file
@@ -0,0 +1,74 @@
|
||||
/* 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
|
@@ -54,8 +54,9 @@ 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 28
|
||||
#define GLIBTOP_MAX_SYSDEPS 29
|
||||
|
||||
/* The 'features' args to glibtop_init_* is an unsigned long */
|
||||
G_STATIC_ASSERT((1UL << (GLIBTOP_MAX_SYSDEPS - 1)) <= ULONG_MAX);
|
||||
@@ -69,6 +70,7 @@ 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 */
|
||||
|
@@ -23,6 +23,7 @@
|
||||
#define __GLIBTOP_UNION_H__
|
||||
|
||||
#include <glibtop/cpu.h>
|
||||
#include <glibtop/disk.h>
|
||||
#include <glibtop/mem.h>
|
||||
#include <glibtop/swap.h>
|
||||
#include <glibtop/uptime.h>
|
||||
@@ -60,6 +61,7 @@ typedef union _glibtop_union glibtop_union;
|
||||
union _glibtop_union
|
||||
{
|
||||
glibtop_cpu cpu;
|
||||
glibtop_disk disk;
|
||||
glibtop_mem mem;
|
||||
glibtop_swap swap;
|
||||
glibtop_uptime uptime;
|
||||
|
Reference in New Issue
Block a user