public inbox for linux-man@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] add time64 copies of system calls
@ 2024-11-18 19:16 Marcin Juszkiewicz
  2024-11-18 22:51 ` Alejandro Colomar
  0 siblings, 1 reply; 8+ messages in thread
From: Marcin Juszkiewicz @ 2024-11-18 19:16 UTC (permalink / raw)
  To: Alejandro Colomar; +Cc: Marcin Juszkiewicz, linux-man

During work on y2038 problem several time related system calls got "64"
or "_time64" copies. It happened only on 32-bit architectures as there
was no problem on 64-bit ones.

Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
---
 man/man2/clock_adjtime64.2              | 1 +
 man/man2/clock_getres64.2               | 1 +
 man/man2/clock_gettime64.2              | 1 +
 man/man2/clock_nanosleep_time64.2       | 1 +
 man/man2/clock_settime64.2              | 1 +
 man/man2/futex_time64.2                 | 1 +
 man/man2/mq_timedreceive_time64.2       | 2 ++
 man/man2/mq_timedsend_time64.2          | 2 ++
 man/man2/ppoll_time64.2                 | 1 +
 man/man2/pselect6_time64.2              | 1 +
 man/man2/recvmmsg_time64.2              | 1 +
 man/man2/rt_sigtimedwait_time64.2       | 1 +
 man/man2/sched_rr_get_interval_time64.2 | 1 +
 man/man2/semtimedop_time64.2            | 1 +
 man/man2/timer_gettime64.2              | 1 +
 man/man2/timer_settime64.2              | 1 +
 man/man2/timerfd_gettime64.2            | 1 +
 man/man2/timerfd_settime64.2            | 1 +
 man/man2/utimensat_time64.2             | 1 +
 19 files changed, 21 insertions(+)
 create mode 100644 man/man2/clock_adjtime64.2
 create mode 100644 man/man2/clock_getres64.2
 create mode 100644 man/man2/clock_gettime64.2
 create mode 100644 man/man2/clock_nanosleep_time64.2
 create mode 100644 man/man2/clock_settime64.2
 create mode 100644 man/man2/futex_time64.2
 create mode 100644 man/man2/mq_timedreceive_time64.2
 create mode 100644 man/man2/mq_timedsend_time64.2
 create mode 100644 man/man2/ppoll_time64.2
 create mode 100644 man/man2/pselect6_time64.2
 create mode 100644 man/man2/recvmmsg_time64.2
 create mode 100644 man/man2/rt_sigtimedwait_time64.2
 create mode 100644 man/man2/sched_rr_get_interval_time64.2
 create mode 100644 man/man2/semtimedop_time64.2
 create mode 100644 man/man2/timer_gettime64.2
 create mode 100644 man/man2/timer_settime64.2
 create mode 100644 man/man2/timerfd_gettime64.2
 create mode 100644 man/man2/timerfd_settime64.2
 create mode 100644 man/man2/utimensat_time64.2

diff --git a/man/man2/clock_adjtime64.2 b/man/man2/clock_adjtime64.2
new file mode 100644
index 000000000..b08b9c801
--- /dev/null
+++ b/man/man2/clock_adjtime64.2
@@ -0,0 +1 @@
+.so man2/adjtimex.2
diff --git a/man/man2/clock_getres64.2 b/man/man2/clock_getres64.2
new file mode 100644
index 000000000..5a599b4b9
--- /dev/null
+++ b/man/man2/clock_getres64.2
@@ -0,0 +1 @@
+.so man2/clock_getres.2
diff --git a/man/man2/clock_gettime64.2 b/man/man2/clock_gettime64.2
new file mode 100644
index 000000000..5a599b4b9
--- /dev/null
+++ b/man/man2/clock_gettime64.2
@@ -0,0 +1 @@
+.so man2/clock_getres.2
diff --git a/man/man2/clock_nanosleep_time64.2 b/man/man2/clock_nanosleep_time64.2
new file mode 100644
index 000000000..b69e18aaa
--- /dev/null
+++ b/man/man2/clock_nanosleep_time64.2
@@ -0,0 +1 @@
+.so man2/clock_nanosleep.2
diff --git a/man/man2/clock_settime64.2 b/man/man2/clock_settime64.2
new file mode 100644
index 000000000..5a599b4b9
--- /dev/null
+++ b/man/man2/clock_settime64.2
@@ -0,0 +1 @@
+.so man2/clock_getres.2
diff --git a/man/man2/futex_time64.2 b/man/man2/futex_time64.2
new file mode 100644
index 000000000..5dbcdeae1
--- /dev/null
+++ b/man/man2/futex_time64.2
@@ -0,0 +1 @@
+.so man2/futex.2
diff --git a/man/man2/mq_timedreceive_time64.2 b/man/man2/mq_timedreceive_time64.2
new file mode 100644
index 000000000..b4184f8c2
--- /dev/null
+++ b/man/man2/mq_timedreceive_time64.2
@@ -0,0 +1,2 @@
+.so man3/mq_timedreceive.3
+.\" Because mq_timedreceive(3) is layered on a system call of the same name
diff --git a/man/man2/mq_timedsend_time64.2 b/man/man2/mq_timedsend_time64.2
new file mode 100644
index 000000000..db95863ad
--- /dev/null
+++ b/man/man2/mq_timedsend_time64.2
@@ -0,0 +1,2 @@
+.so man3/mq_timedsend.3
+.\" Because mq_timedsend(3) is layered on a system call of the same name
diff --git a/man/man2/ppoll_time64.2 b/man/man2/ppoll_time64.2
new file mode 100644
index 000000000..227cd0e47
--- /dev/null
+++ b/man/man2/ppoll_time64.2
@@ -0,0 +1 @@
+.so man2/poll.2
diff --git a/man/man2/pselect6_time64.2 b/man/man2/pselect6_time64.2
new file mode 100644
index 000000000..e17784318
--- /dev/null
+++ b/man/man2/pselect6_time64.2
@@ -0,0 +1 @@
+.so man2/select.2
diff --git a/man/man2/recvmmsg_time64.2 b/man/man2/recvmmsg_time64.2
new file mode 100644
index 000000000..8b9c14ff3
--- /dev/null
+++ b/man/man2/recvmmsg_time64.2
@@ -0,0 +1 @@
+.so man2/recvmmsg.2
diff --git a/man/man2/rt_sigtimedwait_time64.2 b/man/man2/rt_sigtimedwait_time64.2
new file mode 100644
index 000000000..ca098e5fc
--- /dev/null
+++ b/man/man2/rt_sigtimedwait_time64.2
@@ -0,0 +1 @@
+.so man2/sigtimedwait.2
diff --git a/man/man2/sched_rr_get_interval_time64.2 b/man/man2/sched_rr_get_interval_time64.2
new file mode 100644
index 000000000..27c946363
--- /dev/null
+++ b/man/man2/sched_rr_get_interval_time64.2
@@ -0,0 +1 @@
+.so man2/sched_rr_get_interval.2
diff --git a/man/man2/semtimedop_time64.2 b/man/man2/semtimedop_time64.2
new file mode 100644
index 000000000..8a4061874
--- /dev/null
+++ b/man/man2/semtimedop_time64.2
@@ -0,0 +1 @@
+.so man2/semop.2
diff --git a/man/man2/timer_gettime64.2 b/man/man2/timer_gettime64.2
new file mode 100644
index 000000000..42015ca6b
--- /dev/null
+++ b/man/man2/timer_gettime64.2
@@ -0,0 +1 @@
+.so man2/timer_settime.2
diff --git a/man/man2/timer_settime64.2 b/man/man2/timer_settime64.2
new file mode 100644
index 000000000..42015ca6b
--- /dev/null
+++ b/man/man2/timer_settime64.2
@@ -0,0 +1 @@
+.so man2/timer_settime.2
diff --git a/man/man2/timerfd_gettime64.2 b/man/man2/timerfd_gettime64.2
new file mode 100644
index 000000000..6d1294048
--- /dev/null
+++ b/man/man2/timerfd_gettime64.2
@@ -0,0 +1 @@
+.so man2/timerfd_create.2
diff --git a/man/man2/timerfd_settime64.2 b/man/man2/timerfd_settime64.2
new file mode 100644
index 000000000..6d1294048
--- /dev/null
+++ b/man/man2/timerfd_settime64.2
@@ -0,0 +1 @@
+.so man2/timerfd_create.2
diff --git a/man/man2/utimensat_time64.2 b/man/man2/utimensat_time64.2
new file mode 100644
index 000000000..a365c7b53
--- /dev/null
+++ b/man/man2/utimensat_time64.2
@@ -0,0 +1 @@
+.so man2/utimensat.2
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] add time64 copies of system calls
  2024-11-18 19:16 [PATCH] add time64 copies of system calls Marcin Juszkiewicz
@ 2024-11-18 22:51 ` Alejandro Colomar
  2024-11-19  8:23   ` Marcin Juszkiewicz
  0 siblings, 1 reply; 8+ messages in thread
From: Alejandro Colomar @ 2024-11-18 22:51 UTC (permalink / raw)
  To: Marcin Juszkiewicz; +Cc: linux-man

[-- Attachment #1: Type: text/plain, Size: 7071 bytes --]

Hi Marcin,

On Mon, Nov 18, 2024 at 08:16:24PM +0100, Marcin Juszkiewicz wrote:
> During work on y2038 problem several time related system calls got "64"
> or "_time64" copies. It happened only on 32-bit architectures as there
> was no problem on 64-bit ones.
> 
> Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>

This only adds link pages, but doesn't add any documentation for them.
Should we add anything?  Maybe to the SYNOPSIS and VERSIONS (or HISTORY)?

Cheers,
Alex

> ---
>  man/man2/clock_adjtime64.2              | 1 +
>  man/man2/clock_getres64.2               | 1 +
>  man/man2/clock_gettime64.2              | 1 +
>  man/man2/clock_nanosleep_time64.2       | 1 +
>  man/man2/clock_settime64.2              | 1 +
>  man/man2/futex_time64.2                 | 1 +
>  man/man2/mq_timedreceive_time64.2       | 2 ++
>  man/man2/mq_timedsend_time64.2          | 2 ++
>  man/man2/ppoll_time64.2                 | 1 +
>  man/man2/pselect6_time64.2              | 1 +
>  man/man2/recvmmsg_time64.2              | 1 +
>  man/man2/rt_sigtimedwait_time64.2       | 1 +
>  man/man2/sched_rr_get_interval_time64.2 | 1 +
>  man/man2/semtimedop_time64.2            | 1 +
>  man/man2/timer_gettime64.2              | 1 +
>  man/man2/timer_settime64.2              | 1 +
>  man/man2/timerfd_gettime64.2            | 1 +
>  man/man2/timerfd_settime64.2            | 1 +
>  man/man2/utimensat_time64.2             | 1 +
>  19 files changed, 21 insertions(+)
>  create mode 100644 man/man2/clock_adjtime64.2
>  create mode 100644 man/man2/clock_getres64.2
>  create mode 100644 man/man2/clock_gettime64.2
>  create mode 100644 man/man2/clock_nanosleep_time64.2
>  create mode 100644 man/man2/clock_settime64.2
>  create mode 100644 man/man2/futex_time64.2
>  create mode 100644 man/man2/mq_timedreceive_time64.2
>  create mode 100644 man/man2/mq_timedsend_time64.2
>  create mode 100644 man/man2/ppoll_time64.2
>  create mode 100644 man/man2/pselect6_time64.2
>  create mode 100644 man/man2/recvmmsg_time64.2
>  create mode 100644 man/man2/rt_sigtimedwait_time64.2
>  create mode 100644 man/man2/sched_rr_get_interval_time64.2
>  create mode 100644 man/man2/semtimedop_time64.2
>  create mode 100644 man/man2/timer_gettime64.2
>  create mode 100644 man/man2/timer_settime64.2
>  create mode 100644 man/man2/timerfd_gettime64.2
>  create mode 100644 man/man2/timerfd_settime64.2
>  create mode 100644 man/man2/utimensat_time64.2
> 
> diff --git a/man/man2/clock_adjtime64.2 b/man/man2/clock_adjtime64.2
> new file mode 100644
> index 000000000..b08b9c801
> --- /dev/null
> +++ b/man/man2/clock_adjtime64.2
> @@ -0,0 +1 @@
> +.so man2/adjtimex.2
> diff --git a/man/man2/clock_getres64.2 b/man/man2/clock_getres64.2
> new file mode 100644
> index 000000000..5a599b4b9
> --- /dev/null
> +++ b/man/man2/clock_getres64.2
> @@ -0,0 +1 @@
> +.so man2/clock_getres.2
> diff --git a/man/man2/clock_gettime64.2 b/man/man2/clock_gettime64.2
> new file mode 100644
> index 000000000..5a599b4b9
> --- /dev/null
> +++ b/man/man2/clock_gettime64.2
> @@ -0,0 +1 @@
> +.so man2/clock_getres.2
> diff --git a/man/man2/clock_nanosleep_time64.2 b/man/man2/clock_nanosleep_time64.2
> new file mode 100644
> index 000000000..b69e18aaa
> --- /dev/null
> +++ b/man/man2/clock_nanosleep_time64.2
> @@ -0,0 +1 @@
> +.so man2/clock_nanosleep.2
> diff --git a/man/man2/clock_settime64.2 b/man/man2/clock_settime64.2
> new file mode 100644
> index 000000000..5a599b4b9
> --- /dev/null
> +++ b/man/man2/clock_settime64.2
> @@ -0,0 +1 @@
> +.so man2/clock_getres.2
> diff --git a/man/man2/futex_time64.2 b/man/man2/futex_time64.2
> new file mode 100644
> index 000000000..5dbcdeae1
> --- /dev/null
> +++ b/man/man2/futex_time64.2
> @@ -0,0 +1 @@
> +.so man2/futex.2
> diff --git a/man/man2/mq_timedreceive_time64.2 b/man/man2/mq_timedreceive_time64.2
> new file mode 100644
> index 000000000..b4184f8c2
> --- /dev/null
> +++ b/man/man2/mq_timedreceive_time64.2
> @@ -0,0 +1,2 @@
> +.so man3/mq_timedreceive.3
> +.\" Because mq_timedreceive(3) is layered on a system call of the same name
> diff --git a/man/man2/mq_timedsend_time64.2 b/man/man2/mq_timedsend_time64.2
> new file mode 100644
> index 000000000..db95863ad
> --- /dev/null
> +++ b/man/man2/mq_timedsend_time64.2
> @@ -0,0 +1,2 @@
> +.so man3/mq_timedsend.3
> +.\" Because mq_timedsend(3) is layered on a system call of the same name
> diff --git a/man/man2/ppoll_time64.2 b/man/man2/ppoll_time64.2
> new file mode 100644
> index 000000000..227cd0e47
> --- /dev/null
> +++ b/man/man2/ppoll_time64.2
> @@ -0,0 +1 @@
> +.so man2/poll.2
> diff --git a/man/man2/pselect6_time64.2 b/man/man2/pselect6_time64.2
> new file mode 100644
> index 000000000..e17784318
> --- /dev/null
> +++ b/man/man2/pselect6_time64.2
> @@ -0,0 +1 @@
> +.so man2/select.2
> diff --git a/man/man2/recvmmsg_time64.2 b/man/man2/recvmmsg_time64.2
> new file mode 100644
> index 000000000..8b9c14ff3
> --- /dev/null
> +++ b/man/man2/recvmmsg_time64.2
> @@ -0,0 +1 @@
> +.so man2/recvmmsg.2
> diff --git a/man/man2/rt_sigtimedwait_time64.2 b/man/man2/rt_sigtimedwait_time64.2
> new file mode 100644
> index 000000000..ca098e5fc
> --- /dev/null
> +++ b/man/man2/rt_sigtimedwait_time64.2
> @@ -0,0 +1 @@
> +.so man2/sigtimedwait.2
> diff --git a/man/man2/sched_rr_get_interval_time64.2 b/man/man2/sched_rr_get_interval_time64.2
> new file mode 100644
> index 000000000..27c946363
> --- /dev/null
> +++ b/man/man2/sched_rr_get_interval_time64.2
> @@ -0,0 +1 @@
> +.so man2/sched_rr_get_interval.2
> diff --git a/man/man2/semtimedop_time64.2 b/man/man2/semtimedop_time64.2
> new file mode 100644
> index 000000000..8a4061874
> --- /dev/null
> +++ b/man/man2/semtimedop_time64.2
> @@ -0,0 +1 @@
> +.so man2/semop.2
> diff --git a/man/man2/timer_gettime64.2 b/man/man2/timer_gettime64.2
> new file mode 100644
> index 000000000..42015ca6b
> --- /dev/null
> +++ b/man/man2/timer_gettime64.2
> @@ -0,0 +1 @@
> +.so man2/timer_settime.2
> diff --git a/man/man2/timer_settime64.2 b/man/man2/timer_settime64.2
> new file mode 100644
> index 000000000..42015ca6b
> --- /dev/null
> +++ b/man/man2/timer_settime64.2
> @@ -0,0 +1 @@
> +.so man2/timer_settime.2
> diff --git a/man/man2/timerfd_gettime64.2 b/man/man2/timerfd_gettime64.2
> new file mode 100644
> index 000000000..6d1294048
> --- /dev/null
> +++ b/man/man2/timerfd_gettime64.2
> @@ -0,0 +1 @@
> +.so man2/timerfd_create.2
> diff --git a/man/man2/timerfd_settime64.2 b/man/man2/timerfd_settime64.2
> new file mode 100644
> index 000000000..6d1294048
> --- /dev/null
> +++ b/man/man2/timerfd_settime64.2
> @@ -0,0 +1 @@
> +.so man2/timerfd_create.2
> diff --git a/man/man2/utimensat_time64.2 b/man/man2/utimensat_time64.2
> new file mode 100644
> index 000000000..a365c7b53
> --- /dev/null
> +++ b/man/man2/utimensat_time64.2
> @@ -0,0 +1 @@
> +.so man2/utimensat.2
> -- 
> 2.47.0
> 

-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] add time64 copies of system calls
  2024-11-18 22:51 ` Alejandro Colomar
