From 0f22ecbb798add2e02b586894434884765f7daae Mon Sep 17 00:00:00 2001 From: Kaleb Keithley Date: Fri, 14 Nov 2003 16:49:23 +0000 Subject: Initial revision --- get_rload.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 get_rload.c (limited to 'get_rload.c') diff --git a/get_rload.c b/get_rload.c new file mode 100644 index 0000000..0ff77b4 --- /dev/null +++ b/get_rload.c @@ -0,0 +1,76 @@ +/* $XFree86: xc/programs/xload/get_rload.c,v 1.5 2002/01/07 21:46:49 dawes Exp $ */ + +#include +#include +#include +#include +#include +#include "xload.h" + +/* Not all OS supports get_rload + steal the STUB idea from get_load + */ +#if defined(QNX4) +#define RLOADSTUB +#endif + +#ifdef RLOADSTUB +void GetRLoadPoint( w, closure, call_data ) + Widget w; /* unused */ + XtPointer closure; /* unused */ + XtPointer call_data; /* pointer to (double) return value */ + +{ + *(double *)call_data = 1.0; +} +#else /* RLOADSTUB */ + +#include +#ifndef _PATH_RWHODIR +#define _PATH_RWHODIR "/var/spool/rwho" +#endif + +typedef struct _XLoadResources { + Boolean show_label; + Boolean use_lights; + String remote; +} XLoadResources; + +extern XLoadResources resources ; + +#define WHDRSIZE ((int)(sizeof (buf) - sizeof (buf.wd_we))) + +void GetRLoadPoint( w, closure, call_data ) + Widget w; /* unused */ + XtPointer closure; /* unused */ + XtPointer call_data; /* pointer to (double) return value */ + +{ + int f; + static char *fname = NULL; + static struct whod buf; + int cc; + + *(double *)call_data = 0.0; /* to be on the safe side */ + + if (fname == NULL) { + if ((fname = malloc(strlen(_PATH_RWHODIR)+strlen("/whod.")+strlen(resources.remote)+1)) == NULL) { + fprintf(stderr,"GetRLoadPoint: malloc() failed\n"); + exit(1); + } + strcpy(fname,_PATH_RWHODIR); + strcat(fname,"/whod."); + strcat(fname,resources.remote); + } + if ((f = open(fname, O_RDONLY, 0)) < 0) + return; + + cc = read(f, &buf, sizeof(buf)); + close(f); + if (cc < WHDRSIZE) + return; + + *(double *)call_data = buf.wd_loadav[0] / 100.0; +} + +#endif /* RLOADSTUB */ -- cgit v1.2.3