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

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

?? pci.h

?? umon bootloader source code, support mips cpu.
?? H
?? 第 1 頁 / 共 4 頁
字號:
					   this is D0-D3, D0 being fully functional,
					   and D3 being off. */

	struct	device	dev;		/* Generic device interface */

	/* device is compatible with these IDs */
	unsigned short vendor_compatible[DEVICE_COUNT_COMPATIBLE];
	unsigned short device_compatible[DEVICE_COUNT_COMPATIBLE];

	int		cfg_size;	/* Size of configuration space */

	/*
	 * Instead of touching interrupt line and base address registers
	 * directly, use the values stored here. They might be different!
	 */
	unsigned int	irq;
	struct resource resource[DEVICE_COUNT_RESOURCE]; /* I/O and memory regions + expansion ROMs */

	/* These fields are used by common fixups */
	unsigned int	transparent:1;	/* Transparent PCI bridge */
	unsigned int	multifunction:1;/* Part of multi-function device */
	/* keep track of device state */
	unsigned int	is_enabled:1;	/* pci_enable_device has been called */
	unsigned int	is_busmaster:1; /* device is busmaster */
	
	u32		saved_config_space[16]; /* config space saved at suspend time */
	struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */
	int rom_attr_enabled;		/* has display of the rom attribute been enabled? */
	struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */
#ifdef CONFIG_PCI_NAMES
#define PCI_NAME_SIZE	255
#define PCI_NAME_HALF	__stringify(43)	/* less than half to handle slop */
	char		pretty_name[PCI_NAME_SIZE];	/* pretty name for users to see */
#endif
};

#define pci_dev_g(n) list_entry(n, struct pci_dev, global_list)
#define pci_dev_b(n) list_entry(n, struct pci_dev, bus_list)
#define	to_pci_dev(n) container_of(n, struct pci_dev, dev)
#define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL)

/*
 *  For PCI devices, the region numbers are assigned this way:
 *
 *	0-5	standard PCI regions
 *	6	expansion ROM
 *	7-10	bridges: address space assigned to buses behind the bridge
 */

#define PCI_ROM_RESOURCE 6
#define PCI_BRIDGE_RESOURCES 7
#define PCI_NUM_RESOURCES 11

#ifndef PCI_BUS_NUM_RESOURCES
#define PCI_BUS_NUM_RESOURCES 4
#endif
  
#define PCI_REGION_FLAG_MASK 0x0fU	/* These bits of resource flags tell us the PCI region flags */

struct pci_bus {
	struct list_head node;		/* node in list of buses */
	struct pci_bus	*parent;	/* parent bus this bridge is on */
	struct list_head children;	/* list of child buses */
	struct list_head devices;	/* list of devices on this bus */
	struct pci_dev	*self;		/* bridge device as seen by parent */
	struct resource	*resource[PCI_BUS_NUM_RESOURCES];
					/* address space routed to this bus */

	struct pci_ops	*ops;		/* configuration access functions */
	void		*sysdata;	/* hook for sys-specific extension */
	struct proc_dir_entry *procdir;	/* directory entry in /proc/bus/pci */

	unsigned char	number;		/* bus number */
	unsigned char	primary;	/* number of primary bridge */
	unsigned char	secondary;	/* number of secondary bridge */
	unsigned char	subordinate;	/* max number of subordinate buses */

	char		name[48];

	unsigned short  bridge_ctl;	/* manage NO_ISA/FBB/et al behaviors */
	unsigned short  pad2;
	struct device		*bridge;
	struct class_device	class_dev;
	struct bin_attribute	*legacy_io; /* legacy I/O for this bus */
	struct bin_attribute	*legacy_mem; /* legacy mem */
};

#define pci_bus_b(n)	list_entry(n, struct pci_bus, node)
#define to_pci_bus(n)	container_of(n, struct pci_bus, class_dev)

/*
 * Error values that may be returned by PCI functions.
 */
#define PCIBIOS_SUCCESSFUL		0x00
#define PCIBIOS_FUNC_NOT_SUPPORTED	0x81
#define PCIBIOS_BAD_VENDOR_ID		0x83
#define PCIBIOS_DEVICE_NOT_FOUND	0x86
#define PCIBIOS_BAD_REGISTER_NUMBER	0x87
#define PCIBIOS_SET_FAILED		0x88
#define PCIBIOS_BUFFER_TOO_SMALL	0x89

/* Low-level architecture-dependent routines */

struct pci_ops {
	int (*read)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *val);
	int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val);
};