@ 2024-11-19  8:23   ` Marcin Juszkiewicz
  2024-11-20 22:40     ` Carlos O'Donell
  0 siblings, 1 reply; 8+ messages in thread
From: Marcin Juszkiewicz @ 2024-11-19  8:23 UTC (permalink / raw)
  To: Alejandro Colomar; +Cc: linux-man

W dniu 18.11.2024 o 23:51, Alejandro Colomar pisze:
> Hi Marcin,
> 
> On Mon, Nov 18, 2024 at 08:16:24PM +0100, Marcin Juszkiewicz wrote:
>> During work on y2038 problem several time related system calls got "64"
>> or "_time64" copies. It happened only on 32-bit architectures as there
>> was no problem on 64-bit ones.
>>
>> Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
> 
> This only adds link pages, but doesn't add any documentation for them.
> Should we add anything?  Maybe to the SYNOPSIS and VERSIONS (or HISTORY)?

Will look into it.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] add time64 copies of system calls
  2024-11-19  8:23   ` Marcin Juszkiewicz
@ 2024-11-20 22:40     ` Carlos O'Donell
  2025-02-26 14:48       ` Marcin Juszkiewicz
  0 siblings, 1 reply; 8+ messages in thread
From: Carlos O'Donell @ 2024-11-20 22:40 UTC (permalink / raw)
  To: Marcin Juszkiewicz, Alejandro Colomar; +Cc: linux-man

On 11/19/24 3:23 AM, Marcin Juszkiewicz wrote:
> W dniu 18.11.2024 o 23:51, Alejandro Colomar pisze:
>> Hi Marcin,
>>
>> On Mon, Nov 18, 2024 at 08:16:24PM +0100, Marcin Juszkiewicz wrote:
>>> During work on y2038 problem several time related system calls got "64"
>>> or "_time64" copies. It happened only on 32-bit architectures as there
>>> was no problem on 64-bit ones.
>>>
>>> Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
>>
>> This only adds link pages, but doesn't add any documentation for them.
>> Should we add anything?  Maybe to the SYNOPSIS and VERSIONS (or HISTORY)?
> 
> Will look into it.
 
We absolutely can and should add documentation for the kernel syscalls since they are
unique syscalls that take 64-bit time_t variants for a 32-bit userspace.

These syscalls are the 64-bit time_t variants to allow userspace to build 32-bit targets
that have 64-bit time_t e.g. alternate ABI i686 with 64-bit time_t.

The userspace interfaces are hidden behind a 64-bit time_t though and shouldn't change
(though the ABI changes).

-- 
Cheers,
Carlos.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] add time64 copies of system calls
  2024-11-20 22:40     ` Carlos O'Donell
