this_offset = hpet_readl(HPET_T0_CMP) - hpet_tick; 
this_offset = hpet_readl(HPET_COUNTER); 
unsigned long long monotonic_clock(void){	unsigned long seq; 	u32 last_offset, this_offset, offset;	unsigned long long base;	if (vxtime.mode == VXTIME_HPET) {		do {			seq = read_seqbegin(&xtime_lock);			last_offset = vxtime.last;			base = monotonic_base;			this_offset = hpet_readl(HPET_T0_CMP) - hpet_tick;		} while (read_seqretry(&xtime_lock, seq));		offset = (this_offset - last_offset);		offset *=(NSEC_PER_SEC/HZ)/hpet_tick;		return base + offset;	}else{		do {			seq = read_seqbegin(&xtime_lock);			last_offset = vxtime.last_tsc;			base = monotonic_base;		} while (read_seqretry(&xtime_lock, seq));		sync_core();		rdtscll(this_offset);		offset = (this_offset - last_offset)*1000/cpu_khz; 		return base + offset;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a3a00751ad8970c13d0563c2e92ee68c655a8e6b/time.c/clean/arch/x86_64/kernel/time.c