* [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