@ 2025-02-26 14:48       ` Marcin Juszkiewicz
  2025-02-26 15:23         ` Alejandro Colomar
  0 siblings, 1 reply; 8+ messages in thread
From: Marcin Juszkiewicz @ 2025-02-26 14:48 UTC (permalink / raw)
  To: Carlos O'Donell, Alejandro Colomar; +Cc: linux-man

W dniu 20.11.2024 o 23:40, Carlos O'Donell pisze:
> On 11/19/24 3:23 AM, Marcin Juszkiewicz wrote:
>> W dniu 18.11.2024 o 23:51, Alejandro Colomar pisze:
>>> Hi Marcin,
>>>
>>> On Mon, Nov 18, 2024 at 08:16:24PM +0100, Marcin Juszkiewicz wrote:
>>>> During work on y2038 problem several time related system calls got "64"
>>>> or "_time64" copies. It happened only on 32-bit architectures as there
>>>> was no problem on 64-bit ones.
>>>>
>>>> Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
>>>
>>> This only adds link pages, but doesn't add any documentation for them.
>>> Should we add anything?  Maybe to the SYNOPSIS and VERSIONS (or HISTORY)?
>>
>> Will look into it.
>   
> We absolutely can and should add documentation for the kernel syscalls since they are
> unique syscalls that take 64-bit time_t variants for a 32-bit userspace.
> 
> These syscalls are the 64-bit time_t variants to allow userspace to build 32-bit targets
> that have 64-bit time_t e.g. alternate ABI i686 with 64-bit time_t.
> 
> The userspace interfaces are hidden behind a 64-bit time_t though and shouldn't change
> (though the ABI changes).

