@ -1,14 +1,14 @@
/* See LICENSE file for copyright and license details. */
/* See LICENSE file for copyright and license details. */
# if defined(__linux__)
# if defined(__linux__)
# include <errno.h>
# include <errno.h>
# include <stdio.h>
# include <stdio.h>
# include <string.h>
# include <string.h>
# include "../util.h"
# include "../util.h"
const char *
const char *
swap_free ( void )
swap_free ( void )
{
{
long total , free ;
long total , free ;
FILE * fp ;
FILE * fp ;
size_t bytes_read ;
size_t bytes_read ;
@ -16,12 +16,15 @@ swap_free(void)
fp = fopen ( " /proc/meminfo " , " r " ) ;
fp = fopen ( " /proc/meminfo " , " r " ) ;
if ( fp = = NULL ) {
if ( fp = = NULL ) {
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
return NULL ;
return NULL ;
}
}
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 , fp ) ) = = 0 ) {
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 ,
fprintf ( stderr , " fread '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fp ) ) = = 0 ) {
fprintf ( stderr , " fread '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
fclose ( fp ) ;
fclose ( fp ) ;
return NULL ;
return NULL ;
}
}
@ -36,11 +39,11 @@ swap_free(void)
sscanf ( match , " SwapFree: %ld kB \n " , & free ) ;
sscanf ( match , " SwapFree: %ld kB \n " , & free ) ;
return bprintf ( " %f " , ( float ) free / 1024 / 1024 ) ;
return bprintf ( " %f " , ( float ) free / 1024 / 1024 ) ;
}
}
const char *
const char *
swap_perc ( void )
swap_perc ( void )
{
{
long total , free , cached ;
long total , free , cached ;
FILE * fp ;
FILE * fp ;
size_t bytes_read ;
size_t bytes_read ;
@ -48,12 +51,15 @@ swap_perc(void)
fp = fopen ( " /proc/meminfo " , " r " ) ;
fp = fopen ( " /proc/meminfo " , " r " ) ;
if ( fp = = NULL ) {
if ( fp = = NULL ) {
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
return NULL ;
return NULL ;
}
}
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 , fp ) ) = = 0 ) {
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 ,
fprintf ( stderr , " fread '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fp ) ) = = 0 ) {
fprintf ( stderr , " fread '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
fclose ( fp ) ;
fclose ( fp ) ;
return NULL ;
return NULL ;
}
}
@ -72,11 +78,11 @@ swap_perc(void)
sscanf ( match , " SwapFree: %ld kB \n " , & free ) ;
sscanf ( match , " SwapFree: %ld kB \n " , & free ) ;
return bprintf ( " %d " , 100 * ( total - free - cached ) / total ) ;
return bprintf ( " %d " , 100 * ( total - free - cached ) / total ) ;
}
}
const char *
const char *
swap_total ( void )
swap_total ( void )
{
{
long total ;
long total ;
FILE * fp ;
FILE * fp ;
size_t bytes_read ;
size_t bytes_read ;
@ -84,11 +90,14 @@ swap_total(void)
fp = fopen ( " /proc/meminfo " , " r " ) ;
fp = fopen ( " /proc/meminfo " , " r " ) ;
if ( fp = = NULL ) {
if ( fp = = NULL ) {
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
return NULL ;
return NULL ;
}
}
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 , fp ) ) = = 0 ) {
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 ,
fprintf ( stderr , " fread '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fp ) ) = = 0 ) {
fprintf ( stderr , " fread '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
fclose ( fp ) ;
fclose ( fp ) ;
return NULL ;
return NULL ;
}
}
@ -99,11 +108,11 @@ swap_total(void)
sscanf ( match , " SwapTotal: %ld kB \n " , & total ) ;
sscanf ( match , " SwapTotal: %ld kB \n " , & total ) ;
return bprintf ( " %f " , ( float ) total / 1024 / 1024 ) ;
return bprintf ( " %f " , ( float ) total / 1024 / 1024 ) ;
}
}
const char *
const char *
swap_used ( void )
swap_used ( void )
{
{
long total , free , cached ;
long total , free , cached ;
FILE * fp ;
FILE * fp ;
size_t bytes_read ;
size_t bytes_read ;
@ -111,11 +120,14 @@ swap_used(void)
fp = fopen ( " /proc/meminfo " , " r " ) ;
fp = fopen ( " /proc/meminfo " , " r " ) ;
if ( fp = = NULL ) {
if ( fp = = NULL ) {
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fprintf ( stderr , " fopen '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
return NULL ;
return NULL ;
}
}
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 , fp ) ) = = 0 ) {
if ( ( bytes_read = fread ( buf , sizeof ( char ) , sizeof ( buf ) - 1 ,
fprintf ( stderr , " fread '/proc/meminfo': %s \n " , strerror ( errno ) ) ;
fp ) ) = = 0 ) {
fprintf ( stderr , " fread '/proc/meminfo': %s \n " ,
strerror ( errno ) ) ;
fclose ( fp ) ;
fclose ( fp ) ;
return NULL ;
return NULL ;
}
}
@ -134,5 +146,7 @@ swap_used(void)
sscanf ( match , " SwapFree: %ld kB \n " , & free ) ;
sscanf ( match , " SwapFree: %ld kB \n " , & free ) ;
return bprintf ( " %f " , ( float ) ( total - free - cached ) / 1024 / 1024 ) ;
return bprintf ( " %f " , ( float ) ( total - free - cached ) / 1024 / 1024 ) ;
}
}
# elif defined(__OpenBSD__)
/* unimplemented */
# endif
# endif