您的位置:首页 > 其它

直接从CMOS读取系统时间

2009-05-25 21:41 162 查看




直接从CMOS读取系统时间收藏

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}
following code come from Linux Kernel 0.01

#define CMOS_READ(addr) ({ /

outb_p(0x80|addr,0x70); /

inb_p(0x71); /

})

#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)

static void time_init(void)

{

struct tm time;

do {

time.tm_sec = CMOS_READ(0);

time.tm_min = CMOS_READ(2);

time.tm_hour = CMOS_READ(4);

time.tm_mday = CMOS_READ(7);

time.tm_mon = CMOS_READ(8)-1;

time.tm_year = CMOS_READ(9);

} while (time.tm_sec != CMOS_READ(0));

BCD_TO_BIN(time.tm_sec);

BCD_TO_BIN(time.tm_min);

BCD_TO_BIN(time.tm_hour);

BCD_TO_BIN(time.tm_mday);

BCD_TO_BIN(time.tm_mon);

BCD_TO_BIN(time.tm_year);

startup_time = kernel_mktime(&time);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: