#include stdio #include jpidef #define SS$_NOMOREPROC 2472 typedef struct { short len, cod; void *address; int *retlen; } item; typedef struct { long count; void *address; } desc; int sys$getjpiw(), sys$asctim(), lib$put_output(), sys$exit(); enum counters {PRCNAM, KRNLTIM, EXECTIM, USERTIM, DIRIO, BUFIO, PAGEFLTS, PID, IMAGECOUNT, IMAGNAME, COUNTERS}; int wildcard = -1, first = 1, data[COUNTERS]; long long current_time, init_time; short iosb[4]; char *arg, asctim[23+1], imagename[80], prcnam[15+1], text[256]; item getjpi_items[] = { sizeof (prcnam) - 1, JPI$_PRCNAM, prcnam, &data[PRCNAM], sizeof (int), JPI$_KRNLTIM, &data[KRNLTIM], 0, sizeof (int), JPI$_EXECTIM, &data[EXECTIM], 0, sizeof (int), JPI$_USERTIM, &data[USERTIM], 0, sizeof (int), JPI$_DIRIO, &data[DIRIO], 0, sizeof (int), JPI$_BUFIO, &data[BUFIO], 0, sizeof (int), JPI$_PAGEFLTS, &data[PAGEFLTS], 0, sizeof (int), JPI$_PID, &data[PID], 0, sizeof (int), JPI$_IMAGECOUNT, &data[IMAGECOUNT], 0, sizeof (imagename) - 1, JPI$_IMAGNAME, imagename, &data[IMAGNAME], 0, 0, 0, 0}; item getjpi_node_item[] = { sizeof (imagename) - 1, JPI$_NODENAME, imagename, &data[IMAGNAME], 0, 0, 0, 0}; struct {int len; char *addr;} asctim_desc = { sizeof asctim, asctim }; main() { int status, i; status = sys$getjpiw ( 0, 0, 0, getjpi_node_item, iosb, 0, 0); imagename[data[IMAGNAME]]=0; status = sys$asctim ( 0, &asctim_desc, 0, 0 ); asctim[23]=0; while (1) { status = sys$getjpiw ( 0, &wildcard, 0, getjpi_items, iosb, 0, 0); if (!(status & 1)) break; if (!(iosb[0] & 1)) printf ("?? iosb[0]=%d ??", iosb[0]); if (first) { printf( "PRCNAM, KRNLTIM, EXECTIM, USERTIM, DIRIO, BUFIO, PAGEFLTS, PID,\ IMAGECOUNT, IMAGNAME,%s,%s\n", imagename, asctim); first = 0; } imagename[data[IMAGNAME]]=0; prcnam[data[PRCNAM]]=0; printf ("\"%s\",%d,%d,%d,%d,%d,%d,%08X,%d,%s\n", prcnam, data[KRNLTIM], data[EXECTIM], data[USERTIM], data[DIRIO], data[BUFIO], data[PAGEFLTS], data[PID], data[IMAGECOUNT], imagename); } if (status = SS$_NOMOREPROC) status |= 1; return status; }