I started looking at it - wondering how much info should be there. 
Simple like patch below or more complex one?


troff is awful...


diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2
index 7a87ac654..6dde493aa 100644
--- a/man/man2/adjtimex.2
+++ b/man/man2/adjtimex.2
@@ -10,7 +10,7 @@
  .\"
  .TH adjtimex 2 (date) "Linux man-pages (unreleased)"
  .SH NAME
-adjtimex, clock_adjtime, ntp_adjtime \- tune kernel clock
+adjtimex, clock_adjtime, clock_adjtime64, ntp_adjtime \- tune kernel clock
  .SH LIBRARY
  Standard C library
  .RI ( libc ,\~ \-lc )
@@ -22,6 +22,8 @@ .SH SYNOPSIS
  .P
  .BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" );
  .P
+.BI "int clock_adjtime64(clockid_t " clk_id, " struct timex *" "buf" );
+.P
  .BI "int ntp_adjtime(struct timex *" buf );
  .fi
  .SH DESCRIPTION
@@ -557,6 +559,10 @@ .SH STANDARDS
  .P
  The preferred API for the NTP daemon is
  .BR ntp_adjtime ().
+.SH HISTORY
+Linux 5.1 added
+.BR clock_adjtime64()
+call on 32-bit architectures as part of handling Y2038 problem.
  .SH NOTES
  In struct
  .IR timex ,

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] add time64 copies of system calls
  2025-02-26 14:48       ` Marcin Juszkiewicz
@ 2025-02-26 15:23         ` Alejandro Colomar
  2025-02-27  9:52           ` Marcin Juszkiewicz
  0 siblings, 1 reply; 8+ messages in thread
From: Alejandro Colomar @ 2025-02-26 15:23 UTC (permalink / raw)
  To: Marcin Juszkiewicz; +Cc: Carlos O'Donell, linux-man

[-- Attachment #1: Type: text/plain, Size: 2437 bytes --]

Hi Marcin,

On Wed, Feb 26, 2025 at 03:48:19PM +0100, Marcin Juszkiewicz wrote:
> > We absolutely can and should add documentation for the kernel syscalls since they are
> > unique syscalls that take 64-bit time_t variants for a 32-bit userspace.
> > 
> > These syscalls are the 64-bit time_t variants to allow userspace to build 32-bit targets
> > that have 64-bit time_t e.g. alternate ABI i686 with 64-bit time_t.
> > 
> > The userspace interfaces are hidden behind a 64-bit time_t though and shouldn't change
> > (though the ABI changes).
> 
> I started looking at it - wondering how much info should be there. Simple
> like patch below or more complex one?
> 
> troff is awful...

:-)

> diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2
> index 7a87ac654..6dde493aa 100644
> --- a/man/man2/adjtimex.2
> +++ b/man/man2/adjtimex.2
> @@ -10,7 +10,7 @@
>  .\"
>  .TH adjtimex 2 (date) "Linux man-pages (unreleased)"
>  .SH NAME
> -adjtimex, clock_adjtime, ntp_adjtime \- tune kernel clock
> +adjtimex, clock_adjtime, clock_adjtime64, ntp_adjtime \- tune kernel clock
>  .SH LIBRARY
>  Standard C library
>  .RI ( libc ,\~ \-lc )
> @@ -22,6 +22,8 @@ .SH SYNOPSIS
>  .P
>  .BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" );
>  .P
> +.BI "int clock_adjtime64(clockid_t " clk_id, " struct timex *" "buf" );
> +.P

I'd move it to the bottom of the SYNOPSYS, and add a comment above
saying it's only available on 32-bit systems (if there are exact macros
that define those platforms, it would be interesting to use that):

	// Only in 32-bit systems:
	...;

or

	#if (...)
	...;
	#endif

>  .BI "int ntp_adjtime(struct timex *" buf );
>  .fi
>  .SH DESCRIPTION
> @@ -557,6 +559,10 @@ .SH STANDARDS
>  .P
>  The preferred API for the NTP daemon is
>  .BR ntp_adjtime ().
> +.SH HISTORY
> +Linux 5.1 added
> +.BR clock_adjtime64()
> +call on 32-bit architectures as part of handling Y2038 problem.

For a start, this should be enough.  We can later add some more details
if needed.  I also don't want to waste much space in the manual pages
about these.  Maybe we could have a generic description for xxx64() APIs
elsewhere, which clarifies what all of these are.  Maybe a new Y2038(7)
manual page would be a good place for that.


Have a lovely day!
Alex

>  .SH NOTES
>  In struct
>  .IR timex ,

-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] add time64 copies of system calls
  2025-02-26 15:23         ` Alejandro Colomar
