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