svn commit: r242519 - head/usr.sbin/watchdogd
Xin Li
delphij at delphij.net
Sat Nov 3 19:50:34 UTC 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 11/3/12 11:45 AM, Ian Lepore wrote:
> On Sat, 2012-11-03 at 18:38 +0000, Xin LI wrote:
>> Author: delphij Date: Sat Nov 3 18:38:28 2012 New Revision:
>> 242519 URL: http://svn.freebsd.org/changeset/base/242519
>>
>> Log: Replace log(3) with flsll(3) for watchdogd(8) and drop libm
>> dependency.
>>
>> MFC after: 2 weeks
>>
>> Modified: head/usr.sbin/watchdogd/Makefile
>> head/usr.sbin/watchdogd/watchdogd.c
>>
>> Modified: head/usr.sbin/watchdogd/Makefile
>> ==============================================================================
>>
>>
- --- head/usr.sbin/watchdogd/Makefile Sat Nov 3 18:21:32 2012 (r242518)
>> +++ head/usr.sbin/watchdogd/Makefile Sat Nov 3 18:38:28 2012
>> (r242519) @@ -4,8 +4,8 @@ PROG= watchdogd LINKS=
>> ${BINDIR}/watchdogd ${BINDIR}/watchdog MAN= watchdogd.8
>> watchdog.8
>>
>> -LDADD= -lm -lutil -DPADD= ${LIBM} ${LIBUTIL} +LDADD= -lutil
>> +DPADD= ${LIBUTIL}
>>
>> .include <bsd.prog.mk>
>>
>>
>> Modified: head/usr.sbin/watchdogd/watchdogd.c
>> ==============================================================================
>>
>>
- --- head/usr.sbin/watchdogd/watchdogd.c Sat Nov 3 18:21:32 2012 (r242518)
>> +++ head/usr.sbin/watchdogd/watchdogd.c Sat Nov 3 18:38:28 2012
>> (r242519) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include
>> <stdio.h> #include <stdlib.h> #include <string.h> +#include
>> <strings.h> #include <sysexits.h> #include <unistd.h>
>>
>> @@ -280,7 +281,7 @@ parseargs(int argc, char *argv[]) if (a ==
>> 0) timeout = WD_TO_NEVER; else - timeout = 1.0 + log(a * 1e9)
>> / log(2.0); + timeout = flsll(a * 1e9); if (debugging)
>> printf("Timeout is 2^%d nanoseconds\n", timeout);
>
> Shouldn't we also change the type of the variable 'a' from double
> to int64 (and the strtod() and the 1e9 constant), thus removing all
> dregs of floating point where it isn't really needed? (Sorry, but
> 20 years of working on wimpy embedded systems without FP hardware
> just make me blurt out these things automatically).
While it do make sense in practical (in my opinion), I think that
would lose functionality because the watchdog can be programmed in a
manner that timeout is set to smaller than 1 second (not for the
demonized case). Maybe we can make it an build option?
Index: Makefile
===================================================================
- --- Makefile (revision 242519)
+++ Makefile (working copy)
@@ -7,7 +7,15 @@ MAN= watchdogd.8 watchdog.8
LDADD= -lutil
DPADD= ${LIBUTIL}
+.if defined(SMALL)
+CFLAGS+= -DSMALL
+.endif
+
.include <bsd.prog.mk>
test: ${PROG}
+.if defined(SMALL)
+ ./${PROG} -t 1
+.else
./${PROG} -t 1.0
+.endif
Index: watchdogd.c
===================================================================
- --- watchdogd.c (revision 242519)
+++ watchdogd.c (working copy)
@@ -241,7 +241,11 @@ parseargs(int argc, char *argv[])
{
int c;
char *p;
+#if defined(SMALL)
+ long a;
+#else
double a;
+#endif
c = strlen(argv[0]);
if (argv[0][c - 1] == 'd')
@@ -273,7 +277,11 @@ parseargs(int argc, char *argv[])
case 't':
p = NULL;
errno = 0;
+#if defined(SMALL)
+ a = strtol(optarg, &p, 0);
+#else
a = strtod(optarg, &p);
+#endif
if ((p != NULL && *p != '\0') || errno != 0)
errx(EX_USAGE, "-t argument is not a
number");
if (a < 0)
Cheers,
-----BEGIN PGP SIGNATURE-----
iQEcBAEBCAAGBQJQlXWIAAoJEG80Jeu8UPuzKiwIAMGknRDKiXIWLBL86ABfOZVU
EkuT7u4S90hAlAyWdropISadgReRF3yenYPGM9oCHtoLLS5Ma2iLd8tMFqv76uxo
0nyqY7HpKRBcYfurYcVTcckrphQdD4DbviRPgBPsZ6/ClHN8Bkjc2Am6zSbzwM5C
XZTNicX5/M4IqArYg5L8j3Z4WLo3HIG/oo1OMU+hP+vJT9vBIWK8ap9n3ajNz15p
OjKNZXs88X0OaeqhO0Ayn2lGIxkDQ6OszYHi6UUQ7p1m3Op4ewx/SlrgEhDpzBY2
l643UHj/6IUfLUvahp1m82FEKelFYleoZ02scpgu951+che3+t03z9NFUFjl/OA=
=UN3H
-----END PGP SIGNATURE-----
More information about the svn-src-all
mailing list