* [PATCH] Use __kernel_long_t in struct timex
@ 2013-12-25 0:24 H.J. Lu
2013-12-26 15:35 ` H.J. Lu
0 siblings, 1 reply; 3+ messages in thread
From: H.J. Lu @ 2013-12-25 0:24 UTC (permalink / raw)
To: H. Peter Anvin, LKML
X32 adjtimex system call is the same as x86-64 adjtimex system call,
which uses 64-bit integer for long in struct timex. But x32 long is
32 bit. This patch replaces long in struct timex with __kernel_long_t.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
include/uapi/linux/timex.h | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/include/uapi/linux/timex.h b/include/uapi/linux/timex.h
index a7ea81f..92685d8 100644
--- a/include/uapi/linux/timex.h
+++ b/include/uapi/linux/timex.h
@@ -63,27 +63,27 @@
*/
struct timex {
unsigned int modes; /* mode selector */
- long offset; /* time offset (usec) */
- long freq; /* frequency offset (scaled ppm) */
- long maxerror; /* maximum error (usec) */
- long esterror; /* estimated error (usec) */
+ __kernel_long_t offset; /* time offset (usec) */
+ __kernel_long_t freq; /* frequency offset (scaled ppm) */
+ __kernel_long_t maxerror;/* maximum error (usec) */
+ __kernel_long_t esterror;/* estimated error (usec) */
int status; /* clock command/status */
- long constant; /* pll time constant */
- long precision; /* clock precision (usec) (read only) */
- long tolerance; /* clock frequency tolerance (ppm)
- * (read only)
- */
+ __kernel_long_t constant;/* pll time constant */
+ __kernel_long_t precision;/* clock precision (usec) (read only) */
+ __kernel_long_t tolerance;/* clock frequency tolerance (ppm)
+ * (read only)
+ */
struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
- long tick; /* (modified) usecs between clock ticks */
+ __kernel_long_t tick; /* (modified) usecs between clock ticks */
- long ppsfreq; /* pps frequency (scaled ppm) (ro) */
- long jitter; /* pps jitter (us) (ro) */
+ __kernel_long_t ppsfreq;/* pps frequency (scaled ppm) (ro) */
+ __kernel_long_t jitter; /* pps jitter (us) (ro) */
int shift; /* interval duration (s) (shift) (ro) */
- long stabil; /* pps stability (scaled ppm) (ro) */
- long jitcnt; /* jitter limit exceeded (ro) */
- long calcnt; /* calibration intervals (ro) */
- long errcnt; /* calibration errors (ro) */
- long stbcnt; /* stability limit exceeded (ro) */
+ __kernel_long_t stabil; /* pps stability (scaled ppm) (ro) */
+ __kernel_long_t jitcnt; /* jitter limit exceeded (ro) */
+ __kernel_long_t calcnt; /* calibration intervals (ro) */
+ __kernel_long_t errcnt; /* calibration errors (ro) */
+ __kernel_long_t stbcnt; /* stability limit exceeded (ro) */
int tai; /* TAI offset (ro) */
--
1.8.4.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] Use __kernel_long_t in struct timex
2013-12-25 0:24 [PATCH] Use __kernel_long_t in struct timex H.J. Lu
@ 2013-12-26 15:35 ` H.J. Lu
2013-12-26 15:37 ` H.J. Lu
0 siblings, 1 reply; 3+ messages in thread
From: H.J. Lu @ 2013-12-26 15:35 UTC (permalink / raw)
To: H. Peter Anvin, LKML
On Tue, Dec 24, 2013 at 04:24:58PM -0800, H.J. Lu wrote:
> X32 adjtimex system call is the same as x86-64 adjtimex system call,
> which uses 64-bit integer for long in struct timex. But x32 long is
> 32 bit. This patch replaces long in struct timex with __kernel_long_t.
>
Here is the updated patch which uses __kernel_long_t only if
__BITS_PER_LONG == 64.
H.J.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Use __kernel_long_t in struct timex
2013-12-26 15:35 ` H.J. Lu
@ 2013-12-26 15:37 ` H.J. Lu
0 siblings, 0 replies; 3+ messages in thread
From: H.J. Lu @ 2013-12-26 15:37 UTC (permalink / raw)
To: H. Peter Anvin, LKML
[-- Attachment #1: Type: text/plain, Size: 486 bytes --]
On Thu, Dec 26, 2013 at 07:35:09AM -0800, H.J. Lu wrote:
> On Tue, Dec 24, 2013 at 04:24:58PM -0800, H.J. Lu wrote:
> > X32 adjtimex system call is the same as x86-64 adjtimex system call,
> > which uses 64-bit integer for long in struct timex. But x32 long is
> > 32 bit. This patch replaces long in struct timex with __kernel_long_t.
> >
>
> Here is the updated patch which uses __kernel_long_t only if
> __BITS_PER_LONG == 64.
Forgot to include the new patch. Here it is.
H.J.
[-- Attachment #2: 0001-Use-__kernel_long_t-in-struct-timex.patch --]
[-- Type: text/plain, Size: 3419 bytes --]
>From fd1986128a354cf9fb3786b0138e7b84690d9835 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Tue, 24 Dec 2013 16:20:28 -0800
Subject: [PATCH] Use __kernel_long_t in struct timex
X32 adjtimex system call is the same as x86-64 adjtimex system call,
which uses 64-bit integer for long in struct timex. But x32 long is
32 bit. This patch replaces long in struct timex with __kernel_long_t
if __BITS_PER_LONG == 64.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
include/uapi/linux/timex.h | 46 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 38 insertions(+), 8 deletions(-)
diff --git a/include/uapi/linux/timex.h b/include/uapi/linux/timex.h
index a7ea81f..98314e9 100644
--- a/include/uapi/linux/timex.h
+++ b/include/uapi/linux/timex.h
@@ -63,28 +63,58 @@
*/
struct timex {
unsigned int modes; /* mode selector */
+#if __BITS_PER_LONG == 64
+ __kernel_long_t offset; /* time offset (usec) */
+ __kernel_long_t freq; /* frequency offset (scaled ppm) */
+ __kernel_long_t maxerror;/* maximum error (usec) */
+ __kernel_long_t esterror;/* estimated error (usec) */
+#else
long offset; /* time offset (usec) */
long freq; /* frequency offset (scaled ppm) */
long maxerror; /* maximum error (usec) */
long esterror; /* estimated error (usec) */
+#endif
int status; /* clock command/status */
+#if __BITS_PER_LONG == 64
+ __kernel_long_t constant;/* pll time constant */
+ __kernel_long_t precision;/* clock precision (usec) (read only) */
+ __kernel_long_t tolerance;/* clock frequency tolerance (ppm)
+ * (read only)
+ */
+#else
long constant; /* pll time constant */
long precision; /* clock precision (usec) (read only) */
long tolerance; /* clock frequency tolerance (ppm)
* (read only)
*/
+#endif
struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
+#if __BITS_PER_LONG == 64
+ __kernel_long_t tick; /* (modified) usecs between clock ticks */
+
+ __kernel_long_t ppsfreq;/* pps frequency (scaled ppm) (ro) */
+ __kernel_long_t jitter; /* pps jitter (us) (ro) */
+#else
long tick; /* (modified) usecs between clock ticks */
- long ppsfreq; /* pps frequency (scaled ppm) (ro) */
- long jitter; /* pps jitter (us) (ro) */
+ long ppsfreq; /* pps frequency (scaled ppm) (ro) */
+ long jitter; /* pps jitter (us) (ro) */
+#endif
int shift; /* interval duration (s) (shift) (ro) */
- long stabil; /* pps stability (scaled ppm) (ro) */
- long jitcnt; /* jitter limit exceeded (ro) */
- long calcnt; /* calibration intervals (ro) */
- long errcnt; /* calibration errors (ro) */
- long stbcnt; /* stability limit exceeded (ro) */
-
+#if __BITS_PER_LONG == 64
+ __kernel_long_t stabil; /* pps stability (scaled ppm) (ro) */
+ __kernel_long_t jitcnt; /* jitter limit exceeded (ro) */
+ __kernel_long_t calcnt; /* calibration intervals (ro) */
+ __kernel_long_t errcnt; /* calibration errors (ro) */
+ __kernel_long_t stbcnt; /* stability limit exceeded (ro) */
+
+#else
+ long stabil; /* pps stability (scaled ppm) (ro) */
+ long jitcnt; /* jitter limit exceeded (ro) */
+ long calcnt; /* calibration intervals (ro) */
+ long errcnt; /* calibration errors (ro) */
+ long stbcnt; /* stability limit exceeded (ro) */
+#endif
int tai; /* TAI offset (ro) */
int :32; int :32; int :32; int :32;
--
1.8.4.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-12-26 15:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-25 0:24 [PATCH] Use __kernel_long_t in struct timex H.J. Lu
2013-12-26 15:35 ` H.J. Lu
2013-12-26 15:37 ` H.J. Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox