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

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

?? 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)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色黄大片| 大尺度一区二区| 91精品国产综合久久精品app| 亚洲欧美激情一区二区| 91高清视频在线| 婷婷六月综合亚洲| 日韩精品专区在线影院重磅| 国产一区二区三区国产| 日本一区免费视频| 一本色道a无线码一区v| 性感美女极品91精品| 91精品国产综合久久婷婷香蕉| 秋霞电影网一区二区| 久久综合九色综合97_久久久| 国产成人精品免费一区二区| 一区二区三区在线观看欧美| 91麻豆精品国产无毒不卡在线观看 | 久久午夜色播影院免费高清| 国产麻豆日韩欧美久久| 亚洲免费观看高清完整版在线观看 | 日韩欧美色综合网站| 欧美日韩一区二区三区视频| 偷窥少妇高潮呻吟av久久免费| 日韩一区二区免费高清| 成人av小说网| 日日夜夜免费精品视频| 久久久99精品免费观看| 欧美视频完全免费看| 久久不见久久见中文字幕免费| 亚洲国产成人午夜在线一区| 欧美日韩精品一区二区三区蜜桃| 日本不卡视频在线| 亚洲精品亚洲人成人网| 精品裸体舞一区二区三区| 色综合久久天天| 狠狠色伊人亚洲综合成人| 亚洲欧美另类小说视频| 久久综合九色综合97婷婷女人| 91色九色蝌蚪| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 香蕉久久夜色精品国产使用方法| 欧美精品一区二区高清在线观看| 在线观看日韩高清av| 国产在线日韩欧美| 天天综合色天天综合| 一区在线播放视频| 久久久久久久久一| 91精品国产综合久久福利软件| 91啪亚洲精品| 国产精品亚洲第一区在线暖暖韩国 | 91免费精品国自产拍在线不卡| 久久电影网站中文字幕| 图片区小说区区亚洲影院| 自拍偷拍亚洲综合| 亚洲国产精品黑人久久久| 91精品国产综合久久小美女| 欧美在线小视频| 91麻豆免费看| 粗大黑人巨茎大战欧美成人| 久久成人久久爱| 男人的j进女人的j一区| 亚洲国产精品一区二区尤物区| 国产精品理论在线观看| 久久久久88色偷偷免费| 久久这里只有精品视频网| 日韩欧美中文字幕精品| 91精品国产综合久久香蕉麻豆| 欧美色视频在线观看| 日本韩国一区二区| 欧美写真视频网站| 欧美午夜精品久久久久久超碰 | 亚洲裸体在线观看| 中文字幕在线不卡视频| 国产精品视频看| 激情五月播播久久久精品| 天堂成人免费av电影一区| 午夜视频一区二区三区| 天堂久久一区二区三区| 亚洲va国产天堂va久久en| 午夜精品久久久久久不卡8050| 一区二区三区国产精品| 亚洲综合另类小说| 亚洲成a人片在线观看中文| 亚洲一区在线电影| 性久久久久久久| 日本欧美大码aⅴ在线播放| 免费日韩伦理电影| 国产美女在线观看一区| 成人一区二区视频| 一道本成人在线| 欧美日韩色一区| 欧美一区二区三区在| 久久先锋影音av鲁色资源网| 日本一区二区三区在线不卡| 亚洲欧美日韩在线| 午夜欧美2019年伦理| 久久激情五月激情| 成人h精品动漫一区二区三区| 99久久精品国产导航| 欧美色区777第一页| 日韩免费福利电影在线观看| 久久久另类综合| 亚洲精品日韩一| 日韩电影一二三区| 成人听书哪个软件好| 在线观看欧美黄色| 欧美大尺度电影在线| 国产精品全国免费观看高清| 亚洲综合在线五月| 久久精品国产一区二区三| 不卡av在线网| 日韩一区二区电影| 国产精品免费网站在线观看| 亚洲国产日韩在线一区模特| 国产做a爰片久久毛片| 日本国产一区二区| 精品伦理精品一区| 一级做a爱片久久| 国产真实乱子伦精品视频| 91蜜桃婷婷狠狠久久综合9色| 欧美精品一二三四| 欧美国产精品v| 日韩国产在线观看一区| 成人午夜视频在线观看| 日韩一区二区电影在线| 亚洲人成网站影音先锋播放| 日韩国产精品久久久久久亚洲| 风间由美一区二区三区在线观看| 欧美性猛交xxxx乱大交退制版| 26uuu精品一区二区| 亚洲成精国产精品女| 成人免费不卡视频| 亚洲成av人影院在线观看网| 国产精品2024| 日韩一区二区在线观看| 一区二区三区免费网站| 风间由美一区二区三区在线观看 | 亚洲午夜影视影院在线观看| 国产一区二区在线观看视频| 欧美性猛交xxxx乱大交退制版| 日本一区二区免费在线| 七七婷婷婷婷精品国产| 在线观看免费亚洲| 亚洲欧美在线aaa| 国产高清成人在线| 精品欧美一区二区久久| 日韩电影一区二区三区四区| 欧美亚洲综合一区| 亚洲欧美日韩在线播放| 成人高清免费在线播放| 久久精品人人做人人综合 | 26uuu国产在线精品一区二区| 五月婷婷欧美视频| 欧美制服丝袜第一页| 亚洲蜜臀av乱码久久精品蜜桃| 国产不卡视频一区二区三区| 欧美精品一区男女天堂| 免费一区二区视频| 日韩三级视频在线看| 午夜精品久久久久久久99水蜜桃 | 日本不卡在线视频| 欧美中文字幕亚洲一区二区va在线 | 99久久精品国产一区二区三区| 久久久五月婷婷| 狠狠色丁香久久婷婷综合丁香| 日韩一区二区影院| 激情综合色丁香一区二区| 欧美一区二区三区日韩| 捆绑变态av一区二区三区| 91麻豆精品国产91久久久久 | 日韩一区二区在线看片| 奇米影视一区二区三区小说| 91精品视频网| 日韩成人dvd| 日韩精品中文字幕一区| 国内久久精品视频| 国产精品天美传媒沈樵| av在线这里只有精品| 亚洲精选视频免费看| 欧美三区免费完整视频在线观看| 亚洲电影中文字幕在线观看| 宅男噜噜噜66一区二区66| 精品一二线国产| 国产欧美精品一区二区色综合 | 婷婷六月综合网| 欧美一级久久久| 国产剧情一区在线| 中文字幕一区二区不卡| 色综合久久久久久久| 日本午夜一本久久久综合| 精品国产乱码久久久久久浪潮| 国产成人免费视频精品含羞草妖精| 欧美国产综合色视频| 色噜噜久久综合| 日日嗨av一区二区三区四区| 久久久久99精品国产片| 91天堂素人约啪| 欧美色老头old∨ideo| 精品一区二区三区的国产在线播放 | 综合av第一页|