From owner-freebsd-arch@freebsd.org Thu Dec 3 20:15:31 2020 Return-Path: Delivered-To: freebsd-arch@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 51AF34AEA95 for ; Thu, 3 Dec 2020 20:15:31 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Cn6XL3dSDz4h7N for ; Thu, 3 Dec 2020 20:15:30 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (v-critter.freebsd.dk [192.168.55.3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by phk.freebsd.dk (Postfix) with ESMTPS id 784AF8A577; Thu, 3 Dec 2020 20:15:28 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.16.1/8.16.1) with ESMTPS id 0B3KFSFn025220 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Thu, 3 Dec 2020 20:15:28 GMT (envelope-from phk@critter.freebsd.dk) Received: (from phk@localhost) by critter.freebsd.dk (8.16.1/8.16.1/Submit) id 0B3KFRdu025219; Thu, 3 Dec 2020 20:15:27 GMT (envelope-from phk) To: Konstantin Belousov cc: Cy Schubert , freebsd-arch@freebsd.org Subject: Re: struct timex and Linux adjtimex() In-reply-to: From: "Poul-Henning Kamp" References: <202012030523.0B35NsG7003810@slippy.cwsent.com> <60532.1606990671@critter.freebsd.dk> <60612.1606991186@critter.freebsd.dk> <202012031717.0B3HHalx003916@slippy.cwsent.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-ID: <25217.1607026527.1@critter.freebsd.dk> Content-Transfer-Encoding: quoted-printable Date: Thu, 03 Dec 2020 20:15:27 +0000 Message-ID: <25218.1607026527@critter.freebsd.dk> X-Rspamd-Queue-Id: 4Cn6XL3dSDz4h7N X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of phk@critter.freebsd.dk designates 130.225.244.222 as permitted sender) smtp.mailfrom=phk@critter.freebsd.dk X-Spamd-Result: default: False [-3.00 / 15.00]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; FREEFALL_USER(0.00)[phk]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.dk]; RBL_DBL_DONT_QUERY_IPS(0.00)[130.225.244.222:from]; SPAMHAUS_ZRD(0.00)[130.225.244.222:from:127.0.2.255]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FREEMAIL_TO(0.00)[gmail.com]; FORGED_SENDER(0.30)[phk@phk.freebsd.dk,phk@critter.freebsd.dk]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:1835, ipnet:130.225.0.0/16, country:EU]; FROM_NEQ_ENVFROM(0.00)[phk@phk.freebsd.dk,phk@critter.freebsd.dk]; MAILMAN_DEST(0.00)[freebsd-arch] X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Dec 2020 20:15:31 -0000 -------- Konstantin Belousov writes: > > The value of buf.time is the sum of its two fields, b= ut the > field buf.time.tv_usec must always be nonnegative. The f= ollow=E2=80=90 > ing example shows how to normalize a timeval with nano= second > resolution. > > while (buf.time.tv_usec < 0) { > buf.time.tv_sec -=3D 1; > buf.time.tv_usec +=3D 1000000000; > } > > I do not quite understand the context and internal meaning of the second > paragraph, though. Kernel should not allow negative tv_usec as the inpu= t > parameter, right ? Correct. Minus 10 nanoseconds should be expressed as { .tv_sec =3D -1; .tv_nsec =3D= 999999990; } -- = Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe = Never attribute to malice what can adequately be explained by incompetence= .