@ 2025-02-27  9:52           ` Marcin Juszkiewicz
  2025-02-27 10:53             ` Alejandro Colomar
  0 siblings, 1 reply; 8+ messages in thread
From: Marcin Juszkiewicz @ 2025-02-27  9:52 UTC (permalink / raw)
  To: Alejandro Colomar; +Cc: Carlos O'Donell, linux-man

W dniu 26.02.2025 o 16:23, Alejandro Colomar pisze:
> On Wed, Feb 26, 2025 at 03:48:19PM +0100, Marcin Juszkiewicz wrote:

>> diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2
>> index 7a87ac654..6dde493aa 100644
>> --- a/man/man2/adjtimex.2
>> +++ b/man/man2/adjtimex.2
>> @@ -10,7 +10,7 @@
>>   .\"
>>   .TH adjtimex 2 (date) "Linux man-pages (unreleased)"
>>   .SH NAME
>> -adjtimex, clock_adjtime, ntp_adjtime \- tune kernel clock
>> +adjtimex, clock_adjtime, clock_adjtime64, ntp_adjtime \- tune kernel clock
>>   .SH LIBRARY
>>   Standard C library
>>   .RI ( libc ,\~ \-lc )
>> @@ -22,6 +22,8 @@ .SH SYNOPSIS
>>   .P
>>   .BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" );
>>   .P
>> +.BI "int clock_adjtime64(clockid_t " clk_id, " struct timex *" "buf" );
>> +.P
> 
> I'd move it to the bottom of the SYNOPSYS, and add a comment above
> saying it's only available on 32-bit systems (if there are exact macros
> that define those platforms, it would be interesting to use that):

