From nobody Mon Jul 20 03:50:49 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4h3RPj6hprz6l9vJ for ; Mon, 20 Jul 2026 03:50:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h3RPj4QhNz3VKT for ; Mon, 20 Jul 2026 03:50:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1784519449; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U2E6AWgln6nnb+MiA4KzF4jYQUnTqRzr6Y9QfTcHjuU=; b=x5nhar9Rb20lzI5LLGpTeibmgY00yb2Xm8Nj9pQY5yLCfyWEATG2tylWRMIRhZ3+AOH0+p ZX30illEJh+oflwy7i2Im3Sl43slRKUkATOlybzSXjON1nrjRFbu/Lhp/VNx8rwaDANfev 4n4nnLujPbOYy8ARbrtY1hwDD6Sgva/SZfdDOAOMXq4XzpecldveEvtE6s57Y6hWqrzIMG ModbrzPA3bjZ3CiK/5REez55BHr9RQnYO6cYU8V/8siAk7eRYNFrNBsyxCLlBxm+CgHokV ld0bPFDhGvO1UIVvpdK5iBHjwBgh/6r3mWnX/sAws9fXJidzwGFh2BtQJDgeLQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1784519449; a=rsa-sha256; cv=none; b=O44FgtXL68qwm6853JJBbptuasofwShwCHfJBMXbZWHaHWNYudRdVT2XLF9JS+AhuZTCtV vlLcKhXcYlPHUWMc3yrFsHOoR0mkMI63md6ruxSSqmYCU3YRnXDQ3H+EaHtJ7dmOCkGgvy poZVl+c4+pTT803Z1/K/AYDz8+IaZUjJocscfGJQO6uBXc5iy3UhfDQCEX6VSRk9UZc2ho DeSYt7c12hZCnWC/OBJuKFHtnm+moBSMdcNy/5HTaKt8ykK4BG6RriZ3RyoYcdiToaWau8 CsByRxfHFHcrL7/C2PmdhzqEWqNgzpicCqmJ6Zwkh4i+gGt44l//iJj22elGBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1784519449; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U2E6AWgln6nnb+MiA4KzF4jYQUnTqRzr6Y9QfTcHjuU=; b=jMxJNSfOneP9lobisJW+4QYSVRiH2CFsjeno8jMqevVLgeVdF6OMpXmZGOIiER+rdBdIPu GjPUsF9TpGFnw7muyerYcpB2YfzeLlLU7jB53jRyGKbILsQ3NrZ5Cn+6v7VS4dArg/8Env UGJOMHixyYGzT7PPa2vZbq4/mttcEjL5LMP5RZSvpROqS/kGpVRjbAG+ropYVnCDLf9MQx pVLigABIwcPG6B53SnFn6UJ4j+f09pEcDtXmq+h/0nOEGKz90/ib/BoErN6lFGAknQ6+DG VPkd/pNoqEbloCl9E13yztdh5CgMM9uAyPIqzfMvPU+7LzbiLon9nAkePI1agg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h3RPj37V6zlrm for ; Mon, 20 Jul 2026 03:50:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20760 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 20 Jul 2026 03:50:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ka Ho Ng Subject: git: 84eec65ebb27 - stable/14 - Add sbintime.9 manual page List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: khng X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 84eec65ebb271fb820b217583a1e7aef30f7ea0d Auto-Submitted: auto-generated Date: Mon, 20 Jul 2026 03:50:49 +0000 Message-Id: <6a5d9b19.20760.76d8080@gitrepo.freebsd.org> The branch stable/14 has been updated by khng: URL: https://cgit.FreeBSD.org/src/commit/?id=84eec65ebb271fb820b217583a1e7aef30f7ea0d commit 84eec65ebb271fb820b217583a1e7aef30f7ea0d Author: Ka Ho Ng AuthorDate: 2026-07-13 00:21:01 +0000 Commit: Ka Ho Ng CommitDate: 2026-07-20 03:50:14 +0000 Add sbintime.9 manual page sbintime.9 is a manual page that documents the usage of sbintime_t and its helper functions. MFC after: 1 week Reviewed by: ziaee, markj Differential Revision: https://reviews.freebsd.org/D57931 (cherry picked from commit c3f6c655dd155f4c84ce743c86e07d9f0b6b348a) --- share/man/man9/Makefile | 14 ++++ share/man/man9/callout.9 | 5 +- share/man/man9/microtime.9 | 3 +- share/man/man9/sbintime.9 | 171 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 190 insertions(+), 3 deletions(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 6ae2a2e62d12..aad3025b6fa0 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -312,6 +312,7 @@ MAN= accept_filter.9 \ rtentry.9 \ runqueue.9 \ rwlock.9 \ + sbintime.9 \ sbuf.9 \ scheduler.9 \ SDT.9 \ @@ -1961,6 +1962,19 @@ MLINKS+=rwlock.9 rw_assert.9 \ rwlock.9 rw_wlock.9 \ rwlock.9 rw_wowned.9 \ rwlock.9 rw_wunlock.9 +MLINKS+=sbintime.9 bttosbt.9 \ + sbintime.9 mstosbt.9 \ + sbintime.9 nstosbt.9 \ + sbintime.9 sbintime_getsec.9 \ + sbintime.9 sbttobt.9 \ + sbintime.9 sbttoms.9 \ + sbintime.9 sbttons.9 \ + sbintime.9 sbttots.9 \ + sbintime.9 sbttotv.9 \ + sbintime.9 sbttous.9 \ + sbintime.9 tstosbt.9 \ + sbintime.9 tvtosbt.9 \ + sbintime.9 ustosbt.9 MLINKS+=sbuf.9 sbuf_bcat.9 \ sbuf.9 sbuf_bcopyin.9 \ sbuf.9 sbuf_bcpy.9 \ diff --git a/share/man/man9/callout.9 b/share/man/man9/callout.9 index 97d9f4138742..1979e3e56c10 100644 --- a/share/man/man9/callout.9 +++ b/share/man/man9/callout.9 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 4, 2025 +.Dd July 4, 2026 .Dt CALLOUT 9 .Os .Sh NAME @@ -817,7 +817,8 @@ functions return a value of one if the callout was still pending when it was called, a zero if the callout could not be stopped and a negative one is it was either not running or has already completed. .Sh SEE ALSO -.Xr dtrace_callout_execute 4 +.Xr dtrace_callout_execute 4 , +.Xr sbintime 9 .Sh HISTORY .Fx initially used the long standing diff --git a/share/man/man9/microtime.9 b/share/man/man9/microtime.9 index d703d7b572d7..42c7000f0110 100644 --- a/share/man/man9/microtime.9 +++ b/share/man/man9/microtime.9 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 16, 2004 +.Dd July 4, 2026 .Dt MICROTIME 9 .Os .Sh NAME @@ -100,6 +100,7 @@ execution time. .Xr getnanouptime 9 , .Xr microuptime 9 , .Xr nanouptime 9 , +.Xr sbintime 9 , .Xr tvtohz 9 .Sh HISTORY The diff --git a/share/man/man9/sbintime.9 b/share/man/man9/sbintime.9 new file mode 100644 index 000000000000..2b101c04ef01 --- /dev/null +++ b/share/man/man9/sbintime.9 @@ -0,0 +1,171 @@ +.\" +.\" Copyright (c) 2026 Ka Ho Ng +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd July 12, 2026 +.Dt SBINTIME 9 +.Os +.Sh NAME +.Nm sbintime_t , +.Nm sbintime_getsec , +.Nm bttosbt , +.Nm sbttobt , +.Nm sbttons , +.Nm nstosbt , +.Nm sbttous , +.Nm ustosbt , +.Nm sbttoms , +.Nm mstosbt , +.Nm sbttots , +.Nm tstosbt , +.Nm sbttotv , +.Nm tvtosbt +.Nd Q32.32 fixed point representation of time +.Sh SYNOPSIS +.In sys/types.h +.In sys/time.h +.Vt typedef __int64_t __sbintime_t ; +.Vt typedef __sbintime_t sbintime_t ; +.Fd #define SBT_1S ((sbintime_t)1 << 32) +.Fd #define SBT_1M (SBT_1S * 60) +.Fd #define SBT_1MS (SBT_1S / 1000) +.Fd #define SBT_1US (SBT_1S / 1000000) +.Fd #define SBT_1NS (SBT_1S / 1000000000) +.Ft int +.Fn sbintime_getsec "sbintime_t sbt" +.Ft sbintime_t +.Fn bttosbt "const struct bintime bt" +.Ft struct bintime +.Fn sbttobt "sbintime_t sbt" +.Ft int64_t +.Fn sbttons "sbintime_t sbt" +.Ft sbintime_t +.Fn nstosbt "int64_t ns" +.Ft int64_t +.Fn sbttous "sbintime_t sbt" +.Ft sbintime_t +.Fn ustosbt "int64_t us" +.Ft int64_t +.Fn sbttoms "sbintime_t sbt" +.Ft sbintime_t +.Fn mstosbt "int64_t ms" +.Ft struct timespec +.Fn sbttots "sbintime_t sbt" +.Ft sbintime_t +.Fn tstosbt "struct timespec ts" +.Ft struct timeval +.Fn sbttotv "sbintime_t sbt" +.Ft sbintime_t +.Fn tvtosbt "struct timeval tv" +.Sh DESCRIPTION +The +.Vt sbintime_t +type is a Q32.32 fixed point representation of time. +The high 32-bit integral bits specify the number of seconds, +and the low 32-bit fractional bits specify the sub-second portion. +Since the lower 32 bits are counting with a base unit of 1/2^32 seconds, +.Ql (sbintime_t)0x1 +is just under 250 picoseconds. +.Pp +All of the conversion functions are designed to do the conversion without large +truncation errors that are possible with naive math. +.\" Begin of helper functions subsection +.Bl -tag -width indent +.It Fn sbintime_getsec sbt +Return the whole number of seconds from a +.Vt sbintime_t +specified by the +.Fa sbt +argument. +.It Fn bttosbt bt +Convert a +.Vt struct bintime +specified by the +.Fa bt +argument to a +.Vt sbintime_t . +.It Fn sbttobt sbt +Convert a +.Vt sbintime_t +specified by the +.Fa sbt +argument to a +.Vt "struct bintime" . +.It Fn sbttons sbt +Convert a +.Vt sbintime_t +specified by the +.Fa sbt +argument to the number of nanoseconds. +.It Fn nstosbt ns +Convert the number of nanoseconds specified by the +.Fa ns +argument to a +.Vt sbintime_t . +.It Fn sbttous sbt +Convert a +.Vt sbintime_t +specified by the +.Fa sbt +argument to the number of microseconds. +.It Fn ustosbt us +Convert the number of microseconds specified by the +.Fa us +argument to a +.Vt sbintime_t . +.It Fn sbttoms sbt +Convert a +.Vt sbintime_t +specified by the +.Fa sbt +argument to the number of milliseconds. +.It Fn mstosbt ms +Convert the number of milliseconds specified by the +.Fa ms +argument to a +.Vt sbintime_t . +.It Fn sbttots sbt +Convert a +.Vt sbintime_t +specified by the +.Fa sbt +argument to a +.Vt "struct timespec" . +.It Fn tstosbt ts +Convert a +.Vt "struct timespec" +specified by the +.Fa ts +argument to a +.Vt sbintime_t . +.It Fn sbttotv sbt +Convert a +.Vt sbintime_t +specified by the +.Fa sbt +argument to a +.Vt "struct timeval" . +.It Fn tvtosbt tv +Convert a +.Vt "struct timeval" +specified by the +.Fa tv +argument to a +.Vt sbintime_t . +.El +.\" End of helper functions subsection +.Sh SEE ALSO +.Xr bintime 9 , +.Xr callout 9 , +.Xr tvtohz 9 +.Sh HISTORY +The +.Nm sbintime_t +type and most of the helper functions first appeared in +.Fx 10.0 . +The Xstosbt functions first appeared in +.Fx 12.0 . +.Sh AUTHORS +This manual page was written by +.An Ka Ho Ng Aq Mt khng@FreeBSD.org .