~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/seabios/src/hw/pci.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __PCI_H
 
2
#define __PCI_H
 
3
 
 
4
#include "types.h" // u32
 
5
 
 
6
static inline u8 pci_bdf_to_bus(u16 bdf) {
 
7
    return bdf >> 8;
 
8
}
 
9
static inline u8 pci_bdf_to_devfn(u16 bdf) {
 
10
    return bdf & 0xff;
 
11
}
 
12
static inline u16 pci_bdf_to_busdev(u16 bdf) {
 
13
    return bdf & ~0x07;
 
14
}
 
15
static inline u8 pci_bdf_to_dev(u16 bdf) {
 
16
    return (bdf >> 3) & 0x1f;
 
17
}
 
18
static inline u8 pci_bdf_to_fn(u16 bdf) {
 
19
    return bdf & 0x07;
 
20
}
 
21
static inline u16 pci_to_bdf(int bus, int dev, int fn) {
 
22
    return (bus<<8) | (dev<<3) | fn;
 
23
}
 
24
static inline u16 pci_bus_devfn_to_bdf(int bus, u16 devfn) {
 
25
    return (bus << 8) | devfn;
 
26
}
 
27
 
 
28
#define foreachbdf(BDF, BUS)                                    \
 
29
    for (BDF=pci_next(pci_bus_devfn_to_bdf((BUS), 0)-1, (BUS))  \
 
30
         ; BDF >= 0                                             \
 
31
         ; BDF=pci_next(BDF, (BUS)))
 
32
 
 
33
void pci_config_writel(u16 bdf, u32 addr, u32 val);
 
34
void pci_config_writew(u16 bdf, u32 addr, u16 val);
 
35
void pci_config_writeb(u16 bdf, u32 addr, u8 val);
 
36
u32 pci_config_readl(u16 bdf, u32 addr);
 
37
u16 pci_config_readw(u16 bdf, u32 addr);
 
38
u8 pci_config_readb(u16 bdf, u32 addr);
 
39
void pci_config_maskw(u16 bdf, u32 addr, u16 off, u16 on);
 
40
int pci_next(int bdf, int bus);
 
41
int pci_probe_host(void);
 
42
void pci_reboot(void);
 
43
 
 
44
#endif // pci.h