procps/proc/diskstat.h
Craig Small e445f7e6c5 library: Update diskstat API
The calls for reading diskstat have been moved out of
sysinfo and into new files diskstat.[ch] These new
library calls follow the standard pattern for the
new libprocps.

vmstat is updated to use the new API and also got
the weighted IO time added.

vmstat -p previously would only show partitions, not
disks. There does not appear to be any good reason to
artifically deny a user to use this command on a disk,
rather than a partition so this restriction was lifted.

I also realised using int for devid means you can send
the library negative numbers, the index uses unsigned int.
Other similiar calls will need to be fixed too.

Signed-off-by: Craig Small <csmall@enc.com.au>
2015-07-07 22:42:06 +10:00

71 lines
2.2 KiB
C

/*
* diskstat - Disk statistics - part of procps
*
* Copyright (c) 2003 Fabian Frederick
* Copyright (C) 2003 Albert Cahalan
* Copyright (C) 2015 Craig Small <csmall@enc.com.au>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef PROC_DISKSTAT_H
#define PROC_DISKSTAT_H
#include <proc/procps.h>
__BEGIN_DECLS
enum procps_diskstat_devitem {
PROCPS_DISKSTAT_READS,
PROCPS_DISKSTAT_READS_MERGED,
PROCPS_DISKSTAT_READ_SECTORS,
PROCPS_DISKSTAT_READ_TIME,
PROCPS_DISKSTAT_WRITES,
PROCPS_DISKSTAT_WRITES_MERGED,
PROCPS_DISKSTAT_WRITE_SECTORS,
PROCPS_DISKSTAT_WRITE_TIME,
PROCPS_DISKSTAT_IO_INPROGRESS,
PROCPS_DISKSTAT_IO_TIME,
PROCPS_DISKSTAT_IO_WTIME
};
struct procps_diskstat;
struct procps_diskstat_dev;
int procps_diskstat_new (struct procps_diskstat **info);
int procps_diskstat_read (struct procps_diskstat *info);
int procps_diskstat_ref (struct procps_diskstat *info);
int procps_diskstat_unref (struct procps_diskstat **info);
int procps_diskstat_dev_count (const struct procps_diskstat *info);
int procps_diskstat_dev_getbyname(
const struct procps_diskstat *info,
const char *name);
unsigned long procps_diskstat_dev_get(
const struct procps_diskstat *info,
const enum procps_diskstat_devitem item,
const unsigned int devid);
char* procps_diskstat_dev_getname(
const struct procps_diskstat *info,
const unsigned int devid);
int procps_diskstat_dev_isdisk(
const struct procps_diskstat *info,
const unsigned int devid);
__END_DECLS
#endif