From owner-svn-src-all@FreeBSD.ORG Sat Nov 3 19:50:34 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 091CED2A; Sat, 3 Nov 2012 19:50:34 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [64.62.153.212]) by mx1.freebsd.org (Postfix) with ESMTP id D92048FC19; Sat, 3 Nov 2012 19:50:33 +0000 (UTC) Received: from Xins-MacBook-Pro.local (nat-dip5.cfw-a-gci.corp.yahoo.com [209.131.62.114]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by anubis.delphij.net (Postfix) with ESMTPSA id 64CD721139; Sat, 3 Nov 2012 12:50:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=delphij.net; s=anubis; t=1351972233; bh=YYz6dh/3jsAoI9H26s+cgiuX0MOPO+5vXyE1NC4Ta9c=; h=Date:From:Reply-To:To:CC:Subject:References:In-Reply-To; b=xu01rb1GiF9HmEDbtsQtYAZR0eDnSC2FaiM/yK/71QjDpTBAP34KyY/twHMRvbHpb BQYE5wk5lvODbA7dM3erBpxv9Dmy/D8ZvxUKJ+re/B2zfo0rBrvQU5i7hBS1FxcJlP S5P+kV2Op3UqljFBKVQAaZSKBav3bjwyTSxOK+FA= Message-ID: <50957588.5070504@delphij.net> Date: Sat, 03 Nov 2012 12:50:32 -0700 From: Xin Li Organization: The FreeBSD Project MIME-Version: 1.0 To: Ian Lepore Subject: Re: svn commit: r242519 - head/usr.sbin/watchdogd References: <201211031838.qA3IcSUR021854@svn.freebsd.org> <1351968359.1120.106.camel@revolution.hippie.lan> In-Reply-To: <1351968359.1120.106.camel@revolution.hippie.lan> X-Enigmail-Version: 1.4.5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Xin LI X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: d@delphij.net List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Nov 2012 19:50:34 -0000 -----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 >> >> >> 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 >> #include #include +#include >> #include #include >> >> @@ -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 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-----