struct pci_raw_ops {
	int (*read)(unsigned int domain, unsigned int bus, unsigned int devfn,
		    int reg, int len, u32 *val);
	int (*write)(unsigned int domain, unsigned int bus, unsigned int devfn,
		     int reg, int len, u32 val);
};

extern struct pci_raw_ops *raw_pci_ops;

struct pci_bus_region {
	unsigned long start;
	unsigned long end;
};

struct pci_dynids {
	spinlock_t lock;            /* protects list, index */
	struct list_head list;      /* for IDs added at runtime */
	unsigned int use_driver_data:1; /* pci_driver->driver_data is used */
};

struct module;
struct pci_driver {
	struct list_head node;
	char *name;
	struct module *owner;
	const struct pci_device_id *id_table;	/* must be non-NULL for probe to be called */
	int  (*probe)  (struct pci_dev *dev, const struct pci_device_id *id);	/* New device inserted */
	void (*remove) (struct pci_dev *dev);	/* Device removed (NULL if not a hot-plug capable driver) */
	int  (*suspend) (struct pci_dev *dev, pm_message_t state);	/* Device suspended */
	int  (*resume) (struct pci_dev *dev);	                /* Device woken up */
	int  (*enable_wake) (struct pci_dev *dev, pci_power_t state, int enable);   /* Enable wake event */
	void (*shutdown) (struct pci_dev *dev);

	struct device_driver	driver;
	struct pci_dynids dynids;
};

#define	to_pci_driver(drv) container_of(drv,struct pci_driver, driver)

/**
 * PCI_DEVICE - macro used to describe a specific pci device
 * @vend: the 16 bit PCI Vendor ID
 * @dev: the 16 bit PCI Device ID
 *
 * This macro is used to create a struct pci_device_id that matches a
 * specific device.  The subvendor and subdevice fields will be set to
 * PCI_ANY_ID.
 */
#define PCI_DEVICE(vend,dev) \
	.vendor = (vend), .device = (dev), \
	.subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID

/**
 * PCI_DEVICE_CLASS - macro used to describe a specific pci device class
 * @dev_class: the class, subclass, prog-if triple for this device
 * @dev_class_mask: the class mask for this device
 *
 * This macro is used to create a struct pci_device_id that matches a
 * specific PCI class.  The vendor, device, subvendor, and subdevice 
 * fields will be set to PCI_ANY_ID.
 */
#define PCI_DEVICE_CLASS(dev_class,dev_class_mask) \
	.class = (dev_class), .class_mask = (dev_class_mask), \
	.vendor = PCI_ANY_ID, .device = PCI_ANY_ID, \
	.subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID

/* 
 * pci_module_init is obsolete, this stays here till we fix up all usages of it
 * in the tree.
 */
#define pci_module_init	pci_register_driver

/* these external functions are only available when PCI support is enabled */
#ifdef CONFIG_PCI

extern struct bus_type pci_bus_type;

/* Do NOT directly access these two variables, unless you are arch specific pci
 * code, or pci core code. */
extern struct list_head pci_root_buses;	/* list of all known PCI buses */
extern struct list_head pci_devices;	/* list of all devices */

void pcibios_fixup_bus(struct pci_bus *);
int pcibios_enable_device(struct pci_dev *, int mask);
char *pcibios_setup (char *str);

/* Used only when drivers/pci/setup.c is used */
void pcibios_align_resource(void *, struct resource *,
			    unsigned long, unsigned long);
void pcibios_update_irq(struct pci_dev *, int irq);

/* Generic PCI functions used internally */

extern struct pci_bus *pci_find_bus(int domain, int busnr);
struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, struct pci_ops *ops, void *sysdata);
static inline struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata)
{
	return pci_scan_bus_parented(NULL, bus, ops, sysdata);
}
int pci_scan_slot(struct pci_bus *bus, int devfn);
struct pci_dev * pci_scan_single_device(struct pci_bus *bus, int devfn);
unsigned int pci_scan_child_bus(struct pci_bus *bus);
void pci_bus_add_device(struct pci_dev *dev);
void pci_bus_add_devices(struct pci_bus *bus);
void pci_name_device(struct pci_dev *dev);
char *pci_class_name(u32 class);
void pci_read_bridge_bases(struct pci_bus *child);
struct resource *pci_find_parent_resource(const struct pci_dev *dev, struct resource *res);
int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge);
extern struct pci_dev *pci_dev_get(struct pci_dev *dev);
extern void pci_dev_put(struct pci_dev *dev);
extern void pci_remove_bus(struct pci_bus *b);
extern void pci_remove_bus_device(struct pci_dev *dev);