It is on all 32-bit architectures supported by Linux 5.1+ so probably 
there is no point in listing them in man page.

Now they are: arm/armoabi, i386, powerpc, s390, arc, csky, hexagon, 
m68k, microblaze, mips64n32/mipso32, nios2, openrisc, parisc, riscv32, 
sh, sparc and xtensa.

https://gpages.juszkiewicz.com.pl/syscalls-table/syscalls.html shows all 
system calls and allows to disable/reorder columns. Everything from 
'avr32' to the right is no longer present in Linux kernel.

> 	// Only in 32-bit systems:
> 	...;
> 
> or
> 
> 	#if (...)
> 	...;
> 	#endif
> 
>>   .BI "int ntp_adjtime(struct timex *" buf );
>>   .fi
>>   .SH DESCRIPTION
>> @@ -557,6 +559,10 @@ .SH STANDARDS
>>   .P
>>   The preferred API for the NTP daemon is
>>   .BR ntp_adjtime ().
>> +.SH HISTORY
>> +Linux 5.1 added
>> +.BR clock_adjtime64()
>> +call on 32-bit architectures as part of handling Y2038 problem.
> 
> For a start, this should be enough.  We can later add some more details
> if needed.  I also don't want to waste much space in the manual pages
> about these.  Maybe we could have a generic description for xxx64() APIs
> elsewhere, which clarifies what all of these are. 

