xref: /original-bsd/games/snake/snake/busy.c (revision a141c157)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  */
6 
7 #ifndef lint
8 static char sccsid[] = "@(#)busy.c	5.2 (Berkeley) 06/03/87";
9 #endif not lint
10 
11 /*
12  * busy: print an indication of how busy the system is for games.
13  */
14 #ifndef MAX
15 # define MAX 30
16 #endif
17 
18 #include <stdio.h>
19 main(argc, argv)
20 char **argv;
21 {
22 	double la[3];
23 	double max;
24 
25 	loadav(la);
26 	max = la[0];
27 	if (la[1] > max) max = la[1];
28 	if (la[2] > max) max = la[2];
29 	if (argc > 1)
30 		printf("1=%g, 5=%g, 15=%g, max=%g\n", la[0], la[1], la[2], max);
31 	if (max > MAX)
32 		printf("100\n");	/* incredibly high, no games allowed */
33 	else
34 		printf("0\n");
35 	exit(0);
36 }
37 
38 #include <sys/types.h>
39 #include <nlist.h>
40 
41 struct	nlist nl[] = {
42 	{ "_avenrun" },
43 	{ 0 },
44 };
45 
46 loadav(avenrun)
47 double	*avenrun;
48 {
49 	register int i;
50 	int	kmem;
51 
52 	if ((kmem = open("/dev/kmem", 0)) < 0) {
53 		fprintf(stderr, "No kmem\n");
54 		exit(1);
55 	}
56 	nlist("/vmunix", nl);
57 	if (nl[0].n_type==0) {
58 		fprintf(stderr, "No namelist\n");
59 		exit(1);
60 	}
61 
62 	lseek(kmem, (long)nl[0].n_value, 0);
63 	read(kmem, avenrun, 3*sizeof(*avenrun));
64 }
65