/* Generic PCI functions exported to card drivers */

struct pci_dev *pci_find_device (unsigned int vendor, unsigned int device, const struct pci_dev *from);
struct pci_dev *pci_find_device_reverse (unsigned int vendor, unsigned int device, const struct pci_dev *from);
struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn);
int pci_find_capability (struct pci_dev *dev, int cap);
int pci_find_ext_capability (struct pci_dev *dev, int cap);
struct pci_bus * pci_find_next_bus(const struct pci_bus *from);

struct pci_dev *pci_get_device (unsigned int vendor, unsigned int device, struct pci_dev *from);
struct pci_dev *pci_get_subsys (unsigned int vendor, unsigned int device,
				unsigned int ss_vendor, unsigned int ss_device,
				struct pci_dev *from);
struct pci_dev *pci_get_slot (struct pci_bus *bus, unsigned int devfn);
struct pci_dev *pci_get_class (unsigned int class, struct pci_dev *from);
int pci_dev_present(const struct pci_device_id *ids);

int pci_bus_read_config_byte (struct pci_bus *bus, unsigned int devfn, int where, u8 *val);
int pci_bus_read_config_word (struct pci_bus *bus, unsigned int devfn, int where, u16 *val);
int pci_bus_read_config_dword (struct pci_bus *bus, unsigned int devfn, int where, u32 *val);
int pci_bus_write_config_byte (struct pci_bus *bus, unsigned int devfn, int where, u8 val);
int pci_bus_write_config_word (struct pci_bus *bus, unsigned int devfn, int where, u16 val);
int pci_bus_write_config_dword (struct pci_bus *bus, unsigned int devfn, int where, u32 val);

