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

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

?? pci-compat.h

?? linux device driver源碼
?? H
字號:
/* This header only makes sense when included in a 2.0 compile *//* * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source code in this file can be freely used, adapted, * and redistributed in source or binary form, so long as an * acknowledgment appears in derived source files.  The citation * should list that the code comes from the book "Linux Device * Drivers" by Alessandro Rubini and Jonathan Corbet, published * by O'Reilly & Associates.   No warranty is attached; * we cannot take responsibility for errors or fitness for use. */#ifndef _PCI_COMPAT_H_#define _PCI_COMPAT_H_#ifdef __KERNEL__/* * This only makes sense if <linux/pci.h> is already included, *and* * we are using 2.0.*/#if defined(LINUX_PCI_H) && (LINUX_VERSION_CODE & 0xffff00) == 0x020000#include <linux/bios32.h> /* pcibios_* */#include <linux/malloc.h> /* kmalloc *//* fake the new pci interface based on the old one: encapsulate bus/devfn */struct pci_fake_dev {  int index;  unsigned short vendor, device;  void *driver_data; /* net i.f. drivers make it point to net_device */  u8 bus;  u8 devfn;};#define pci_dev pci_fake_dev /* the other pci_dev is unused by 2.0 drivers */#ifndef PCI_HEADER_TYPE_NORMAL /* These definitions are missing from 2.0 */#  define PCI_HEADER_TYPE_NORMAL 0#  define PCI_HEADER_TYPE_BRIDGE 1#  define   PCI_PRIMARY_BUS         0x18    /* Primary bus number */#  define   PCI_SECONDARY_BUS       0x19    /* Secondary bus number */#  define   PCI_SUBORDINATE_BUS     0x1a    /* Highest bus behind the bridge */#  define PCI_HEADER_TYPE_CARDBUS 2#  define   PCI_CB_PRIMARY_BUS      0x18    /* PCI bus number */#  define   PCI_CB_CARD_BUS         0x19    /* CardBus bus number */#  define   PCI_CB_SUBORDINATE_BUS  0x1a    /* Subordinate bus number */#endifextern inline struct pci_dev *pci_find_device(unsigned int vendorid,					      unsigned int devid,					      struct pci_dev *from){    struct pci_dev *pptr = kmalloc(sizeof(*pptr), GFP_KERNEL);    int index = 0;    int ret;    if (!pptr) return NULL;    if (from) index = from->index + 1;    pptr->index = index;    ret = pcibios_find_device(vendorid, devid, index,			      &pptr->bus, &pptr->devfn);    if (ret) { kfree(pptr); return NULL; }    /* fill other fields */    pcibios_read_config_word(pptr->bus, pptr->devfn,			     PCI_VENDOR_ID, &pptr->vendor);    pcibios_read_config_word(pptr->bus, pptr->devfn,			     PCI_DEVICE_ID, &pptr->device);    return pptr;}#if 0/* this used to be only the base class, Hmm... better not offer it*/extern inline struct pci_dev *pci_find_class(unsigned int class,					     struct pci_dev *from){    struct pci_dev *pptr = kmalloc(sizeof(*pptr), GFP_KERNEL);    int index = 0;    int ret;    if (!pptr) return NULL;    if (from) index = from->index + 1;    pptr->index = index;    ret = pcibios_find_class(class, index,			      &pptr->bus, &pptr->devfn);    if (ret) { kfree(pptr); return NULL; }    /* fill other fields */    pcibios_read_config_word(pptr->bus, pptr->devfn,			     PCI_VENDOR_ID, &pptr->vendor);    pcibios_read_config_word(pptr->bus, pptr->devfn,			     PCI_DEVICE_ID, &pptr->device);    return pptr;}#endif/* this is used by pciregions instead */extern inline struct pci_dev *pci_find_slot (unsigned int bus,					     unsigned int devfn){    struct pci_dev *pptr = kmalloc(sizeof(*pptr), GFP_KERNEL);    int index = 0;    unsigned short vendor;    int ret;    if (!pptr) return NULL;    pptr->index = index; /* 0 */    ret = pcibios_read_config_word(bus, devfn, PCI_VENDOR_ID, &vendor);    if (ret /* == PCIBIOS_DEVICE_NOT_FOUND or whatever error */	|| vendor==0xffff || vendor==0x0000) {        kfree(pptr); return NULL;    }    printk("ok (%i, %i %x)\n", bus, devfn, vendor);    /* fill other fields */    pptr->bus = bus;    pptr->devfn = devfn;    pcibios_read_config_word(pptr->bus, pptr->devfn,			     PCI_VENDOR_ID, &pptr->vendor);    pcibios_read_config_word(pptr->bus, pptr->devfn,			     PCI_DEVICE_ID, &pptr->device);    return pptr;}/* this is not used in the real (2.2, 2.4) implementation, but we need it */extern inline void pci_release_device(struct pci_dev *dev){    kfree(dev);}/* struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn); */#define pci_present pcibios_presentextern inline intpci_read_config_byte(struct pci_dev *dev, u8 where, u8 *val){    return pcibios_read_config_byte(dev->bus, dev->devfn, where, val);}extern inline intpci_read_config_word(struct pci_dev *dev, u8 where, u16 *val){    return pcibios_read_config_word(dev->bus, dev->devfn, where, val);}extern inline intpci_read_config_dword(struct pci_dev *dev, u8 where, u32 *val){    return pcibios_read_config_dword(dev->bus, dev->devfn, where, val);}extern inline intpci_write_config_byte(struct pci_dev *dev, u8 where, u8 val){    return pcibios_write_config_byte(dev->bus, dev->devfn, where, val);}extern inline intpci_write_config_word(struct pci_dev *dev, u8 where, u16 val){    return pcibios_write_config_word(dev->bus, dev->devfn, where, val);}extern inline intpci_write_config_dword(struct pci_dev *dev, u8 where, u32 val){    return pcibios_write_config_dword(dev->bus, dev->devfn, where, val);}extern inline void pci_set_master(struct pci_dev *dev){    u16 cmd;    pcibios_read_config_word(dev->bus, dev->devfn, PCI_COMMAND, &cmd);    cmd |= PCI_COMMAND_MASTER;    pcibios_write_config_word(dev->bus, dev->devfn, PCI_COMMAND, cmd);}#endif /* version 2.0 and pci.h included */#endif /* __KERNEL__ */#endif /* _PCI_COMPAT_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线播放中文字幕一区| 国产精品中文字幕一区二区三区| 日韩黄色一级片| 国产精品日韩精品欧美在线| 国产视频一区二区在线| 中文字幕亚洲区| av不卡一区二区三区| 欧美三级韩国三级日本三斤| 日韩美女视频一区二区| www.成人在线| 亚洲第一主播视频| 欧美日韩国产电影| 成人动漫一区二区在线| 久久天天做天天爱综合色| 最新日韩av在线| 免费看黄色91| 欧美丰满少妇xxxxx高潮对白| 国产亚洲精品超碰| 国产精品无码永久免费888| 免费日韩伦理电影| 欧美色精品天天在线观看视频| 91精品福利在线一区二区三区| 国产精品欧美经典| 日本视频免费一区| 国产成人高清在线| 香蕉久久夜色精品国产使用方法 | 狠狠色狠狠色综合| 欧美精品黑人性xxxx| 亚洲小说春色综合另类电影| 国产日产精品一区| 欧洲在线/亚洲| 色综合久久天天| 国产精品69毛片高清亚洲| 亚洲国产日日夜夜| 欧美电影免费观看高清完整版在线| 欧美激情艳妇裸体舞| 蜜桃久久av一区| 欧美一激情一区二区三区| 免费在线看成人av| 欧美岛国在线观看| 久久av资源站| 欧美国产亚洲另类动漫| 亚洲成人中文在线| 日韩欧美你懂的| 国产精品综合在线视频| 欧美国产精品v| 美女视频黄免费的久久 | 国产精品一二二区| 亚洲一区二区3| 日韩三级电影网址| 成人黄色一级视频| 日韩成人av影视| 国产色爱av资源综合区| 久久国产剧场电影| 在线视频国产一区| 中文字幕亚洲区| 欧美手机在线视频| 国产精品综合久久| 中文字幕中文乱码欧美一区二区| 欧美一区二区不卡视频| 国产激情精品久久久第一区二区| 韩国av一区二区三区在线观看| 精品在线观看免费| av不卡在线观看| 欧美三电影在线| 国产亚洲精品7777| 天天色天天爱天天射综合| 最新日韩在线视频| 久久品道一品道久久精品| 色噜噜狠狠色综合中国| 国产成人免费高清| 国产乱子伦视频一区二区三区 | 欧美视频一区在线| 亚洲成av人片| 中文字幕日韩精品一区| 7777精品伊人久久久大香线蕉 | 欧美一二三区在线| 极品少妇xxxx精品少妇| 国产精品久久久久影院色老大| 色婷婷久久一区二区三区麻豆| 国产精品一区二区久久精品爱涩| 日韩国产欧美在线视频| 日韩精品一二区| 国产精品自拍av| 成人综合激情网| 成人午夜av影视| 日本成人在线不卡视频| 中文字幕制服丝袜成人av| 欧洲视频一区二区| 欧美日韩黄色一区二区| 欧美一区二区三区免费视频| 日韩午夜中文字幕| 亚洲久草在线视频| 亚洲国产aⅴ天堂久久| 丁香六月久久综合狠狠色| 欧美一二区视频| 日韩精品电影在线观看| 欧美视频日韩视频| 亚洲成a人v欧美综合天堂| 色播五月激情综合网| 亚洲黄一区二区三区| 99精品久久99久久久久| 日韩你懂的在线观看| 国产精品视频一二| 国产精品自拍三区| 日韩精品专区在线影院重磅| 久久综合精品国产一区二区三区| 国产精品久久影院| 久久精品国产第一区二区三区| 丰满白嫩尤物一区二区| 欧美日韩国产一二三| 欧美一区欧美二区| 精品欧美一区二区三区精品久久| 一区二区视频在线看| 国产真实乱对白精彩久久| 国产成人精品www牛牛影视| 韩国女主播一区| 成人精品在线视频观看| 国产综合色在线视频区| 久久精品国产99久久6| 免费不卡在线视频| 久久99精品国产麻豆婷婷| 床上的激情91.| 久久伊人蜜桃av一区二区| 日韩av电影天堂| 欧美高清hd18日本| 日本不卡高清视频| 久久精品一区蜜桃臀影院| 在线观看一区二区精品视频| 奇米精品一区二区三区四区| 亚洲成人777| 亚洲激情av在线| 成人免费在线播放视频| 精品久久久久久最新网址| 色哟哟精品一区| 久久99九九99精品| 欧美日韩亚洲综合在线| 日本aⅴ亚洲精品中文乱码| 91精品麻豆日日躁夜夜躁| 丝袜a∨在线一区二区三区不卡| 欧美在线色视频| 日韩在线观看一区二区| 精品嫩草影院久久| 99国产精品久久久久久久久久 | 顶级嫩模精品视频在线看| 3d动漫精品啪啪| 99久久99精品久久久久久| 在线综合视频播放| 亚洲免费av网站| 欧美日韩黄视频| 国产成人精品在线看| 一区二区三区日韩精品视频| 在线91免费看| 91福利在线看| 欧美午夜电影一区| 日韩电影一区二区三区| 午夜精品福利一区二区蜜股av| 中文字幕综合网| 亚洲国产va精品久久久不卡综合| 亚洲.国产.中文慕字在线| 五月婷婷综合在线| 国精产品一区一区三区mba视频| 久久99精品久久久久| av中文字幕亚洲| 国产91丝袜在线播放九色| 亚洲精品成人精品456| 久久久综合视频| 538在线一区二区精品国产| 99精品热视频| 成人av网站大全| 国产伦理精品不卡| 国产在线播放一区| 国产一区二区三区四区在线观看| 日韩一区欧美小说| 日韩女优av电影| 欧美日韩精品三区| 成人午夜在线视频| 欧美性生交片4| 久久综合久色欧美综合狠狠| 欧美视频一区二区在线观看| 亚洲欧洲在线观看av| 亚洲高清视频中文字幕| 国产精品国产成人国产三级| 久久影院午夜论| 国产精品久久一级| 亚洲人一二三区| 中文字幕中文字幕在线一区 | 中文成人av在线| 国产精品拍天天在线| 亚洲欧美视频在线观看视频| 亚洲免费观看在线观看| 五月天一区二区| 丁香婷婷综合网| 欧美在线视频你懂得| 精品国产乱码久久久久久老虎| 国产亚洲一二三区| 中文字幕一区二区三区四区| 亚洲国产一区在线观看| 韩国v欧美v日本v亚洲v| 91视频在线看|