亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? time.c

?? 根據添加了fs2410平臺的arch目錄
?? C
字號:
/* *  linux/arch/mips/philips/nino/time.c * *  Copyright (C) 1999 Harald Koerfgen *  Copyright (C) 2000 Pavel Machek (pavel@suse.cz) *  Copyright (C) 2001 Steven J. Hill (sjhill@realitydiluted.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * *  Time handling functinos for Philips Nino. */#include <linux/errno.h>#include <linux/init.h>#include <linux/sched.h>#include <linux/kernel.h>#include <linux/param.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/interrupt.h>#include <linux/timex.h>#include <linux/delay.h>#include <asm/tx3912.h>extern volatile unsigned long wall_jiffies;extern rwlock_t xtime_lock;static struct timeval xbase;#define USECS_PER_JIFFY (1000000/HZ)/* * Poll the Interrupt Status Registers */#undef POLL_STATUSstatic unsigned long do_gettimeoffset(void){    /*     * This is a kludge     */    return 0;}staticvoid inline readRTC(unsigned long *high, unsigned long *low){	/* read twice, and keep reading till we find two	 * the same pairs. This is needed in case the RTC	 * was updating its registers and we read a old	 * High but a new Low. */	do {		*high = RTChigh & RTC_HIGHMASK;		*low = RTClow;	} while (*high != (RTChigh & RTC_HIGHMASK) || RTClow!=*low);}/* * This version of gettimeofday has near millisecond resolution. */void do_gettimeofday(struct timeval *tv){    unsigned long flags;    unsigned long high, low;    read_lock_irqsave(&xtime_lock, flags);    // 40 bit RTC, driven by 32khz source:    // +-----------+-----------------------------------------+    // | HHHH.HHHH | LLLL.LLLL.LLLL.LLLL.LMMM.MMMM.MMMM.MMMM |    // +-----------+-----------------------------------------+    readRTC(&high,&low);    tv->tv_sec  = (high << 17) | (low >> 15);    tv->tv_usec = (low % 32768) * 1953 / 64;    tv->tv_sec += xbase.tv_sec;    tv->tv_usec += xbase.tv_usec;    tv->tv_usec += do_gettimeoffset();    /*     * xtime is atomically updated in timer_bh. lost_ticks is     * nonzero if the timer bottom half hasnt executed yet.     */    if (jiffies - wall_jiffies)	tv->tv_usec += USECS_PER_JIFFY;    read_unlock_irqrestore(&xtime_lock, flags);    if (tv->tv_usec >= 1000000) {	tv->tv_usec -= 1000000;	tv->tv_sec++;    }}void do_settimeofday(struct timeval *tv){    write_lock_irq(&xtime_lock);    /* This is revolting. We need to set the xtime.tv_usec     * correctly. However, the value in this location is     * is value at the last tick.     * Discover what correction gettimeofday     * would have done, and then undo it!     */    tv->tv_usec -= do_gettimeoffset();    if (tv->tv_usec < 0) {	tv->tv_usec += 1000000;	tv->tv_sec--;    }    /* reset RTC to 0 (real time is xbase + RTC) */    xbase = *tv;    RTCtimerControl |=  TIM_RTCCLEAR;    RTCtimerControl &= ~TIM_RTCCLEAR;    RTCalarmHigh = RTCalarmLow = ~0UL;    xtime = *tv;    time_state = TIME_BAD;    time_maxerror = MAXPHASE;    time_esterror = MAXPHASE;    write_unlock_irq(&xtime_lock);}static int set_rtc_mmss(unsigned long nowtime){    int retval = 0;    return retval;}/* last time the cmos clock got updated */static long last_rtc_update = 0;/* * timer_interrupt() needs to keep up the real-time clock, * as well as call the "do_timer()" routine every clocktick */int do_write = 1;static voidtimer_interrupt(int irq, void *dev_id, struct pt_regs *regs){#ifdef POLL_STATUS    static unsigned long old_IntStatus1 = 0;    static unsigned long old_IntStatus3 = 0;    static unsigned long old_IntStatus4 = 0;    static unsigned long old_IntStatus5 = 0;    static int counter = 0;    int i;    new_spircv = SPIData & 0xff;    if ((old_spircv != new_spircv) && (new_spircv != 0xff)) {	    printk( "SPIData changed: %x\n", new_spircv );    }    old_spircv = new_spircv;    if (do_write)	    SPIData = 0;#endif    if (!user_mode(regs)) {	if (prof_buffer && current->pid) {	    extern int _stext;	    unsigned long pc = regs->cp0_epc;	    pc -= (unsigned long) &_stext;	    pc >>= prof_shift;	    /*	     * Dont ignore out-of-bounds pc values silently,	     * put them into the last histogram slot, so if	     * present, they will show up as a sharp peak.	     */	    if (pc > prof_len - 1)		pc = prof_len - 1;		atomic_inc((atomic_t *) & prof_buffer[pc]);	    }    }    /*     * aaaand... action!     */    do_timer(regs);    /*     * If we have an externally syncronized Linux clock, then update     * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be     * called as close as possible to 500 ms before the new second starts.     */    if (time_state != TIME_BAD && xtime.tv_sec > last_rtc_update + 660 &&	xtime.tv_usec > 500000 - (tick >> 1) &&	xtime.tv_usec < 500000 + (tick >> 1))    {	if (set_rtc_mmss(xtime.tv_sec) == 0)	    last_rtc_update = xtime.tv_sec;	else	    last_rtc_update = xtime.tv_sec - 600;  /* do it again in 60 s */    }}static struct irqaction irq0 = {timer_interrupt, SA_INTERRUPT, 0, 			 "timer", NULL, NULL};void (*board_time_init) (struct irqaction * irq);int __init time_init(void){    struct timeval starttime;    starttime.tv_sec = mktime(2000, 1, 1, 0, 0, 0);    starttime.tv_usec = 0;    do_settimeofday(&starttime);    board_time_init(&irq0);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区久久| 欧美日韩精品电影| 亚洲人成人一区二区在线观看| 日韩精品一区二区三区在线观看| 在线观看国产一区二区| 色欧美日韩亚洲| 99国产精品久久久久久久久久| 国产精品伊人色| 国产黄色91视频| 91麻豆国产自产在线观看| www.欧美.com| 欧美日韩中文国产| 日韩午夜激情免费电影| 精品盗摄一区二区三区| 久久久久国产精品麻豆 | 亚洲精品久久嫩草网站秘色| 亚洲视频免费观看| 一区二区三区在线看| 午夜av电影一区| 国产资源在线一区| 97超碰欧美中文字幕| 欧美三级视频在线| 欧美精品一区二区高清在线观看| 久久精品视频在线看| 国产精品国产馆在线真实露脸| 亚洲精品日韩一| 免费成人av在线播放| 国产激情一区二区三区四区| 99精品久久只有精品| 91精品婷婷国产综合久久性色| 精品国产sm最大网站| 亚洲视频网在线直播| 日韩av一级片| av一区二区久久| 91麻豆精品国产91久久久久久久久 | 亚洲一区在线观看免费 | 一区二区欧美视频| 免费观看一级欧美片| 国产成人小视频| 欧美日韩国产在线播放网站| 久久久亚洲高清| 亚洲综合激情网| 国产91丝袜在线18| 69p69国产精品| 亚洲美女淫视频| 国产精品综合av一区二区国产馆| 在线日韩av片| 国产欧美精品一区aⅴ影院| 午夜成人免费视频| 色综合久久综合网欧美综合网| 欧美一区二区三区色| 亚洲人成亚洲人成在线观看图片| 开心九九激情九九欧美日韩精美视频电影| 成人午夜激情片| 国产午夜亚洲精品午夜鲁丝片| 石原莉奈在线亚洲三区| 91成人在线观看喷潮| 中文字幕在线一区二区三区| 国产一区二区三区高清播放| 欧美一区二区三区免费在线看| 中文字幕一区二区三区蜜月| 国产麻豆一精品一av一免费| 91精品黄色片免费大全| 亚洲大型综合色站| 91国偷自产一区二区使用方法| 中文字幕第一区二区| 国产成人精品一区二区三区四区 | 99麻豆久久久国产精品免费优播| 欧美成人女星排行榜| 日韩电影在线一区二区三区| 在线观看日韩国产| 夜夜夜精品看看| 色欧美乱欧美15图片| 亚洲欧美日韩国产综合在线| av网站免费线看精品| 亚洲国产岛国毛片在线| 国产成人精品综合在线观看| 国产欧美一区二区三区鸳鸯浴| 国产精品影视网| 国产精品嫩草影院com| 成人网男人的天堂| 亚洲精品亚洲人成人网| 91国偷自产一区二区开放时间| 亚洲主播在线观看| 欧美情侣在线播放| 美国三级日本三级久久99| 欧美大片在线观看一区二区| 精品伊人久久久久7777人| 26uuu国产电影一区二区| 久久爱www久久做| 欧美高清在线一区| 一本色道a无线码一区v| 日韩黄色小视频| 久久一日本道色综合| 9人人澡人人爽人人精品| 亚洲一区二区中文在线| 日韩小视频在线观看专区| 国产黄色精品网站| 亚洲图片自拍偷拍| 亚洲精品一区二区三区影院| 国产精品一区二区在线观看不卡| 中国色在线观看另类| 91美女片黄在线观看91美女| 男人的天堂久久精品| 国产午夜精品一区二区三区视频| 99国产精品久久久| 蜜臀av一区二区| 国产精品传媒入口麻豆| 欧美高清视频一二三区 | 国产成人av影院| 亚洲激情在线激情| 日韩一级片网址| 97久久超碰精品国产| 另类小说综合欧美亚洲| 最新高清无码专区| 日韩精品在线一区二区| 色综合一个色综合亚洲| 久久丁香综合五月国产三级网站| 国产精品理论在线观看| 日韩免费性生活视频播放| 91免费版在线| 国产精品性做久久久久久| 亚洲一区二区三区在线看| 国产日韩欧美高清| 91精品免费观看| 91丝袜美女网| 国产精品自拍在线| 麻豆国产91在线播放| 亚洲制服丝袜av| 国产精品传媒入口麻豆| 久久综合狠狠综合久久综合88| 91久久精品午夜一区二区| 国产精品18久久久久久久网站| 视频一区在线视频| 一区二区三区免费在线观看| 国产亚洲一区二区三区四区| 欧美一区二区三区四区视频| 欧美影视一区在线| 91免费版pro下载短视频| 成人激情文学综合网| 国产一区二区不卡| 国产在线不卡一区| 久久国产夜色精品鲁鲁99| 五月天精品一区二区三区| 一区二区三区在线视频播放| 国产精品热久久久久夜色精品三区| 精品区一区二区| 欧美成人精品高清在线播放 | 久久精工是国产品牌吗| 亚洲444eee在线观看| 一区二区三区日韩| 一区二区三区在线不卡| 亚洲美女电影在线| 一级精品视频在线观看宜春院| 综合色中文字幕| 亚洲精品中文在线影院| 一区二区三区视频在线看| 亚洲精品免费视频| 亚洲综合色婷婷| 亚洲成人自拍偷拍| 日韩激情一二三区| 国内精品免费**视频| 国产美女娇喘av呻吟久久| 国产成人无遮挡在线视频| 风间由美一区二区av101| 成人黄色国产精品网站大全在线免费观看| 国产成人综合亚洲网站| 99国产精品国产精品毛片| 色婷婷综合久色| 欧美天堂亚洲电影院在线播放| 欧美日韩精品高清| 欧美精品一区二区蜜臀亚洲| 亚洲国产成人在线| 一区二区在线观看视频在线观看| 亚洲小说春色综合另类电影| 日韩中文字幕麻豆| 国产一区免费电影| 91女人视频在线观看| 欧美巨大另类极品videosbest| 欧美成人福利视频| 日本一区二区三区在线观看| 亚洲免费在线观看视频| 日韩精品1区2区3区| 国产精品1024| 717成人午夜免费福利电影| 国产欧美综合在线| 亚洲网友自拍偷拍| 国产成人免费在线| 欧美日韩高清在线播放| 2欧美一区二区三区在线观看视频| 国产蜜臀97一区二区三区| 午夜国产精品一区| 国产99久久精品| 欧美老肥妇做.爰bbww| 国产婷婷一区二区| 午夜精品福利一区二区蜜股av| 国产激情偷乱视频一区二区三区 | 久久精品国产亚洲一区二区三区| 成人在线视频一区二区| 91精品中文字幕一区二区三区|