Module: xenomai-head
Branch: master
Commit: e37dec4af1e3312bbcbd5fa4acabd260aba6f8ff
URL:    
http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=e37dec4af1e3312bbcbd5fa4acabd260aba6f8ff

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Tue Jun 21 22:37:53 2011 +0200

arm tsc: fix direct usage in external programs

---

 configure                    |   26 +++++++++++++-------------
 configure.in                 |   24 ++++++++++++------------
 include/asm-arm/bits/bind.h  |   18 +++++++++---------
 include/asm-arm/syscall.h    |   28 +++++++++++++---------------
 src/include/xeno_config.h.in |    6 +++---
 5 files changed, 50 insertions(+), 52 deletions(-)

diff --git a/configure b/configure
index 9c85780..a56e0ea 100755
--- a/configure
+++ b/configure
@@ -11702,36 +11702,36 @@ if test $XENO_TARGET_ARCH = arm ; then
 
   unset CONFIG_XENO_ARM_SA1100
   unset CONFIG_XENO_CPU_XSC3
-  XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER
+  CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM tsc type" >&5
 $as_echo_n "checking for ARM tsc type... " >&6; }
   # Check whether --enable-arm-tsc was given.
 if test "${enable_arm_tsc+set}" = set; then :
   enableval=$enable_arm_tsc; case "$enableval" in
-       at91*)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_FAST_WRAP;;
+       at91*)      
CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_FAST_WRAP;;
 
        integrator) unset tsc_type;;
 
-       ixp4xx)     XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+       ixp4xx)     CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       imx*|mx*)           XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+       imx*|mx*)   CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       kuser)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER;;
+       kuser)      CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER;;
 
-       omap*)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+       omap*)      CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       orion)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_COUNTDOWN;;
+       orion)      
CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_COUNTDOWN;;
 
        pxa*)       CONFIG_XENO_CPU_XSC3=y
-                   XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+                   CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       s3c24*)     XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_DECREMENTER;;
+       s3c24*)     CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_DECREMENTER;;
 
        sa1100)     CONFIG_XENO_ARM_SA1100=y
-                   XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+                   CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       n | no)     unset XNARCH_ARM_TSC_TYPE;;
+       n | no)     unset CONFIG_XENO_ARM_TSC_TYPE;;
 
        *)as_fn_error $? "Invalid SOC selected: \"$enableval\"" "$LINENO" 5 ;;
        esac
@@ -12276,9 +12276,9 @@ $as_echo "#define CONFIG_XENO_ARM_SA1100 1" >>confdefs.h
 test x$CONFIG_XENO_CPU_XSC3 = xy &&
 $as_echo "#define CONFIG_XENO_CPU_XSC3 1" >>confdefs.h
 
-test $XNARCH_ARM_TSC_TYPE &&
+test $CONFIG_XENO_ARM_TSC_TYPE &&
 cat >>confdefs.h <<_ACEOF
-#define XNARCH_ARM_TSC_TYPE $XNARCH_ARM_TSC_TYPE
+#define CONFIG_XENO_ARM_TSC_TYPE $CONFIG_XENO_ARM_TSC_TYPE
 _ACEOF
 
  if test "$enable_shared" = 'yes'; then
diff --git a/configure.in b/configure.in
index 9b3d051..650f2e9 100644
--- a/configure.in
+++ b/configure.in
@@ -191,7 +191,7 @@ if test $XENO_TARGET_ARCH = arm ; then
 
   unset CONFIG_XENO_ARM_SA1100
   unset CONFIG_XENO_CPU_XSC3
-  XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER
+  CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER
 
   AC_MSG_CHECKING(for ARM tsc type)
   AC_ARG_ENABLE(arm-tsc,
@@ -199,29 +199,29 @@ if test $XENO_TARGET_ARCH = arm ; then
 compiling. Valid machines are at91, kuser, imx, ixp4xx, omap, orion, pxa,
   s3c24x, sa1100.]),
        [case "$enableval" in
-       at91*)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_FAST_WRAP;;
+       at91*)      
CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_FAST_WRAP;;
 
        integrator) unset tsc_type;;
 
-       ixp4xx)     XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+       ixp4xx)     CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       imx*|mx*)           XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+       imx*|mx*)   CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       kuser)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER;;
+       kuser)      CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_KUSER;;
 
-       omap*)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+       omap*)      CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       orion)      XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_COUNTDOWN;;
+       orion)      
CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING_COUNTDOWN;;
 
        pxa*)       CONFIG_XENO_CPU_XSC3=y
-                   XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+                   CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       s3c24*)     XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_DECREMENTER;;
+       s3c24*)     CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_DECREMENTER;;
 
        sa1100)     CONFIG_XENO_ARM_SA1100=y
-                   XNARCH_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
+                   CONFIG_XENO_ARM_TSC_TYPE=__XN_TSC_TYPE_FREERUNNING;;
 
-       n | no)     unset XNARCH_ARM_TSC_TYPE;;
+       n | no)     unset CONFIG_XENO_ARM_TSC_TYPE;;
 
        *)AC_MSG_ERROR([Invalid SOC selected: "$enableval"]);;
        esac])
@@ -362,7 +362,7 @@ test x$CONFIG_X86_TSC = xy && 
AC_DEFINE(CONFIG_X86_TSC,1,[config])
 
 test x$CONFIG_XENO_ARM_SA1100 = xy && 
AC_DEFINE(CONFIG_XENO_ARM_SA1100,1,[config])
 test x$CONFIG_XENO_CPU_XSC3 = xy && AC_DEFINE(CONFIG_XENO_CPU_XSC3,1,[config])
-test $XNARCH_ARM_TSC_TYPE && 
AC_DEFINE_UNQUOTED(XNARCH_ARM_TSC_TYPE,$XNARCH_ARM_TSC_TYPE,[config])
+test $CONFIG_XENO_ARM_TSC_TYPE && 
AC_DEFINE_UNQUOTED(CONFIG_XENO_ARM_TSC_TYPE,$CONFIG_XENO_ARM_TSC_TYPE,[config])
 AM_CONDITIONAL(CONFIG_XENO_SHARED,[test "$enable_shared" = 'yes'])
 
 # Default sampling period (ns) used in various tests
diff --git a/include/asm-arm/bits/bind.h b/include/asm-arm/bits/bind.h
index c55af63..78f0f68 100644
--- a/include/asm-arm/bits/bind.h
+++ b/include/asm-arm/bits/bind.h
@@ -19,7 +19,7 @@ __attribute__((weak)) struct __xn_tscinfo __xn_tscinfo = {
 
 static inline void xeno_arm_features_check(struct xnfeatinfo *finfo)
 {
-#ifdef XNARCH_ARM_TSC_TYPE
+#ifdef CONFIG_XENO_ARM_TSC_TYPE
        unsigned long phys_addr;
        unsigned page_size;
        int err, fd;
@@ -42,19 +42,19 @@ static inline void xeno_arm_features_check(struct 
xnfeatinfo *finfo)
        page_size = sysconf(_SC_PAGESIZE);
 
        switch(__xn_tscinfo.type) {
-#if XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_KUSER
+#if CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_KUSER
        case __XN_TSC_TYPE_FREERUNNING:
        case __XN_TSC_TYPE_FREERUNNING_COUNTDOWN:
        case __XN_TSC_TYPE_FREERUNNING_FAST_WRAP:
        case __XN_TSC_TYPE_DECREMENTER:
                goto domap;
 
-#elif XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING                 \
-       || XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_COUNTDOWN   \
-       || XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_FAST_WRAP
+#elif CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING            \
+       || CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_COUNTDOWN \
+       || CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_FAST_WRAP
        case __XN_TSC_TYPE_FREERUNNING:
        case __XN_TSC_TYPE_FREERUNNING_COUNTDOWN:
-#if XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_FAST_WRAP
+#if CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_FAST_WRAP
                if (__xn_tscinfo.mask >= ((1 << 28) - 1)) {
                        fprintf(stderr, "Hardware tsc is not a fast wrapping"
                                " one, select the correct platform, or fix\n"
@@ -64,11 +64,11 @@ static inline void xeno_arm_features_check(struct 
xnfeatinfo *finfo)
 #endif /* __XN_TSC_TYPE_FREERUNNING_FAST_WRAP */
                goto domap;
 
-#elif XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER
+#elif CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER
        case __XN_TSC_TYPE_DECREMENTER:
                goto domap;
 
-#endif /* XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER */
+#endif /* CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER */
        case __XN_TSC_TYPE_NONE:
          error:
                fprintf(stderr, "Xenomai: Your board/configuration does not"
@@ -100,7 +100,7 @@ static inline void xeno_arm_features_check(struct 
xnfeatinfo *finfo)
                perror("Xenomai init: close(/dev/mem)");
                exit(EXIT_FAILURE);
        }
-#endif /* XNARCH_ARM_TSC_TYPE */
+#endif /* CONFIG_XENO_ARM_TSC_TYPE */
 }
 #define xeno_arch_features_check(finfo) xeno_arm_features_check(finfo)
 
diff --git a/include/asm-arm/syscall.h b/include/asm-arm/syscall.h
index edc63e0..2f45dda 100644
--- a/include/asm-arm/syscall.h
+++ b/include/asm-arm/syscall.h
@@ -220,9 +220,9 @@ static inline int __xn_interrupted_p(struct pt_regs *regs)
 #define XENOMAI_SKINCALL5(id,op,a1,a2,a3,a4,a5)                \
        XENOMAI_DO_SYSCALL(5,id,op,a1,a2,a3,a4,a5)
 
-#ifdef XNARCH_ARM_TSC_TYPE
+#ifdef CONFIG_XENO_ARM_TSC_TYPE
 #define XNARCH_HAVE_NONPRIV_TSC  1
-#endif /* XNARCH_ARM_TSC_TYPE */
+#endif /* CONFIG_XENO_ARM_TSC_TYPE */
 
 #endif /* __KERNEL__ */
 
@@ -240,23 +240,21 @@ struct __xn_tscinfo {
        volatile unsigned long long *tsc;
 };
 
-#define _stringify(x) #x
-#define stringify(x) _stringify(x)
-
-
 #ifndef __KERNEL__
 extern struct __xn_tscinfo __xn_tscinfo;
 
-#ifdef XNARCH_ARM_TSC_TYPE
+#ifdef CONFIG_XENO_ARM_TSC_TYPE
 static inline unsigned long long __xn_rdtsc(void)
 {
-#if XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_KUSER
+#if CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_KUSER
        typedef unsigned long long rdtsc_t(volatile unsigned *vaddr);
        rdtsc_t *const kuser_tsc_get =
-               (void *)(0xffff1004 - ((*(unsigned *)(0xffff0ffc) + 3) << 5));
+               (rdtsc_t *)(0xffff1004 -
+                           ((*(unsigned *)(0xffff0ffc) + 3) << 5));
+
        return kuser_tsc_get(__xn_tscinfo.counter);
 
-#elif XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING
+#elif CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING
        volatile unsigned long long *const tscp = __xn_tscinfo.tsc;
        volatile unsigned *const counterp = __xn_tscinfo.counter;
        const unsigned mask = __xn_tscinfo.mask;
@@ -271,7 +269,7 @@ static inline unsigned long long __xn_rdtsc(void)
                result += mask + 1ULL;
        return (result & ~((unsigned long long) mask)) | (counter & mask);
 
-#elif XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_COUNTDOWN
+#elif CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_COUNTDOWN
        volatile unsigned long long *const tscp = __xn_tscinfo.tsc;
        volatile unsigned *const counterp = __xn_tscinfo.counter;
        const unsigned mask = __xn_tscinfo.mask;
@@ -286,7 +284,7 @@ static inline unsigned long long __xn_rdtsc(void)
                result += mask + 1ULL;
        return (result & ~((unsigned long long) mask)) | (counter & mask);
 
-#elif XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_FAST_WRAP
+#elif CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_FREERUNNING_FAST_WRAP
        volatile unsigned long long *const tscp = __xn_tscinfo.tsc;
        volatile unsigned *const counterp = __xn_tscinfo.counter;
        const unsigned mask = __xn_tscinfo.mask;
@@ -304,7 +302,7 @@ static inline unsigned long long __xn_rdtsc(void)
                before += mask + 1;
        return (before & ~((unsigned long long) mask)) | (counter & mask);
 
-#elif XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER
+#elif CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER
        volatile unsigned long long *const tscp = __xn_tscinfo.tsc;
        volatile unsigned *const counterp = __xn_tscinfo.counter;
        volatile unsigned *const last_cntp = __xn_tscinfo.last_cnt;
@@ -328,9 +326,9 @@ static inline unsigned long long __xn_rdtsc(void)
                before += mask + 1ULL;
        return (before + last_cnt - counter);
 
-#endif /* XNARCH_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER */
+#endif /* CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_DECREMENTER */
 }
-#endif /* XNARCH_ARM_TSC_TYPE */
+#endif /* CONFIG_XENO_ARM_TSC_TYPE */
 
 #endif /* !__KERNEL__ */
 
diff --git a/src/include/xeno_config.h.in b/src/include/xeno_config.h.in
index d9e2887..738d131 100644
--- a/src/include/xeno_config.h.in
+++ b/src/include/xeno_config.h.in
@@ -12,6 +12,9 @@
 /* config */
 #undef CONFIG_XENO_ARM_SA1100
 
+/* config */
+#undef CONFIG_XENO_ARM_TSC_TYPE
+
 /* Build system alias */
 #undef CONFIG_XENO_BUILD_STRING
 
@@ -150,9 +153,6 @@
 /* Version number of package */
 #undef VERSION
 
-/* config */
-#undef XNARCH_ARM_TSC_TYPE
-
 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
    `char[]'. */
 #undef YYTEXT_POINTER


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to