blob: 3937c83dd89efb5edb2ecac1cdb9427eedebb936 [file] [log] [blame]
Bernd Kuhls815e4f12016-08-06 09:41:58 +02001Fix compilation with uClibc
2
3Ported from
4https://github.com/stschake/buildroot-grasshopper/blob/master/package/torsmo/torsmo-0.18-uclibc-getloadavg.patch
5
6Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
7
8diff -uwNr vdr-2.3.1.org/skinlcars.c vdr-2.3.1/skinlcars.c
9--- vdr-2.3.1.org/skinlcars.c 2015-09-01 12:07:07.000000000 +0200
10+++ vdr-2.3.1/skinlcars.c 2016-07-31 21:00:11.000000000 +0200
11@@ -1099,6 +1099,44 @@
12 }
13 }
14
15+/* uclibc and dietlibc do not have this junk -ReneR */
16+#if defined (__UCLIBC__) || defined (__dietlibc__)
17+static int getloadavg (double loadavg[], int nelem)
18+{
19+ int fd;
20+
21+ fd = open ("/proc/loadavg", O_RDONLY);
22+ if (fd < 0)
23+ return -1;
24+ else
25+ {
26+ char buf[65], *p;
27+ ssize_t nread;
28+ int i;
29+
30+ nread = read (fd, buf, sizeof buf - 1);
31+ close (fd);
32+ if (nread <= 0)
33+ return -1;
34+ buf[nread - 1] = '\0';
35+
36+ if (nelem > 3)
37+ nelem = 3;
38+ p = buf;
39+ for (i = 0; i < nelem; ++i)
40+ {
41+ char *endp;
42+ loadavg[i] = strtod (p, &endp);
43+ if (endp == p)
44+ return -1;
45+ p = endp;
46+ }
47+
48+ return i;
49+ }
50+}
51+#endif
52+
53 void cSkinLCARSDisplayMenu::DrawLoad(void)
54 {
55 if (yb04) {