Thanks.

 > Maybe a new Y2038(7) manual page would be a good place for that.

Good idea.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] add time64 copies of system calls
  2025-02-27  9:52           ` Marcin Juszkiewicz
@ 2025-02-27 10:53             ` Alejandro Colomar
  0 siblings, 0 replies; 8+ messages in thread
From: Alejandro Colomar @ 2025-02-27 10:53 UTC (permalink / raw)
  To: Marcin Juszkiewicz; +Cc: Carlos O'Donell, linux-man

[-- Attachment #1: Type: text/plain, Size: 2801 bytes --]

Hi Marcin,

On Thu, Feb 27, 2025 at 10:52:16AM +0100, Marcin Juszkiewicz wrote:
> W dniu 26.02.2025 o 16:23, Alejandro Colomar pisze:
> > On Wed, Feb 26, 2025 at 03:48:19PM +0100, Marcin Juszkiewicz wrote:
> 
> > > diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2
> > > index 7a87ac654..6dde493aa 100644
> > > --- a/man/man2/adjtimex.2
> > > +++ b/man/man2/adjtimex.2
> > > @@ -10,7 +10,7 @@
> > >   .\"
> > >   .TH adjtimex 2 (date) "Linux man-pages (unreleased)"
> > >   .SH NAME
> > > -adjtimex, clock_adjtime, ntp_adjtime \- tune kernel clock
> > > +adjtimex, clock_adjtime, clock_adjtime64, ntp_adjtime \- tune kernel clock
> > >   .SH LIBRARY
> > >   Standard C library
> > >   .RI ( libc ,\~ \-lc )
> > > @@ -22,6 +22,8 @@ .SH SYNOPSIS
> > >   .P
> > >   .BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" );
> > >   .P
> > > +.BI "int clock_adjtime64(clockid_t " clk_id, " struct timex *" "buf" );
> > > +.P
> > 
> > I'd move it to the bottom of the SYNOPSYS, and add a comment above
> > saying it's only available on 32-bit systems (if there are exact macros
> > that define those platforms, it would be interesting to use that):
> 
> It is on all 32-bit architectures supported by Linux 5.1+ so probably there
> is no point in listing them in man page.

