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

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

?? ide-cs.c

?? linux2.6.16版本
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*======================================================================    A driver for PCMCIA IDE/ATA disk cards    ide-cs.c 1.3 2002/10/26 05:45:31    The contents of this file are subject to the Mozilla Public    License Version 1.1 (the "License"); you may not use this file    except in compliance with the License. You may obtain a copy of    the License at http://www.mozilla.org/MPL/    Software distributed under the License is distributed on an "AS    IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or    implied. See the License for the specific language governing    rights and limitations under the License.    The initial developer of the original code is David A. Hinds    <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds    are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.    Alternatively, the contents of this file may be used under the    terms of the GNU General Public License version 2 (the "GPL"), in    which case the provisions of the GPL are applicable instead of the    above.  If you wish to allow the use of your version of this file    only under the terms of the GPL and not to allow others to use    your version of this file under the MPL, indicate your decision    by deleting the provisions above and replace them with the notice    and other provisions required by the GPL.  If you do not delete    the provisions above, a recipient may use your version of this    file under either the MPL or the GPL.    ======================================================================*/#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/sched.h>#include <linux/ptrace.h>#include <linux/slab.h>#include <linux/string.h>#include <linux/timer.h>#include <linux/ioport.h>#include <linux/ide.h>#include <linux/hdreg.h>#include <linux/major.h>#include <linux/delay.h>#include <asm/io.h>#include <asm/system.h>#include <pcmcia/cs_types.h>#include <pcmcia/cs.h>#include <pcmcia/cistpl.h>#include <pcmcia/ds.h>#include <pcmcia/cisreg.h>#include <pcmcia/ciscode.h>/*====================================================================*//* Module parameters */MODULE_AUTHOR("David Hinds <dahinds@users.sourceforge.net>");MODULE_DESCRIPTION("PCMCIA ATA/IDE card driver");MODULE_LICENSE("Dual MPL/GPL");#define INT_MODULE_PARM(n, v) static int n = v; module_param(n, int, 0)#ifdef PCMCIA_DEBUGINT_MODULE_PARM(pc_debug, PCMCIA_DEBUG);#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)static char *version ="ide-cs.c 1.3 2002/10/26 05:45:31 (David Hinds)";#else#define DEBUG(n, args...)#endif/*====================================================================*/static const char ide_major[] = {    IDE0_MAJOR, IDE1_MAJOR, IDE2_MAJOR, IDE3_MAJOR,    IDE4_MAJOR, IDE5_MAJOR};typedef struct ide_info_t {    dev_link_t	link;    int		ndev;    dev_node_t	node;    int		hd;} ide_info_t;static void ide_release(dev_link_t *);static void ide_config(dev_link_t *);static void ide_detach(struct pcmcia_device *p_dev);/*======================================================================    ide_attach() creates an "instance" of the driver, allocating    local data structures for one device.  The device is registered    with Card Services.======================================================================*/static int ide_attach(struct pcmcia_device *p_dev){    ide_info_t *info;    dev_link_t *link;    DEBUG(0, "ide_attach()\n");    /* Create new ide device */    info = kzalloc(sizeof(*info), GFP_KERNEL);    if (!info)	return -ENOMEM;    link = &info->link; link->priv = info;    link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;    link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;    link->io.IOAddrLines = 3;    link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;    link->irq.IRQInfo1 = IRQ_LEVEL_ID;    link->conf.Attributes = CONF_ENABLE_IRQ;    link->conf.Vcc = 50;    link->conf.IntType = INT_MEMORY_AND_IO;    link->handle = p_dev;    p_dev->instance = link;    link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;    ide_config(link);    return 0;} /* ide_attach *//*======================================================================    This deletes a driver "instance".  The device is de-registered    with Card Services.  If it has been released, all local data    structures are freed.  Otherwise, the structures will be freed    when the device is released.======================================================================*/static void ide_detach(struct pcmcia_device *p_dev){    dev_link_t *link = dev_to_instance(p_dev);    DEBUG(0, "ide_detach(0x%p)\n", link);    if (link->state & DEV_CONFIG)	ide_release(link);    kfree(link->priv);} /* ide_detach */static int idecs_register(unsigned long io, unsigned long ctl, unsigned long irq, struct pcmcia_device *handle){    hw_regs_t hw;    memset(&hw, 0, sizeof(hw));    ide_init_hwif_ports(&hw, io, ctl, NULL);    hw.irq = irq;    hw.chipset = ide_pci;    hw.dev = &handle->dev;    return ide_register_hw_with_fixup(&hw, NULL, ide_undecoded_slave);}/*======================================================================    ide_config() is scheduled to run after a CARD_INSERTION event    is received, to configure the PCMCIA socket, and to make the    ide device available to the system.======================================================================*/#define CS_CHECK(fn, ret) \do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)static void ide_config(dev_link_t *link){    client_handle_t handle = link->handle;    ide_info_t *info = link->priv;    tuple_t tuple;    struct {	u_short		buf[128];	cisparse_t	parse;	config_info_t	conf;	cistpl_cftable_entry_t dflt;    } *stk = NULL;    cistpl_cftable_entry_t *cfg;    int i, pass, last_ret = 0, last_fn = 0, hd, is_kme = 0;    unsigned long io_base, ctl_base;    DEBUG(0, "ide_config(0x%p)\n", link);    stk = kzalloc(sizeof(*stk), GFP_KERNEL);    if (!stk) goto err_mem;    cfg = &stk->parse.cftable_entry;    tuple.TupleData = (cisdata_t *)&stk->buf;    tuple.TupleOffset = 0;    tuple.TupleDataMax = 255;    tuple.Attributes = 0;    tuple.DesiredTuple = CISTPL_CONFIG;    CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));    CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));    CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &stk->parse));    link->conf.ConfigBase = stk->parse.config.base;    link->conf.Present = stk->parse.config.rmask[0];    tuple.DesiredTuple = CISTPL_MANFID;    if (!pcmcia_get_first_tuple(handle, &tuple) &&	!pcmcia_get_tuple_data(handle, &tuple) &&	!pcmcia_parse_tuple(handle, &tuple, &stk->parse))	is_kme = ((stk->parse.manfid.manf == MANFID_KME) &&		  ((stk->parse.manfid.card == PRODID_KME_KXLC005_A) ||		   (stk->parse.manfid.card == PRODID_KME_KXLC005_B)));    /* Configure card */    link->state |= DEV_CONFIG;    /* Not sure if this is right... look up the current Vcc */    CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(handle, &stk->conf));    link->conf.Vcc = stk->conf.Vcc;    pass = io_base = ctl_base = 0;    tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;    tuple.Attributes = 0;    CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));    while (1) {    	if (pcmcia_get_tuple_data(handle, &tuple) != 0) goto next_entry;	if (pcmcia_parse_tuple(handle, &tuple, &stk->parse) != 0) goto next_entry;	/* Check for matching Vcc, unless we're desperate */	if (!pass) {	    if (cfg->vcc.present & (1 << CISTPL_POWER_VNOM)) {		if (stk->conf.Vcc != cfg->vcc.param[CISTPL_POWER_VNOM] / 10000)		    goto next_entry;	    } else if (stk->dflt.vcc.present & (1 << CISTPL_POWER_VNOM)) {		if (stk->conf.Vcc != stk->dflt.vcc.param[CISTPL_POWER_VNOM] / 10000)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品素人视频| 成人激情电影免费在线观看| 国产精品456| 国产精品久久久久精k8| 国产高清精品在线| 日韩色在线观看| 国产欧美一区二区精品久导航| 亚洲私人黄色宅男| 午夜精品久久久久久久久久| 久久99精品国产麻豆婷婷洗澡| 91搞黄在线观看| 日韩欧美一二三四区| 成人免费在线播放视频| 亚洲成人久久影院| 视频一区在线播放| 91麻豆精品国产综合久久久久久| 五月婷婷色综合| 日韩午夜在线播放| 国产精品一线二线三线| 亚洲人成网站色在线观看| 日本乱人伦aⅴ精品| 亚洲成人第一页| 欧美成人bangbros| 成人妖精视频yjsp地址| 一区二区视频在线看| 欧美精品 日韩| 国产精品18久久久久| 成人免费小视频| 91精品国产综合久久婷婷香蕉 | 亚洲丝袜另类动漫二区| 日本国产一区二区| 美女一区二区视频| 中文字幕一区二区在线观看| 欧美日韩一区二区三区四区| 国产自产视频一区二区三区| 亚洲女同女同女同女同女同69| 欧美日韩mp4| 国产91综合网| 亚洲欧美激情一区二区| 欧美一区二区三区视频在线观看 | 国产精品乡下勾搭老头1| 久久看人人爽人人| 国产成人免费视频精品含羞草妖精 | 欧美丝袜自拍制服另类| 国产精品99久久久久久有的能看| 一区二区三区在线视频播放| 亚洲国产精品传媒在线观看| 久久男人中文字幕资源站| 亚洲精品在线电影| 在线观看不卡视频| 天天av天天翘天天综合网| 欧美一区二区成人| 在线看国产一区二区| 精彩视频一区二区| 免费成人美女在线观看| 中文字幕免费不卡| 欧美色图激情小说| 色吧成人激情小说| 色天天综合色天天久久| 韩国欧美国产1区| 亚洲成人av中文| 国产精品不卡一区二区三区| 久久亚洲精品国产精品紫薇| 91精品国产91热久久久做人人| 91在线播放网址| 成人美女视频在线看| 美国十次综合导航| 奇米综合一区二区三区精品视频| 亚洲精品国产a| 亚洲柠檬福利资源导航| 日韩毛片精品高清免费| 欧美国产成人在线| 久久精品一区二区三区四区| 日韩欧美精品在线视频| 日韩网站在线看片你懂的| 在线综合视频播放| 欧美一区二区在线观看| 正在播放一区二区| 在线播放一区二区三区| 欧美日韩国产综合一区二区| 91官网在线观看| 欧美日韩精品综合在线| 欧美日韩高清一区二区三区| 欧美日韩国产精品成人| 欧美三级日韩三级| 欧美一区三区四区| 日韩亚洲欧美成人一区| 欧美国产精品专区| 久久久久久久久97黄色工厂| av成人免费在线| 国产精品一区二区久久精品爱涩 | 精品国产乱子伦一区| 日韩一级高清毛片| 亚洲精品久久嫩草网站秘色| 99久久精品一区| 精品国产露脸精彩对白| 看电影不卡的网站| 欧美日韩国产影片| 一区二区三区在线观看动漫| 成人动漫精品一区二区| 7777精品伊人久久久大香线蕉| 欧美日韩一区二区在线观看| 日韩一区二区三区免费看| 中文字幕精品一区| 性欧美大战久久久久久久久| 国产成人免费xxxxxxxx| 欧美日本乱大交xxxxx| 久久久噜噜噜久久中文字幕色伊伊| 国产精品久久久久久久久搜平片 | 中文字幕高清一区| 欧美一区二区三区喷汁尤物| 欧美一区二区在线观看| 欧美国产精品v| 国产高清久久久久| 日韩欧美专区在线| 亚洲精品美国一| 婷婷激情综合网| 狠狠v欧美v日韩v亚洲ⅴ| 国内成+人亚洲+欧美+综合在线| 国产成+人+日韩+欧美+亚洲| 日韩一区二区不卡| 亚洲综合色区另类av| 成人黄色小视频在线观看| 亚洲国产一区在线观看| 久久精品国产免费看久久精品| 久久久久久久久免费| 欧美精品vⅰdeose4hd| 韩国在线一区二区| 日韩中文字幕一区二区三区| 国产精品嫩草影院com| 欧美一区二区三区免费大片| 色婷婷久久久综合中文字幕 | 日韩精品一区二区在线观看| 亚洲黄色小视频| 一本一道久久a久久精品| 一区二区三区欧美视频| 99re在线精品| 日日夜夜精品视频免费| 精品少妇一区二区| 经典三级一区二区| 精品理论电影在线| 激情六月婷婷综合| 日韩一区二区三区视频在线观看| 成人小视频免费在线观看| 日韩欧美一级二级三级久久久| 久久99国产精品尤物| 亚洲欧美一区二区三区久本道91 | 久久久久国产精品麻豆ai换脸| 亚洲国产欧美一区二区三区丁香婷| 在线观看亚洲一区| 成人欧美一区二区三区1314 | 91香蕉视频污| 亚洲女同女同女同女同女同69| 一本一道久久a久久精品| 日韩主播视频在线| 日韩亚洲国产中文字幕欧美| 亚洲第一电影网| 精品国一区二区三区| 99精品国产视频| 天堂一区二区在线免费观看| 日韩精品一区在线观看| 国产精品久久综合| 欧美一级淫片007| 成人黄色一级视频| 亚洲chinese男男1069| 91国模大尺度私拍在线视频| 国内精品免费**视频| 成人免费一区二区三区视频| 色欧美片视频在线观看在线视频| 免费成人在线影院| 国产人久久人人人人爽| 91久久人澡人人添人人爽欧美| 国产一区二区三区四区五区美女| 国产精品久久久久影院老司| 91超碰这里只有精品国产| 石原莉奈在线亚洲二区| 一区二区三区精品在线观看| 久久亚洲私人国产精品va媚药| 色综合中文字幕国产 | 国产精品色婷婷久久58| 欧美日韩国产成人在线91| 白白色 亚洲乱淫| 日本不卡1234视频| 蜜桃视频一区二区三区在线观看| 日韩一区在线播放| 中文字幕欧美日本乱码一线二线 | 欧美剧在线免费观看网站| 国产美女视频91| 美国毛片一区二区三区| 石原莉奈在线亚洲三区| 香蕉影视欧美成人| 一区二区三区在线观看欧美| 精品av综合导航| 国产欧美一区二区三区在线看蜜臀| 在线播放视频一区| 日韩欧美国产一区在线观看| 在线播放国产精品二区一二区四区| 91色porny| 欧美亚洲精品一区| 欧美综合亚洲图片综合区|