Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 119 → Rev 120

/shark/trunk/oslib/ll/i386/advtimer.h
0,0 → 1,61
/* Project: OSLib
* Description: The OS Construction Kit
* Date: 1.6.2000
* Idea by: Luca Abeni & Gerardo Lamastra
*
* OSLib is an SO project aimed at developing a common, easy-to-use
* low-level infrastructure for developing OS kernels and Embedded
* Applications; it partially derives from the HARTIK project but it
* currently is independently developed.
*
* OSLib is distributed under GPL License, and some of its code has
* been derived from the Linux kernel source; also some important
* ideas come from studying the DJGPP go32 extender.
*
* We acknowledge the Linux Community, Free Software Foundation,
* D.J. Delorie and all the other developers who believe in the
* freedom of software and ideas.
*
* For legalese, check out the included GPL license.
*/
 
/* Advanced Timer
* Date: 8.4.2003
* Author: Giacomo Guidi <giacomo@gandalf.sssup.it>
*
*/
 
#ifndef __ADVTIMER_H__
#define __ADVTIMER_H__
 
#include <ll/i386/defs.h>
BEGIN_DEF
 
/* TSC */
 
#define rdtsc(low,high) \
__asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high))
 
#define rdtscll(val) \
__asm__ __volatile__("rdtsc" : "=A" (val))
 
/* RTC */
 
#define RTC_PORT(x) (0x70 + (x))
 
#define CMOS_READ(addr,val) \
{ \
outp(RTC_PORT(0),(addr)); \
val = inp(RTC_PORT(1)); \
}
 
#define CMOS_WRITE(addr,val) \
{ \
outp(RTC_PORT(0),(addr)); \
outp(RTC_PORT(1),(val)); \
}
 
#define RTC_IRQ 8
 
END_DEF
#endif