Can we use something like #if (PLATFORM_BITS == 32)?  I guess there's
some macro that will determine that a platform is 32-bit, right?

> Now they are: arm/armoabi, i386, powerpc, s390, arc, csky, hexagon, m68k,
> microblaze, mips64n32/mipso32, nios2, openrisc, parisc, riscv32, sh, sparc
> and xtensa.
> 
> https://gpages.juszkiewicz.com.pl/syscalls-table/syscalls.html shows all
> system calls and allows to disable/reorder columns. Everything from 'avr32'
> to the right is no longer present in Linux kernel.
> 
> > 	// Only in 32-bit systems:
> > 	...;
> > 
> > or
> > 
> > 	#if (...)
> > 	...;
> > 	#endif
> > 
> > >   .BI "int ntp_adjtime(struct timex *" buf );
> > >   .fi
> > >   .SH DESCRIPTION
> > > @@ -557,6 +559,10 @@ .SH STANDARDS
> > >   .P
> > >   The preferred API for the NTP daemon is
> > >   .BR ntp_adjtime ().
> > > +.SH HISTORY
> > > +Linux 5.1 added
> > > +.BR clock_adjtime64()
> > > +call on 32-bit architectures as part of handling Y2038 problem.
> > 
> > For a start, this should be enough.  We can later add some more details
> > if needed.  I also don't want to waste much space in the manual pages
> > about these.  Maybe we could have a generic description for xxx64() APIs
> > elsewhere, which clarifies what all of these are.
> 
> Thanks.
> 
> > Maybe a new Y2038(7) manual page would be a good place for that.
> 
> Good idea.

:)

Have a lovely day!
Alex

-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-02-27 10:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-18 19:16 [PATCH] add time64 copies of system calls Marcin Juszkiewicz
2024-11-18 22:51 ` Alejandro Colomar
2024-11-19  8:23   ` Marcin Juszkiewicz
2024-11-20 22:40     ` Carlos O'Donell
2025-02-26 14:48       ` Marcin Juszkiewicz
2025-02-26 15:23         ` Alejandro Colomar
2025-02-27  9:52           ` Marcin Juszkiewicz
2025-02-27 10:53             ` Alejandro Colomar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox