00001 #ifndef _MVME_FAST_TICKER_LIB_H
00002 #define _MVME_FAST_TICKER_LIB_H
00003
00004 #include <vxWorks.h>
00005
00006 #include <MVME/ppcIOLib.h>
00007
00008 #define MVME_FAST_TICKER_DIV ((UINT32 *)0xfc0010f0)
00009 #define MVME_FAST_TICKER_LOAD ((UINT32 *)0xfc001110)
00010 #define MVME_FAST_TICKER_READ ((UINT32 *)0xfc001100)
00011 #define MVME_FAST_TICKER_VECTOR ((UINT32 *)0xfc001120)
00012 #define MVME_FAST_TICKER_DEST ((UINT32 *)0xfc001130)
00013
00014 extern void mvmeFastTickerInit(void) ;
00015 extern UINT32 mvmeFastTickerGet(void) ;
00016
00017 extern inline volatile unsigned int mvmeFastTickerMark(void)
00018 {
00019 return rs32(MVME_FAST_TICKER_READ) & 0x7FFFFFFF ;
00020 }
00021
00022
00023 extern inline volatile unsigned int mvmeFastTickerDelta(unsigned int old)
00024 {
00025 volatile unsigned int cur = rs32(MVME_FAST_TICKER_READ) & 0x7FFFFFFF ;
00026 u_int ret ;
00027
00028 if(old >= cur) ret = (old-cur) ;
00029 else ret = (((unsigned int)0x7FFFFFFF-cur)+old) ;
00030
00031 return (ret*4 + 17)/33 ;
00032 }
00033
00034
00035
00036 #endif