static inline int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val)
{
	return pci_bus_read_config_byte (dev->bus, dev->devfn, where, val);
}
static inline int pci_read_config_word(struct pci_dev *dev, int where, u16 *val)
{
	return pci_bus_read_config_word (dev->bus, dev->devfn, where, val);
}
static inline int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val)
{
	return pci_bus_read_config_dword (dev->bus, dev->devfn, where, val);
}
static inline int pci_write_config_byte(struct pci_dev *dev, int where, u8 val)
{
	return pci_bus_write_config_byte (dev->bus, dev->devfn, where, val);
}
static inline int pci_write_config_word(struct pci_dev *dev, int where, u16 val)
{
	return pci_bus_write_config_word (dev->bus, dev->devfn, where, val);
}
static inline int pci_write_config_dword(struct pci_dev *dev, int where, u32 val)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人a在线| 久久综合精品国产一区二区三区 | 国产精品久久久久一区 | 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日本成人中文字幕在线视频| 成人欧美一区二区三区白人| 精品欧美黑人一区二区三区| 欧美性色黄大片手机版| 成人三级在线视频| 久久se精品一区精品二区| 亚洲色图第一区| 国产欧美久久久精品影院| 日韩欧美国产综合在线一区二区三区 | 一区二区在线观看视频| 国产午夜一区二区三区| 日韩一卡二卡三卡四卡| 欧美日韩成人综合| 日本精品一区二区三区高清| 成人永久免费视频| 国产精华液一区二区三区| 美女爽到高潮91| 日本在线播放一区二区三区| 亚洲一区二区在线免费观看视频| 日韩一区欧美小说| 中文欧美字幕免费| 中文字幕精品综合| 久久精品夜夜夜夜久久| 精品国产乱码久久| 精品国产一区二区三区四区四| 制服丝袜亚洲播放| 宅男噜噜噜66一区二区66| 欧美色窝79yyyycom| 欧美在线不卡视频| 在线观看视频一区| 欧美日韩一级视频| 正在播放亚洲一区| 欧美顶级少妇做爰| 欧美军同video69gay| 欧美色电影在线| 欧美久久久久久久久久| 欧美日韩免费观看一区二区三区| 欧美日韩精品福利| 欧美一区二区精品久久911| 欧美顶级少妇做爰| 欧美mv和日韩mv的网站| 欧美成人精品3d动漫h| 欧美v国产在线一区二区三区| 日韩女优视频免费观看| 精品粉嫩aⅴ一区二区三区四区| 精品国产伦一区二区三区免费| 久久综合中文字幕| 亚洲国产精品99久久久久久久久| 日韩一区欧美小说| 亚洲成av人影院| 美女性感视频久久| 国产很黄免费观看久久| 丁香五精品蜜臀久久久久99网站 | 午夜精品久久久久久久99樱桃| 亚洲成人在线观看视频| 免费在线一区观看| 国产精品性做久久久久久| 91在线视频在线| 欧美三级在线播放| 精品美女一区二区三区| 国产精品午夜电影| 一区二区三区高清在线| 日韩精品一二区| 国内一区二区在线| 99久久精品久久久久久清纯| 欧美日韩视频不卡| 久久午夜羞羞影院免费观看| 亚洲人被黑人高潮完整版| 日韩在线一区二区三区| 国产一区二区三区观看| 91免费看片在线观看| 91精品国产免费| 欧美—级在线免费片| 亚洲一区电影777| 九九九精品视频| 一本一道久久a久久精品| 欧美久久久影院| 中文字幕高清一区| 亚洲第一狼人社区| 国产成人在线电影| 欧美少妇性性性| 国产欧美视频在线观看| 午夜激情综合网| 盗摄精品av一区二区三区| 欧美高清性hdvideosex| 欧美国产一区二区| 亚洲v日本v欧美v久久精品| 国产精品系列在线播放| 欧美日韩精品一区二区三区蜜桃| 国产视频一区二区在线观看| 亚洲成人av一区二区三区| 国产馆精品极品| 欧美电影影音先锋| 国产精品久久二区二区| 秋霞av亚洲一区二区三| 91麻豆产精品久久久久久| 亚洲精品在线网站| 偷拍一区二区三区四区| 99久久精品国产麻豆演员表| 精品国产乱码久久久久久蜜臀| 亚洲综合丁香婷婷六月香| 国产91丝袜在线18| 精品国产乱码久久久久久久久| 亚洲国产综合人成综合网站| 成人av小说网| 久久综合久久久久88| 青青草97国产精品免费观看 | 日韩和欧美一区二区| 99国产精品国产精品毛片| 久久综合色播五月| 青青国产91久久久久久| 欧美日韩成人在线一区| 一区二区三区免费网站| 成人91在线观看| 国产亚洲综合色| 美国三级日本三级久久99| 欧美三级日本三级少妇99| 亚洲欧洲三级电影| 成人免费av资源| 国产欧美一区二区精品秋霞影院| 激情综合五月婷婷| 欧美tickle裸体挠脚心vk| 日韩av电影免费观看高清完整版| 在线亚洲+欧美+日本专区| 亚洲人成精品久久久久| 99精品热视频| 国产精品护士白丝一区av| 国产高清久久久久| 久久久国产午夜精品| 国产精品一区二区果冻传媒| 2020国产精品自拍| 国产高清不卡一区| 欧美国产精品一区二区三区| 国产成人亚洲综合a∨猫咪| 久久久精品免费观看| 成人小视频在线观看| 国产精品久久久久毛片软件| 成人精品免费网站| 中文字幕视频一区| 一本色道久久综合亚洲精品按摩| 亚洲黄色在线视频| 欧美怡红院视频| 无码av免费一区二区三区试看 | 亚洲日本在线天堂| 99这里只有久久精品视频| 综合av第一页| 欧美在线观看你懂的| 日韩在线a电影| 日韩一级欧美一级| 国产一区二区三区不卡在线观看 | 精品国产一区二区三区不卡| 国产精品资源在线| 亚洲欧洲99久久| 在线视频你懂得一区| 天堂在线一区二区| 精品国产免费久久| 成人免费av在线| 亚洲国产精品久久久久秋霞影院 | 日韩精品一区二区三区swag | 蜜臂av日日欢夜夜爽一区| 精品国产亚洲在线| 大胆亚洲人体视频| 亚洲一级不卡视频| 日韩欧美成人一区| 成人伦理片在线| 性感美女极品91精品| 精品女同一区二区| 91社区在线播放| 蜜臀av一级做a爰片久久| 国产欧美日韩在线| 欧美日韩精品专区| 国产精品123区| 亚洲午夜久久久久久久久电影网 | 中文字幕一区二区日韩精品绯色| 欧美这里有精品| 精品一区二区免费视频| 亚洲色欲色欲www在线观看| 欧美日本视频在线| 成人免费精品视频| 日韩高清一区二区| 中文字幕一区二区三区四区不卡| 在线播放视频一区| 成人av先锋影音| 美女看a上一区| 亚洲综合在线电影| 国产欧美精品一区二区色综合朱莉| 欧美色偷偷大香| 成人免费视频免费观看| 五月开心婷婷久久| 亚洲免费在线电影| 国产亚洲综合色| 欧美一区二区三区性视频| 成人深夜在线观看| 激情欧美一区二区| 午夜激情久久久| 亚洲免费看黄网站|