* [PATCH] __ppc_get_timebase_freq.3: Document a glibc extension for Power
@ 2015-05-25 19:02 Tulio Magno Quites Machado Filho
[not found] ` <1432580532-29036-1-git-send-email-tuliom-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Tulio Magno Quites Machado Filho @ 2015-05-25 19:02 UTC (permalink / raw)
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w; +Cc: linux-man-u79uwXL29TY76Z2rM5mHXA
Glibc 2.17 provides new function to read the frequency at which the Time
Base Register of Power processors is updated.
Signed-off-by: Tulio Magno Quites Machado Filho <tuliom-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
---
man3/__ppc_get_timebase.3 | 66 ++++++++++++++++++++++++++++++++++++++----
man3/__ppc_get_timebase_freq.3 | 1 +
2 files changed, 61 insertions(+), 6 deletions(-)
create mode 100644 man3/__ppc_get_timebase_freq.3
diff --git a/man3/__ppc_get_timebase.3 b/man3/__ppc_get_timebase.3
index 6af2d43..e691a5c 100644
--- a/man3/__ppc_get_timebase.3
+++ b/man3/__ppc_get_timebase.3
@@ -25,30 +25,84 @@
.TH __PPC_GET_TIMEBASE 3 2012-08-13 "GNU C Library" "Linux Programmer's\
Manual"
.SH NAME
-__ppc_get_timebase \- get the current value of the Time Base Register on
-Power architecture
+__ppc_get_timebase, __ppc_get_timebase_freq \- get the current value
+ of the Time Base Register on Power architecture and its frequency.
.SH SYNOPSIS
.B #include <sys/platform/ppc.h>
.sp
.BI "uint64_t __ppc_get_timebase(void)"
+
+.BI "uint64_t __ppc_get_timebase_freq(void);"
.SH DESCRIPTION
.BR __ppc_get_timebase ()
-reads the current value of the Time Base Register and returns its value.
+reads the current value of the Time Base Register and returns its
+value, while
+.BR __ppc_get_timebase_freq ()
+returns the frequency in which the Time Base Register is updated.
+
The Time Base Register is a 64-bit register provided by Power Architecture
processors.
It stores a monotonically incremented value that is updated at a
system-dependent frequency that may be different from the processor
frequency.
.SH RETURN VALUE
-Returns a 64-bit unsigned integer that represents the current value of the
+.BR __ppc_get_timebase ()
+returns a 64-bit unsigned integer that represents the current value of the
Time Base Register.
+
+.BR __ppc_get_timebase_freq ()
+returns a 64-bit unsigned integer that represents the frequency at
+which the Time Base Register is updated.
.SH VERSIONS
GNU C Library support for
.\" commit d9dc34cd569bcfe714fe8c708e58c028106e8b2e
.BR __ppc_get_timebase ()
-has been provided since version 2.16.
+has been provided since version 2.16 and
+.\" commit 8ad11b9a9cf1de82bd7771306b42070b91417c11
+.BR __ppc_get_timebase_freq ()
+has been available since version 2.17.
.SH CONFORMING TO
-This function is a nonstandard GNU extension.
+Both functions are nonstandard GNU extensions.
+.SH EXAMPLE
+The following program will calculate the time, in microseconds, spent
+between two calls to __ppc_get_timebase ().
+.SS Program source
+\&
+.nf
+#include <inttypes.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <sys/platform/ppc.h>
+
+/* Maximum value of the Time Base Register: 2^60 - 1. Source: POWER ISA. */
+#define MAX_TB 0xFFFFFFFFFFFFFFF
+
+int
+main ()
+{
+ uint64_t tb1, tb2, diff;
+
+ uint64_t freq = __ppc_get_timebase_freq ();
+ printf ("Time Base frequency = %"PRIu64" Hz\\n", freq);
+
+ tb1 = __ppc_get_timebase ();
+
+ // Do some stuff...
+
+ tb2 = __ppc_get_timebase ();
+
+ if (tb2 > tb1) {
+ diff = tb2 - tb1;
+ } else {
+ /* Treat Time Base Register overflow. */
+ diff = (MAX_TB - tb2) + tb1;
+ }
+
+ printf ("Elapsed time = %1.2f usecs\\n", (double) diff * 1000000 / freq );
+
+ return 0;
+}
+.fi
.SH SEE ALSO
.BR time (2),
.BR usleep (3)
diff --git a/man3/__ppc_get_timebase_freq.3 b/man3/__ppc_get_timebase_freq.3
new file mode 100644
index 0000000..8599293
--- /dev/null
+++ b/man3/__ppc_get_timebase_freq.3
@@ -0,0 +1 @@
+.so man3/__ppc_get_timebase.3
--
2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] __ppc_get_timebase_freq.3: Document a glibc extension for Power
[not found] ` <1432580532-29036-1-git-send-email-tuliom-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
@ 2015-05-27 8:32 ` Michael Kerrisk (man-pages)
0 siblings, 0 replies; 2+ messages in thread
From: Michael Kerrisk (man-pages) @ 2015-05-27 8:32 UTC (permalink / raw)
To: Tulio Magno Quites Machado Filho
Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w,
linux-man-u79uwXL29TY76Z2rM5mHXA
Hello Tulio,
On 05/25/2015 09:02 PM, Tulio Magno Quites Machado Filho wrote:
> Glibc 2.17 provides new function to read the frequency at which the Time
> Base Register of Power processors is updated.
Thanks! Patch applied.
Cheers,
Michael
> Signed-off-by: Tulio Magno Quites Machado Filho <tuliom-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
> ---
> man3/__ppc_get_timebase.3 | 66 ++++++++++++++++++++++++++++++++++++++----
> man3/__ppc_get_timebase_freq.3 | 1 +
> 2 files changed, 61 insertions(+), 6 deletions(-)
> create mode 100644 man3/__ppc_get_timebase_freq.3
>
> diff --git a/man3/__ppc_get_timebase.3 b/man3/__ppc_get_timebase.3
> index 6af2d43..e691a5c 100644
> --- a/man3/__ppc_get_timebase.3
> +++ b/man3/__ppc_get_timebase.3
> @@ -25,30 +25,84 @@
> .TH __PPC_GET_TIMEBASE 3 2012-08-13 "GNU C Library" "Linux Programmer's\
> Manual"
> .SH NAME
> -__ppc_get_timebase \- get the current value of the Time Base Register on
> -Power architecture
> +__ppc_get_timebase, __ppc_get_timebase_freq \- get the current value
> + of the Time Base Register on Power architecture and its frequency.
> .SH SYNOPSIS
> .B #include <sys/platform/ppc.h>
> .sp
> .BI "uint64_t __ppc_get_timebase(void)"
> +
> +.BI "uint64_t __ppc_get_timebase_freq(void);"
> .SH DESCRIPTION
> .BR __ppc_get_timebase ()
> -reads the current value of the Time Base Register and returns its value.
> +reads the current value of the Time Base Register and returns its
> +value, while
> +.BR __ppc_get_timebase_freq ()
> +returns the frequency in which the Time Base Register is updated.
> +
> The Time Base Register is a 64-bit register provided by Power Architecture
> processors.
> It stores a monotonically incremented value that is updated at a
> system-dependent frequency that may be different from the processor
> frequency.
> .SH RETURN VALUE
> -Returns a 64-bit unsigned integer that represents the current value of the
> +.BR __ppc_get_timebase ()
> +returns a 64-bit unsigned integer that represents the current value of the
> Time Base Register.
> +
> +.BR __ppc_get_timebase_freq ()
> +returns a 64-bit unsigned integer that represents the frequency at
> +which the Time Base Register is updated.
> .SH VERSIONS
> GNU C Library support for
> .\" commit d9dc34cd569bcfe714fe8c708e58c028106e8b2e
> .BR __ppc_get_timebase ()
> -has been provided since version 2.16.
> +has been provided since version 2.16 and
> +.\" commit 8ad11b9a9cf1de82bd7771306b42070b91417c11
> +.BR __ppc_get_timebase_freq ()
> +has been available since version 2.17.
> .SH CONFORMING TO
> -This function is a nonstandard GNU extension.
> +Both functions are nonstandard GNU extensions.
> +.SH EXAMPLE
> +The following program will calculate the time, in microseconds, spent
> +between two calls to __ppc_get_timebase ().
> +.SS Program source
> +\&
> +.nf
> +#include <inttypes.h>
> +#include <stdint.h>
> +#include <stdio.h>
> +#include <sys/platform/ppc.h>
> +
> +/* Maximum value of the Time Base Register: 2^60 - 1. Source: POWER ISA. */
> +#define MAX_TB 0xFFFFFFFFFFFFFFF
> +
> +int
> +main ()
> +{
> + uint64_t tb1, tb2, diff;
> +
> + uint64_t freq = __ppc_get_timebase_freq ();
> + printf ("Time Base frequency = %"PRIu64" Hz\\n", freq);
> +
> + tb1 = __ppc_get_timebase ();
> +
> + // Do some stuff...
> +
> + tb2 = __ppc_get_timebase ();
> +
> + if (tb2 > tb1) {
> + diff = tb2 - tb1;
> + } else {
> + /* Treat Time Base Register overflow. */
> + diff = (MAX_TB - tb2) + tb1;
> + }
> +
> + printf ("Elapsed time = %1.2f usecs\\n", (double) diff * 1000000 / freq );
> +
> + return 0;
> +}
> +.fi
> .SH SEE ALSO
> .BR time (2),
> .BR usleep (3)
> diff --git a/man3/__ppc_get_timebase_freq.3 b/man3/__ppc_get_timebase_freq.3
> new file mode 100644
> index 0000000..8599293
> --- /dev/null
> +++ b/man3/__ppc_get_timebase_freq.3
> @@ -0,0 +1 @@
> +.so man3/__ppc_get_timebase.3
>
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-05-27 8:32 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-25 19:02 [PATCH] __ppc_get_timebase_freq.3: Document a glibc extension for Power Tulio Magno Quites Machado Filho
[not found] ` <1432580532-29036-1-git-send-email-tuliom-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2015-05-27 8:32 ` Michael Kerrisk (man-pages)
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.