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

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

?? armio.c

?? skyeye-1.2-RC7-3的源代碼
?? C
字號:
/*    armio.c - I/O registers and interrupt controller.    ARMulator extensions for the ARM7100 family.    Copyright (C) 1999  Ben Williamson	Changes to support running uClinux/Atmel AT91 targets    Copyright (C) 2002  David McCullough <davidm@snapgear.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*/#include <sys/time.h>#include <sys/types.h>#include <unistd.h>#include "armdefs.h"/* *  7/17/2003     clean some routine. *                clean io_reset only to do special mach_io_reset function. *                wlm <wlm@student.dlut.edu.cn> *//* Reset IO.  * Now only reset some Internal IO Register. * Every machine has a reset routine to init it's special registers. * wlm 2003/7/17 * *//* some machine need less number. e.g. s3c2440 only need DIVISOR = 1 to boot*/#define DIVISOR      (50)static int prescale = DIVISOR;voidio_reset (ARMul_State * state){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (dev->reset)			dev->reset (dev);	}	skyeye_config.mach->mach_io_reset (state);}voidio_do_cycle (ARMul_State * state){	struct device_desc *dev;	int i;//teawater add DBCT_TEST_SPEED 2005.10.04---------------------------------------#ifdef DBCT_TEST_SPEED	state->instr_count++;#endif	//DBCT_TEST_SPEED//AJ2D--------------------------------------------------------------------------	prescale--;	if (prescale < 0) {		prescale = DIVISOR;		for (i = 0; i < skyeye_config.mach->dev_count; i++) {			dev = skyeye_config.mach->devices[i];			if (dev->update)				dev->update (dev);		}		skyeye_config.mach->mach_io_do_cycle (state);	}}unsigned charmem_read_char (ARMul_State * state, ARMword addr){	union	{		unsigned char buf[4];		ARMword w;	} tmp;	tmp.w = mem_read_word (state, addr & ~0x3);	if (state->bigendSig == HIGH)		//if (big_endian)		return (tmp.buf[3 - (addr & 0x3)]);	return (tmp.buf[addr & 0x3]);}voidmem_write_char (ARMul_State * state, ARMword addr, unsigned char c){	union	{		unsigned char buf[4];		ARMword w;	} tmp;	tmp.w = mem_read_word (state, addr & ~0x3);	if (state->bigendSig == HIGH)	/*big enddian? */		//if (big_endian)		tmp.buf[3 - (addr & 0x3)] = c;	else		tmp.buf[addr & 0x3] = c;	mem_write_word (state, addr & ~0x3, tmp.w);}/* Internal registers from 0x80000000 to 0x80002000.   We also define a "debug I/O" register thereafter. */ARMwordio_read_byte (ARMul_State * state, ARMword addr){	struct device_desc *dev;	ARMword data;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->read_byte)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->read_byte (dev, addr, (u8 *) & data) !=			    ADDR_NOHIT)				return data & 0xff;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->read_byte (dev, addr, (u8 *) & data) !=			    ADDR_NOHIT)				return data & 0xff;		}	}	return skyeye_config.mach->mach_io_read_byte (state, addr);}ARMwordio_read_halfword (ARMul_State * state, ARMword addr){	struct device_desc *dev;	ARMword data;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->read_halfword)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->read_halfword (dev, addr, (u16 *) & data) !=			    ADDR_NOHIT)				return data & 0xffff;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->read_halfword (dev, addr, (u16 *) & data) !=			    ADDR_NOHIT)				return data & 0xffff;		}	}	return skyeye_config.mach->mach_io_read_halfword (state, addr);}ARMwordio_read_word (ARMul_State * state, ARMword addr){	struct device_desc *dev;	ARMword data;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->read_word)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->read_word (dev, addr, (u32 *) & data) !=			    ADDR_NOHIT)				return data;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->read_word (dev, addr, (u32 *) & data) !=			    ADDR_NOHIT)				return data;		}	}	return skyeye_config.mach->mach_io_read_word (state, addr);}voidio_write_byte (ARMul_State * state, ARMword addr, ARMword data){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->write_byte)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->write_byte (dev, addr, (u8) data) !=			    ADDR_NOHIT)				return;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->write_byte (dev, addr, (u8) data) !=			    ADDR_NOHIT)				return;		}	}	skyeye_config.mach->mach_io_write_byte (state, addr, data);}voidio_write_halfword (ARMul_State * state, ARMword addr, ARMword data){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->write_halfword)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->write_halfword (dev, addr, (u16) data) !=			    ADDR_NOHIT)				return;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->write_halfword (dev, addr, (u16) data) !=			    ADDR_NOHIT)				return;		}	}	skyeye_config.mach->mach_io_write_halfword (state, addr, data);}voidio_write_word (ARMul_State * state, ARMword addr, ARMword data){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->write_word)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->write_word (dev, addr, data) != ADDR_NOHIT)				return;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->write_word (dev, addr, data) != ADDR_NOHIT)				return;		}	}	skyeye_config.mach->mach_io_write_word (state, addr, data);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄页在线观看| 色婷婷一区二区三区四区| 亚洲一级电影视频| 中文字幕国产一区| 国产精品午夜免费| 国产精品久久精品日日| 国产视频亚洲色图| 中文子幕无线码一区tr| 国产欧美日韩精品在线| 亚洲国产精品t66y| 中文av字幕一区| 亚洲人123区| 国产精品拍天天在线| 亚洲欧洲制服丝袜| 亚洲午夜成aⅴ人片| 午夜精品久久久久影视| 舔着乳尖日韩一区| 国产一区二区三区高清播放| 成人免费va视频| 91国产免费看| 3d动漫精品啪啪一区二区竹菊| 国产欧美一区二区三区鸳鸯浴 | 国产精品99久久不卡二区| 国产一区二区三区久久久| 成人久久久精品乱码一区二区三区 | 日韩二区三区四区| 国产麻豆成人传媒免费观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩一区二区在线观看| 久久色在线观看| 一区二区在线观看av| 蜜桃传媒麻豆第一区在线观看| 国产原创一区二区| 91福利视频网站| 欧美r级电影在线观看| 亚洲视频每日更新| 九九九精品视频| 99re这里只有精品视频首页| 欧美一区二区三区人| 亚洲欧洲性图库| 麻豆精品在线观看| 欧美亚洲国产一区在线观看网站| 日韩精品资源二区在线| 亚洲欧美日韩系列| 国产精品亚洲专一区二区三区| 色综合天天综合给合国产| 久久噜噜亚洲综合| 肉色丝袜一区二区| 91网站最新地址| 国产欧美日韩另类一区| 美女爽到高潮91| 在线观看一区二区视频| 国产三级欧美三级| 玖玖九九国产精品| 欧美久久久久久久久久| 成人欧美一区二区三区黑人麻豆| 精品一区二区三区在线播放视频| 91高清视频在线| 亚洲图片另类小说| 成人精品鲁一区一区二区| 精品999在线播放| 日本特黄久久久高潮| 91搞黄在线观看| 亚洲精品成人在线| 91首页免费视频| 成人欧美一区二区三区1314| 久久av中文字幕片| 欧美日韩成人一区| 亚洲国产精品久久久久秋霞影院| 91在线小视频| 国产精品福利影院| 风间由美一区二区三区在线观看 | 久久久精品免费免费| 日韩不卡免费视频| 欧美丰满少妇xxxbbb| 亚洲与欧洲av电影| 欧美日韩亚洲综合| 国产精品对白交换视频| 国产亚洲1区2区3区| 视频一区在线播放| 久久日一线二线三线suv| 中国av一区二区三区| 午夜日韩在线观看| 91麻豆精品秘密| 国产精品一卡二| 精品蜜桃在线看| 夜夜嗨av一区二区三区| 精品视频免费在线| 日韩黄色免费电影| 欧美色图一区二区三区| 亚洲自拍另类综合| 久久久久久久久久久久久久久99| 久久99国产精品久久99果冻传媒| 亚洲欧洲一区二区在线播放| 日本特黄久久久高潮| 91免费观看国产| 一本一道综合狠狠老| 日本欧美一区二区| 国产欧美一区二区在线| 综合中文字幕亚洲| 久久久五月婷婷| 亚洲午夜一区二区| 久久国产欧美日韩精品| 日本最新不卡在线| 日韩一二在线观看| 色久综合一二码| 欧美一级二级在线观看| 欧美日韩视频一区二区| 精品日韩欧美一区二区| 91麻豆精品视频| 国产精品久久久久四虎| 国产精品高潮呻吟| 久久66热偷产精品| 亚洲国产精品久久一线不卡| 欧美性色黄大片| 欧美一区二区三区啪啪| 免费不卡在线观看| 丰满白嫩尤物一区二区| 精品国产伦理网| 日韩不卡一二三区| 午夜国产精品一区| 欧美本精品男人aⅴ天堂| 国产精品一区二区视频| 国产精品护士白丝一区av| 成人美女视频在线观看| 久久精品国产99久久6| 欧美日韩国产中文| 麻豆精品一区二区综合av| 亚洲男人天堂av网| 国产欧美日韩视频一区二区| 欧美一区二区三区性视频| 91蜜桃免费观看视频| 国产精品一二一区| 蜜桃av一区二区在线观看| 亚洲国产精品欧美一二99| 国产欧美一区二区精品性色| 日韩一区二区在线观看| 欧美日韩免费观看一区二区三区| 成人av网站免费观看| 国产精品99久久久久久有的能看| 日韩中文字幕亚洲一区二区va在线| 中文字幕在线不卡| 中文字幕中文字幕一区二区| 久久色中文字幕| 精品少妇一区二区三区在线视频 | 91精品国产高清一区二区三区| 91色婷婷久久久久合中文| 国产河南妇女毛片精品久久久 | 欧美伦理电影网| a亚洲天堂av| 成人一区在线观看| 春色校园综合激情亚洲| 成人小视频免费在线观看| 国产成人免费视频网站| 国产精品亚洲成人| 国产精品一区二区男女羞羞无遮挡| 久久97超碰国产精品超碰| 久草在线在线精品观看| 激情欧美一区二区三区在线观看| 日韩av成人高清| 狠狠色狠狠色合久久伊人| 麻豆91在线播放免费| 狠狠色丁香婷综合久久| 国产精品影视在线| av电影在线观看一区| 99久久伊人精品| 欧美日韩亚洲综合| 精品1区2区3区| 精品欧美一区二区三区精品久久 | 国产精品进线69影院| 日本一区免费视频| 综合网在线视频| 中文字幕日韩精品一区| 亚洲综合视频网| 麻豆精品在线观看| 成人福利视频在线看| 欧美在线小视频| 精品日韩99亚洲| 亚洲精品高清视频在线观看| 日本欧美肥老太交大片| 国产一二三精品| 欧美亚洲动漫精品| 精品少妇一区二区三区视频免付费| 久久久久免费观看| 一区二区三区中文字幕精品精品| 日韩高清不卡在线| 福利91精品一区二区三区| 91蝌蚪porny九色| 精品久久久三级丝袜| 亚洲青青青在线视频| 日本欧美大码aⅴ在线播放| 国产成人精品影院| 在线播放国产精品二区一二区四区| 久久久噜噜噜久久人人看| 亚洲伊人伊色伊影伊综合网| 国产精品夜夜嗨| 欧美一区二区三区思思人| 亚洲精品乱码久久久久久久久| 开心九九激情九九欧美日韩精美视频电影| 成人一区在线观看|