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

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

?? timer.c

?? TI OMAP 1510上mcbsp的驅動程序
?? C
字號:
/* * dspapps/dsp/task_testB/timer.c * * DSP timer module * * Copyright (C) 2003 Nokia Corporation * * Written by Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * $Id: timer.c * $Revision: 2.0 * $Date: 2003/11/11 * */#include <std.h>#include <hwi.h>#include <tsk.h>#include <mem.h>#include "omap1510.h"#include "list.h"#include "tokliBIOSlib.h"#define __timer1_start() \	do {\		outw(inw(_CNTL_TIMER1) | _CNTL_TIMERn_BIT_ST,\		     _CNTL_TIMER1);\	} while(0)#define __timer1_stop() \	do {\		outw(inw(_CNTL_TIMER1) & ~_CNTL_TIMERn_BIT_ST,\		     _CNTL_TIMER1);\	} while(0)#ifndef TQ_USE_MALLOCstatic struct procq	tq_1s_pool[TQ_MAX];#endifLIST_HEAD(tq_1s);/* * Timer1 is configured in DSP/BIOS configuration, * but we want to set it not to be changed by DSP domain clock * frequency. * Therefore, we need set it up again here. */Void init_timer(Void){	LgUns	ldval;		__timer1_stop();	// 12MHz for timer clock	outw(inw(_DSP_CKCTL) & ~_DSP_CKCTL_BIT_TIMXO, _DSP_CKCTL);//	// enable timer clock//	outw(inw(_DSP_IDLECT2) | _DSP_IDLECT2_BIT_EN_TIMCK,//	     _DSP_IDLECT2);	// Autoload mode, PTV=0	ldval = 12000000L/2/100; // 1/100 s	outw(ldval>>16,    _LOAD_TIM_HI1);	outw(ldval&0xffff, _LOAD_TIM_LO1);	outw(_CNTL_TIMERn_BIT_AR |	     _CNTL_TIMERn_BIT_PTV(0) |	     _CNTL_TIMERn_BIT_CLOCK_ENABLE, _CNTL_TIMER1);	__timer1_start();}Void timer1_start(Void){	__timer1_start();}Void timer1_stop(Void){	__timer1_stop();}Void init_tq(Void){#ifndef TQ_USE_MALLOC	Int	i;		for(i=0; i<TQ_MAX; i++) {		tq_1s_pool[i].tid = MBCMD_TID_FREE;	}#endif /* TQ_USE_MALLOC */}Void *register_tq_1s(struct dsptask *task,		     Uns (*f)(struct dsptask *task)){	struct procq	*new;	Uns	intm_saved;#ifdef TQ_USE_MALLOC	new = MEM_alloc(MEM->MALLOCSEG, sizeof(struct procq), 2);	if(new == MEM_ILLEGAL)		return MEM_ILLEGAL;	new->func = f;	new->tid  = task->tid;	intm_saved = HWI_disable();	list_add_tail((struct list_head *)new, &tq_1s);	HWI_restore(intm_saved);#else /* TQ_USE_MALLOC */	Int	i;	intm_saved = HWI_disable();	for(i=0; i<TQ_MAX; i++) {		if(tq_1s_pool[i].tid == MBCMD_TID_FREE) {			new = &tq_1s_pool[i];			goto add;		}	}	HWI_restore(intm_saved);	return MEM_ILLEGAL;add:	new->func = f;	new->tid  = task->tid;	list_add_tail((struct list_head *)new, &tq_1s);	HWI_restore(intm_saved);#endif /* TQ_USE_MALLOC */	return new;}Void unregister_tq_1s(struct dsptask *task, Void *id){	struct list_head	*p;	Uns	intm_saved;	intm_saved = HWI_disable();	list_for_each(p, &tq_1s) {		if(p == id) {			list_del(p);			break;		}	}	HWI_restore(intm_saved);#ifdef TQ_USE_MALLOC	MEM_free(MEM->MALLOCSEG, id, sizeof(struct procq));#else	((struct procq*)id)->tid = MBCMD_TID_FREE;#endif}/* * PRD functions */Void prd_10ms(Void){	TSK_yield();}Void prd_1s(Void){	struct list_head	*p, *next;	Uns	eid;#ifdef DEBUG_WAKEUP_CNT	LgUns	wakeup_cnt;#endif /* DEBUG_WAKEUP_CNT */	/*	 * Do not use list_for_each().	 * We must hold p->next before calling func()	 * in order to allow the queue to suicide	 * (i.e. call unregister() itself in func().)	 */	for(p = tq_1s.next; p != &tq_1s; p = next) {		struct procq	*pq = (struct procq *)p;		Uns		tid = pq->tid;		next = p->next;		eid = pq->func(dsptask[tid]);		/*		 * after func(), we shold not to access p or pq		 * because it can be deleted!		 */		if(eid) {			sys_cmderr(eid, mbcmd(0,tid));		}	}#ifdef DEBUG_WAKEUP_CNT	if((wakeup_cnt = get_wakeup_cnt()) > 0) {		mbsend(mbcmd(MBCMD_ERR, MBCMD_EID_DEBUG), wakeup_cnt>>16);		mbsend(mbcmd(MBCMD_ERR, MBCMD_EID_DEBUG), wakeup_cnt&0xffff);		clear_wakeup_cnt();	}#endif /* DEBUG_WAKEUP_CNT */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜视频在线观看| 石原莉奈一区二区三区在线观看| 欧美狂野另类xxxxoooo| 欧美精品丝袜久久久中文字幕| 91麻豆成人久久精品二区三区| 成人黄色综合网站| 91一区一区三区| 欧美伊人久久大香线蕉综合69| 色视频一区二区| 欧美日韩亚州综合| 日韩精品一区二区三区swag| 久久这里只有精品6| 欧美激情一区二区三区不卡| 中文字幕亚洲一区二区va在线| 亚洲综合激情小说| 日本美女一区二区| 国产91在线观看丝袜| 91视频免费看| 欧美一区日本一区韩国一区| 精品国产欧美一区二区| 国产精品国产自产拍高清av王其| 136国产福利精品导航| 午夜电影一区二区三区| 国产精品69毛片高清亚洲| gogogo免费视频观看亚洲一| 欧美午夜精品一区二区三区| 欧美一二三四区在线| 国产精品午夜春色av| 亚洲自拍偷拍av| 精品亚洲成a人| 一本色道久久综合狠狠躁的推荐 | 亚洲欧美在线观看| 亚洲国产精品久久一线不卡| 激情图片小说一区| 在线观看视频一区二区欧美日韩| 欧美大片顶级少妇| 亚洲一区二区三区四区五区中文| 精品在线观看免费| 欧美视频在线一区二区三区| 久久综合九色综合97婷婷| 亚洲综合色视频| 国产成人自拍在线| 91精品麻豆日日躁夜夜躁| 国产精品全国免费观看高清 | 亚洲一区成人在线| 国产高清精品久久久久| 欧美日韩免费高清一区色橹橹 | 亚洲第一成年网| 成人免费视频caoporn| 欧美肥妇free| 亚洲精品国产视频| 成人综合婷婷国产精品久久蜜臀| 欧美一区二区三区视频免费| 亚洲精品国产一区二区三区四区在线| 国产在线视视频有精品| 日韩视频在线一区二区| 性感美女极品91精品| 色综合天天综合狠狠| 国产精品系列在线| 国产成人午夜片在线观看高清观看| 日韩欧美一级二级三级| 亚洲成人手机在线| 欧美视频精品在线| 亚洲黄色尤物视频| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美大片一区二区| 亚洲电影一区二区| 欧美视频一区二区三区在线观看 | 色拍拍在线精品视频8848| 欧美国产日韩精品免费观看| 国产精品自拍一区| 久久久久久电影| 国产成人免费视| 中文字幕免费一区| www.欧美.com| 国产精品电影院| 色播五月激情综合网| 亚洲在线一区二区三区| 欧美日韩日日摸| 日本中文字幕一区二区有限公司| 欧美高清激情brazzers| 美日韩一区二区三区| 精品毛片乱码1区2区3区| 国产在线看一区| 国产无人区一区二区三区| 国产成人av网站| 亚洲人成在线播放网站岛国| 欧美日韩一区高清| 老司机精品视频线观看86| 久久久国产精品不卡| 99久久er热在这里只有精品15 | 久久亚洲综合色一区二区三区| 精品一区二区在线免费观看| 精品免费日韩av| 99久久免费视频.com| 亚洲一区在线视频| 精品对白一区国产伦| 国产精品一区二区在线观看不卡| 综合久久综合久久| 欧美一区二区黄色| 国产·精品毛片| 亚洲最大的成人av| 欧美大白屁股肥臀xxxxxx| 国产精品一区在线| 亚洲韩国一区二区三区| 2017欧美狠狠色| 在线观看一区二区视频| 国产剧情一区在线| 亚洲国产成人tv| 国产日韩欧美a| 欧美日韩国产片| 成人爽a毛片一区二区免费| 一区二区三区欧美日韩| 精品欧美一区二区三区精品久久 | 亚洲欧洲av一区二区三区久久| 欧美日本国产视频| 99热99精品| 精品一区二区三区av| 亚洲国产视频一区| 中文字幕精品一区二区精品绿巨人| 欧美精品日日鲁夜夜添| zzijzzij亚洲日本少妇熟睡| 蜜臀a∨国产成人精品| 一二三区精品福利视频| 国产精品天天看| 欧美刺激午夜性久久久久久久| 色诱视频网站一区| 高潮精品一区videoshd| 久久99深爱久久99精品| 日日摸夜夜添夜夜添精品视频| 自拍av一区二区三区| 国产精品你懂的在线| 久久欧美一区二区| 日韩精品最新网址| 欧美一激情一区二区三区| 欧美在线|欧美| 欧美中文字幕一区二区三区| av不卡在线观看| 成人午夜碰碰视频| 国产不卡高清在线观看视频| 久久福利资源站| 九色|91porny| 极品少妇xxxx偷拍精品少妇| 日韩vs国产vs欧美| 日韩精品乱码免费| 日一区二区三区| 秋霞av亚洲一区二区三| 日韩国产精品大片| 奇米精品一区二区三区四区| 天天av天天翘天天综合网| 午夜伊人狠狠久久| 免费观看久久久4p| 精品一区二区三区不卡| 国产精品99精品久久免费| 国产成人综合亚洲网站| 国产精选一区二区三区| 国产激情偷乱视频一区二区三区| 国产精品一卡二| 丁香天五香天堂综合| 91在线小视频| 欧美三级中文字幕在线观看| 7777精品伊人久久久大香线蕉完整版| 欧美精品在线观看播放| 精品少妇一区二区三区日产乱码 | 日韩欧美卡一卡二| 精品久久人人做人人爰| 国产亚洲成av人在线观看导航| 久久九九影视网| 亚洲色图制服丝袜| 午夜电影网一区| 国产美女精品在线| 色噜噜夜夜夜综合网| 91麻豆精品国产91久久久| 精品久久人人做人人爰| 国产精品国产三级国产普通话99 | 国产校园另类小说区| 中文字幕 久热精品 视频在线 | 色综合久久88色综合天天6| 欧美日韩中文国产| 久久久久久久久一| 亚洲精品亚洲人成人网在线播放| 午夜精品视频在线观看| 国产在线播精品第三| 日本黄色一区二区| 欧美电视剧免费观看| 亚洲精品成人天堂一二三| 日韩高清一区二区| 成人一级视频在线观看| 欧美视频在线观看一区二区| 久久综合国产精品| 亚洲h在线观看| 成年人午夜久久久| 欧美成人三级在线| 亚洲精品免费在线| 国产麻豆精品久久一二三| 欧美三片在线视频观看 | 欧美久久久久久蜜桃| 中文字幕中文字幕在线一区| 日本sm残虐另类| 91成人免费在线|