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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ops-msc.c

?? linux-2.4.29操作系統(tǒng)的源碼
?? C
字號:
/* * Carsten Langgaard, carstenl@mips.com * Copyright (C) 1999, 2000 MIPS Technologies, Inc.  All rights reserved. * *  This program is free software; you can distribute it and/or modify it *  under the terms of the GNU General Public License (Version 2) as *  published by the Free Software Foundation. * *  This program is distributed in the hope 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 <linux/types.h>#include <linux/pci.h>#include <linux/kernel.h>#include <linux/init.h>#include <asm/mips-boards/msc01_pci.h>#define PCI_ACCESS_READ  0#define PCI_ACCESS_WRITE 1/* *  PCI configuration cycle AD bus definition *//* Type 0 */#define PCI_CFG_TYPE0_REG_SHF           0#define PCI_CFG_TYPE0_FUNC_SHF          8/* Type 1 */#define PCI_CFG_TYPE1_REG_SHF           0#define PCI_CFG_TYPE1_FUNC_SHF          8#define PCI_CFG_TYPE1_DEV_SHF           11#define PCI_CFG_TYPE1_BUS_SHF           16static int msc_config_access(unsigned char access_type,	struct pci_dev *dev, unsigned char where, u32 *data){	unsigned char bus = dev->bus->number;	unsigned char dev_fn = dev->devfn;	unsigned char type;	u32 intr, dummy;	u64 pci_addr;	if ((bus == 0) && (PCI_SLOT(dev_fn) == 0))	        return -1;	/* Clear status register bits. */	MSC_WRITE(MSC01_PCI_INTSTAT,		  (MSC01_PCI_INTCFG_MA_BIT | MSC01_PCI_INTCFG_TA_BIT));	/* Setup address */	if (bus == 0)		type = 0;  /* Type 0 */	else		type = 1;  /* Type 1 */	MSC_WRITE(MSC01_PCI_CFGADDR,		  ((bus              << MSC01_PCI_CFGADDR_BNUM_SHF) |		   (PCI_SLOT(dev_fn) << MSC01_PCI_CFGADDR_DNUM_SHF) |		   (PCI_FUNC(dev_fn) << MSC01_PCI_CFGADDR_FNUM_SHF) |		   ((where /4 )      << MSC01_PCI_CFGADDR_RNUM_SHF) |		   (type)));	/* Perform access */	if (access_type == PCI_ACCESS_WRITE) {	        MSC_WRITE(MSC01_PCI_CFGDATA, *data);	} else {		MSC_READ(MSC01_PCI_CFGDATA, *data);	}	/* Detect Master/Target abort */	MSC_READ(MSC01_PCI_INTSTAT, intr);	if (intr & (MSC01_PCI_INTCFG_MA_BIT | MSC01_PCI_INTCFG_TA_BIT)) {	        /* Error occurred */	        /* Clear bits */		MSC_READ(MSC01_PCI_INTSTAT, intr);		MSC_WRITE(MSC01_PCI_INTSTAT,			  (MSC01_PCI_INTCFG_MA_BIT |			   MSC01_PCI_INTCFG_TA_BIT));		return -1;	}	return 0;}/* * We can't address 8 and 16 bit words directly.  Instead we have to * read/write a 32bit word and mask/modify the data we actually want. */static int msc_read_config_byte (struct pci_dev *dev, int where,	u8 *val){	u32 data = 0;	if (msc_config_access(PCI_ACCESS_READ, dev, where, &data))		return -1;	*val = (data >> ((where & 3) << 3)) & 0xff;	return PCIBIOS_SUCCESSFUL;}static int msc_read_config_word (struct pci_dev *dev, int where,	u16 *val){	u32 data = 0;	if (where & 1)		return PCIBIOS_BAD_REGISTER_NUMBER;	if (msc_config_access(PCI_ACCESS_READ, dev, where, &data))	       return -1;	*val = (data >> ((where & 3) << 3)) & 0xffff;	return PCIBIOS_SUCCESSFUL;}static int msc_read_config_dword (struct pci_dev *dev, int where,	u32 *val){	u32 data = 0;	if (where & 3)		return PCIBIOS_BAD_REGISTER_NUMBER;	if (msc_config_access(PCI_ACCESS_READ, dev, where, &data))		return -1;	*val = data;	return PCIBIOS_SUCCESSFUL;}static int msc_write_config_byte (struct pci_dev *dev, int where,	u8 val){	u32 data = 0;	if (msc_config_access(PCI_ACCESS_READ, dev, where, &data))		return -1;	data = (data & ~(0xff << ((where & 3) << 3))) |	       (val << ((where & 3) << 3));	if (msc_config_access(PCI_ACCESS_WRITE, dev, where, &data))		return -1;	return PCIBIOS_SUCCESSFUL;}static int msc_write_config_word (struct pci_dev *dev, int where,	u16 val){        u32 data = 0;	if (where & 1)		return PCIBIOS_BAD_REGISTER_NUMBER;        if (msc_config_access(PCI_ACCESS_READ, dev, where, &data))	       return -1;	data = (data & ~(0xffff << ((where & 3) << 3))) |	       (val << ((where & 3) << 3));	if (msc_config_access(PCI_ACCESS_WRITE, dev, where, &data))	       return -1;	return PCIBIOS_SUCCESSFUL;}static int msc_write_config_dword(struct pci_dev *dev, int where,	u32 val){	if (where & 3)		return PCIBIOS_BAD_REGISTER_NUMBER;	if (msc_config_access(PCI_ACCESS_WRITE, dev, where, &val))	       return -1;	return PCIBIOS_SUCCESSFUL;}struct pci_ops msc_pci_ops = {	msc_read_config_byte,        msc_read_config_word,	msc_read_config_dword,	msc_write_config_byte,	msc_write_config_word,	msc_write_config_dword};

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美—级在线免费片| 精品视频在线免费看| 国产婷婷色一区二区三区 | 日韩亚洲欧美在线| 久久爱www久久做| 久久九九99视频| caoporn国产一区二区| 一区二区欧美国产| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲一级电影视频| 精品欧美一区二区三区精品久久 | 国产精品国产三级国产专播品爱网 | 91在线观看下载| 亚洲图片欧美色图| 精品国产一区二区精华| 不卡av在线免费观看| 亚洲制服丝袜av| 欧美精品一区二区久久久| 成人妖精视频yjsp地址| 一区二区三区在线观看动漫| 9191成人精品久久| 从欧美一区二区三区| 亚洲国产精品影院| 久久综合九色综合欧美就去吻| 成人h精品动漫一区二区三区| 亚洲高清一区二区三区| 国产亚洲精品精华液| 欧美色老头old∨ideo| 国产精品中文字幕一区二区三区| 亚洲精品v日韩精品| 久久青草国产手机看片福利盒子| 欧美性色黄大片| 国产91清纯白嫩初高中在线观看| 无码av免费一区二区三区试看 | 欧美午夜一区二区三区 | 精品在线播放免费| 一区二区三区在线免费视频| 亚洲精品一线二线三线| 91日韩精品一区| 免费人成精品欧美精品| 国产精品三级视频| 欧美精三区欧美精三区| 伊人夜夜躁av伊人久久| 精品免费视频一区二区| 国产美女娇喘av呻吟久久| 亚洲一区二区免费视频| 国产亚洲欧美日韩在线一区| 欧美在线啊v一区| 高清在线观看日韩| 男男视频亚洲欧美| 亚洲欧美另类小说视频| 日韩欧美激情四射| 欧洲色大大久久| 国产高清精品在线| 亚洲国产一区视频| 国产精品天天摸av网| 91精品国产入口| 91色porny在线视频| 国产主播一区二区三区| 亚洲不卡av一区二区三区| 精品国产一二三| 日韩一区二区麻豆国产| 色天天综合久久久久综合片| 国产酒店精品激情| 日韩精品成人一区二区在线| 国产精品乱人伦| 精品国产第一区二区三区观看体验| 97久久精品人人做人人爽50路| 激情久久五月天| 日本在线不卡一区| 亚洲国产精品天堂| 亚洲综合视频在线观看| 一区二区三区久久| 亚洲欧美另类小说视频| 国产精品久久久久影院亚瑟 | 亚洲精品乱码久久久久久黑人| 久久蜜桃一区二区| 日韩一级免费一区| 欧美日韩中文字幕精品| 日本大香伊一区二区三区| 成人永久免费视频| 国产高清成人在线| 国产成人午夜精品影院观看视频| 免费在线看成人av| 亚洲成人免费av| 日本不卡高清视频| 亚洲不卡一区二区三区| 性感美女久久精品| 亚洲一二三四区| 亚洲一级不卡视频| 香蕉影视欧美成人| 亚洲一区二区偷拍精品| 亚洲成人av一区二区| 亚洲国产精品欧美一二99| 亚洲一区二区免费视频| 亚洲国产精品久久久久婷婷884 | 91精品国模一区二区三区| 欧美高清dvd| 91精品国产综合久久蜜臀| 欧美精品丝袜久久久中文字幕| 91丝袜国产在线播放| 精品污污网站免费看| 91 com成人网| 日韩美女天天操| 2024国产精品| 国产精品久久一卡二卡| 亚洲欧美一区二区三区久本道91| 亚洲欧美激情插| 亚洲国产美国国产综合一区二区| 亚洲成人激情av| 久久精品国产精品亚洲红杏 | 亚洲精品国久久99热| 一区二区日韩电影| 日产欧产美韩系列久久99| 久久国产三级精品| 国产米奇在线777精品观看| 国产jizzjizz一区二区| 91久久免费观看| 91精品在线观看入口| 久久久综合精品| 亚洲欧美aⅴ...| 麻豆91在线看| 成人国产视频在线观看 | 91色视频在线| 69久久99精品久久久久婷婷| 国产日韩一级二级三级| 亚洲精品少妇30p| 麻豆精品蜜桃视频网站| av在线这里只有精品| 欧美三级中文字幕在线观看| 精品少妇一区二区三区日产乱码| 中文字幕av一区二区三区高| 亚洲一区二区三区三| 国产一区二区三区四区五区入口| 99re热这里只有精品视频| 日韩一区二区三区观看| 亚洲精品中文在线观看| 久久精品国产99| 91久久香蕉国产日韩欧美9色| 欧美va亚洲va| 亚洲一卡二卡三卡四卡无卡久久| 国产精品国产自产拍高清av | 日韩伦理电影网| 久99久精品视频免费观看| av日韩在线网站| 日韩欧美一级二级三级久久久| 精品久久久久一区| 日本不卡在线视频| 91在线云播放| 久久久精品蜜桃| 日本va欧美va精品发布| 97久久超碰国产精品电影| 精品久久五月天| 日韩精品电影一区亚洲| 欧洲av在线精品| 国产欧美日韩不卡| 国产成人精品免费一区二区| 欧美精品第一页| 亚洲国产欧美在线人成| 91视视频在线直接观看在线看网页在线看| 欧美videos中文字幕| 视频精品一区二区| 欧美日韩免费电影| 亚洲精品日韩一| 精品亚洲aⅴ乱码一区二区三区| 69久久夜色精品国产69蝌蚪网| 一区二区三区在线视频免费观看| 国产精品1024| 久久精品一区二区三区不卡| 老司机一区二区| 91精品国产一区二区三区| 午夜精品一区二区三区电影天堂 | 国产精品久线观看视频| 国产精品一卡二卡在线观看| 日韩一区二区在线看| 亚洲国产乱码最新视频| 色哟哟在线观看一区二区三区| 亚洲视频资源在线| jizzjizzjizz欧美| 国产精品美女久久久久aⅴ| 成人综合在线视频| 欧美国产日韩在线观看| 国产91精品精华液一区二区三区 | 国产精品久久久久aaaa樱花| 国产揄拍国内精品对白| 久久先锋影音av鲁色资源网| 精品亚洲欧美一区| 久久精品人人做人人综合| 国产精品911| 中文子幕无线码一区tr| 99这里都是精品| 亚洲色欲色欲www| 欧美私模裸体表演在线观看| 五月婷婷激情综合| 欧美不卡在线视频| 亚洲成人av福利| 国产亚洲一二三区| 91在线无精精品入口| 亚洲综合免费观看高清完整版| 精品视频一区二区不卡|