📄 pci.h
字号:
#define IORESOURCE_IO 0x00000100 /* Resource type */
#define IORESOURCE_MEM 0x00000200
#define IORESOURCE_IRQ 0x00000400
#define IORESOURCE_DMA 0x00000800
#define IORESOURCE_PREFETCH 0x00001000 /* No side effects */
#define IORESOURCE_READONLY 0x00002000
#define IORESOURCE_CACHEABLE 0x00004000
#define IORESOURCE_RANGELENGTH 0x00008000
#define IORESOURCE_SHADOWABLE 0x00010000
#define IORESOURCE_BUS_HAS_VGA 0x00080000
#define IORESOURCE_UNSET 0x20000000
#define IORESOURCE_AUTO 0x40000000
#define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */
#define PCI_FIXUP_HEADER 1 /* Called immediately after reading configuration header */
#define PCI_FIXUP_FINAL 2 /* Final phase of device fixups */
#define PCIPCI_FAIL 1
#define PCIPCI_TRITON 2
#define PCIPCI_NATOMA 4
#define PCIPCI_VIAETBF 8
#define PCIPCI_VSFX 16
extern struct pci_ops * pci_root_ops;
extern short pcibios_last_bus;
extern struct resource ioport_resource;
extern struct resource iomem_resource;
struct resource far * __request_region(struct resource far * parent, unsigned long start, unsigned long n,
const char far * name);
/* Convenience shorthand with allocation */
#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name))
#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))
long __check_region(struct resource far *, unsigned long, unsigned long);
void __release_region(struct resource far *, unsigned long, unsigned long);
#define check_region(start,n) __check_region(&ioport_resource, (start), (n))
#define release_region(start,n) __release_region(&ioport_resource, (start), (n))
#define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n))
#define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n))
extern long isa_dma_bridge_buggy;
extern long pci_pci_problems;
extern unsigned long pcibios_max_latency;
extern struct pci_bus * pci_root_bus;
extern struct irq_routing_table far * pirq_table;
void pcibios_init(void);
void pcibios_config_init(void);
struct pci_ops * pci_check_direct(void);
long pci_sanity_check(struct pci_ops *o);
struct pci_ops * pci_find_bios(void);
int pci_bus_exists(const struct list_head *list, long nr);
struct pci_bus far * pci_alloc_bus(void);
struct pci_bus far * pci_alloc_primary_bus(long bus);
u32 pci_size(u32 base, unsigned long mask);
void pci_read_bases(struct pci_dev far *dev, unsigned long howmany, long rom);
void pci_read_irq(struct pci_dev far *dev);
long pci_setup_device(struct pci_dev far * dev);
struct pci_dev far * pci_scan_device(struct pci_dev far *temp);
struct pci_dev far * pci_scan_slot(struct pci_dev far *temp);
void pcibios_fixup_ghosts(struct pci_bus far * b);
void pci_read_bridge_bases(struct pci_bus far * child);
void pcibios_fixup_bus(struct pci_bus far * b);
unsigned long pcibios_assign_all_busses(void);
struct pci_bus far * pci_add_new_bus(struct pci_bus far * parent, struct pci_dev far *dev,
long busnr);
long pci_scan_bridge(struct pci_bus far * bus, struct pci_dev far * dev, long max,
long pass);
unsigned long pci_do_scan_bus(struct pci_bus far *bus);
struct pci_bus far * pci_scan_bus(long bus, struct pci_ops *ops, void *sysdata);
struct pci_dev far * pci_find_subsys(unsigned long vendor, unsigned long device,
unsigned long ss_vendor, unsigned long ss_device,
const struct pci_dev far * from);
struct pci_dev far * pci_find_device(unsigned long vendor, unsigned long device,
const struct pci_dev far * from);
struct resource * far pci_find_parent_resource(const struct pci_dev far * dev,
struct resource far * res);
long pci_claim_resource(struct pci_dev far * dev, long resource);
long pci_get_interrupt_pin(struct pci_dev far * dev, struct pci_dev far **bridge);
int pcibios_set_irq_routing(struct pci_dev far * dev, long pin, long irq);
long pirq_bios_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
struct irq_routing_table far * pcibios_get_irq_routing_table(void);
struct pci_dev far * pci_find_slot(unsigned long bus, unsigned long devfn);
void pirq_find_router(void);
void pirq_peer_trick(void);
void pcibios_irq_init(void);
void pcibios_fixup_peer_bridges(void);
struct irq_info far * pirq_get_info(struct pci_dev far * dev);
void eisa_set_level_irq(unsigned long irq);
long pcibios_lookup_irq(struct pci_dev far * dev, long assign);
void pcibios_fixup_irqs(void);
long release_resource(struct resource far * old);
struct resource far * request_resource(struct resource far * root,
struct resource far * new);
void pcibios_allocate_bus_resources(struct list_head *bus_list);
void pcibios_allocate_resources(long pass);
long pci_assign_resource(struct pci_dev far * dev, long i);
long find_resource(struct resource far * root, struct resource far * new,
unsigned long size,unsigned long min, unsigned long max,
unsigned long align,
void (*alignf)(void far *, struct resource far *, unsigned long),
void far * alignf_data);
long allocate_resource(struct resource far * root, struct resource far * new,
unsigned long size,unsigned long min, unsigned long max,
unsigned long align,
void (*alignf)(void *, struct resource *, unsigned long),
void far * alignf_data);
void pcibios_update_resource(struct pci_dev far * dev, struct resource far * root,
struct resource far * res, long resource);
void pcibios_align_resource(void far * data, struct resource far * res,
unsigned long size);
long pci_assign_bus_resource(const struct pci_bus far * bus,struct pci_dev far * dev,
struct resource far * res,unsigned long size,unsigned long min,
unsigned long type_mask,long resno);
void pcibios_assign_resources(void);
void pcibios_resource_survey(void);
long pci_bios_find_device (unsigned short vendor, unsigned short device_id,
unsigned short index, unsigned char far * bus,
unsigned char far * device_fn);
void pcibios_sort(void);
void pci_init(void);
void pci_free_resources(struct pci_dev far * dev);
void pci_remove_device(struct pci_dev far * dev);
void pci_exit(void);
long pirq_piix_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_piix_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
unsigned long read_config_nybble(struct pci_dev far * router, unsigned long offset,
unsigned long nr);
void write_config_nybble(struct pci_dev far * router, unsigned long offset,
unsigned long nr, unsigned long val);
long pirq_ali_set(struct pci_dev *router, struct pci_dev *dev, long pirq, long irq);
long pirq_ali_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_via_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_via_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
long pirq_opti_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_opti_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
long pirq_cyrix_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_cyrix_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
long pirq_sis_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_sis_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
long pirq_vlsi_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_vlsi_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
long pirq_serverworks_get(struct pci_dev far * router, struct pci_dev far * dev,
long pirq);
long pirq_serverworks_set(struct pci_dev far * router, struct pci_dev far * dev,
long pirq, long irq);
long pirq_amd756_get(struct pci_dev far * router, struct pci_dev far * dev, long pirq);
long pirq_amd756_set(struct pci_dev far * router, struct pci_dev far * dev, long pirq,
long irq);
void pci_fixup_i450gx(struct pci_dev far * d);
void pci_fixup_i450nx(struct pci_dev far * d);
#if 0
void pci_fixup_serverworks(struct pci_dev far * d);
#endif
#if 1
void pci_fixup_compaq(struct pci_dev far *d);
#endif
void pci_fixup_umc_ide(struct pci_dev far * d);
void pci_fixup_ide_bases(struct pci_dev far * d);
void pci_fixup_ide_trash(struct pci_dev far *d);
void pci_fixup_latency(struct pci_dev far * d);
void pci_fixup_piix4_acpi(struct pci_dev far * d);
void pci_fixup_via_athlon_bug(struct pci_dev far * d);
void quirk_passive_release(struct pci_dev far * dev);
void quirk_isa_dma_hangs(struct pci_dev far * dev);
void quirk_nopcipci(struct pci_dev far * dev);
void quirk_triton(struct pci_dev far * dev);
void quirk_vialatency(struct pci_dev far * dev);
void quirk_viaetbf(struct pci_dev far * dev);
void quirk_vsfx(struct pci_dev far * dev);
void quirk_natoma(struct pci_dev far * dev);
void quirk_s3_64M(struct pci_dev far * dev);
void quirk_io_region(struct pci_dev far * dev, unsigned long region, unsigned long size,
long nr);
void quirk_ali7101_acpi(struct pci_dev far * dev);
void quirk_piix4_acpi(struct pci_dev far * dev);
void quirk_vt82c586_acpi(struct pci_dev far * dev);
void quirk_vt82c686_acpi(struct pci_dev far * dev);
#ifdef CONFIG_X86_IO_APIC
void quirk_via_ioapic(struct pci_dev far * dev);
#endif /* CONFIG_X86_IO_APIC */
void quirk_via_acpi(struct pci_dev far * d);
void quirk_via_irqpic(struct pci_dev far * dev);
void quirk_piix3_usb(struct pci_dev far * dev);
void quirk_vt82c598_id(struct pci_dev far * dev);
void quirk_cardbus_legacy(struct pci_dev far * dev);
void pci_do_fixups(struct pci_dev far * dev, int pass, struct pci_fixup far * f);
void pci_fixup_device(int pass, struct pci_dev far * dev);
struct pci_dev far * pci_find_class(unsigned long class, const struct pci_dev far * from);
long pci_find_capability(struct pci_dev far * dev, long cap);
long pci_set_power_state(struct pci_dev far * dev, long state);
#ifdef CONFIG_PM
long pci_save_state(struct pci_dev far * dev, u32 far * buffer);
long pci_restore_state(struct pci_dev far * dev, u32 far * buffer);
#endif
void pcibios_enable_irq(struct pci_dev far * dev);
long pcibios_enable_device(struct pci_dev far * dev);
long pci_enable_device(struct pci_dev far * dev);
void pci_disable_device(struct pci_dev far * dev);
long pci_enable_wake(struct pci_dev far * dev, u32 state, long enable);
const struct pci_device_id far * pci_match_device(const struct pci_device_id far * ids,
const struct pci_dev far * dev);
struct pci_driver far * pci_dev_driver(const struct pci_dev far * dev);
long pci_announce_device(struct pci_driver far * drv, struct pci_dev far * dev);
long pci_register_driver(struct pci_driver far * drv);
void pci_unregister_driver(struct pci_driver far * drv);
long pci_module_init(struct pci_driver far * drv);
void pcibios_set_master(struct pci_dev far * dev);
void pci_set_master(struct pci_dev far * dev);
#ifdef CONFIG_PM
long pci_pm_save_state_device(struct pci_dev far * dev,u32 state);
long pci_pm_suspend_device(struct pci_dev far * dev,u32 state);
long pci_pm_resume_device(struct pci_dev far * dev);
long pci_pm_save_state_bus(struct pci_bus far * bus,u32 state);
long pci_pm_suspend_bus(struct pci_bus *bus, u32 state);
long pci_pm_resume_bus(struct pci_bus far * bus);
long pci_pm_save_state(u32 state);
long pci_pm_suspend(u32 state);
long pci_pm_resume(void);
long pci_pm_callback(struct pm_dev far * pm_device,pm_request_t rqst,void *data);
#endif
long pci_conf1_read_config_byte(struct pci_dev *dev,long where,u8 *value);
long pci_conf1_read_config_word(struct pci_dev *dev,long where,u16 *value);
long pci_conf1_read_config_dword(struct pci_dev *dev,long where,u32 *value);
long pci_conf1_write_config_byte(struct pci_dev *dev,long where,u8 value);
long pci_conf1_write_config_word(struct pci_dev *dev,long where,u16 value);
long pci_conf1_write_config_dword(struct pci_dev *dev,long where,u32 value);
long pci_conf2_read_config_byte(struct pci_dev *dev,long where,u8 *value);
long pci_conf2_read_config_word(struct pci_dev *dev,long where,u16 *value);
long pci_conf2_read_config_dword(struct pci_dev *dev,long where,u32 *value);
long pci_conf2_write_config_byte(struct pci_dev *dev,long where,u8 value);
long pci_conf2_write_config_word(struct pci_dev *dev,long where,u16 value);
long pci_conf2_write_config_dword(struct pci_dev *dev,long where,u32 value);
long pci_bios_read_config_byte(struct pci_dev *dev,long where,u8 *value);
long pci_bios_read_config_word(struct pci_dev *dev,long where,u16 *value);
long pci_bios_read_config_dword(struct pci_dev *dev,long where,u32 *value);
long pci_bios_write_config_byte(struct pci_dev *dev,long where,u8 value);
long pci_bios_write_config_word(struct pci_dev *dev,long where,u16 value);
long pci_bios_write_config_dword(struct pci_dev *dev,long where,u32 value);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -