coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
path.h
Go to the documentation of this file.
1 #ifndef DEVICE_PATH_H
2 #define DEVICE_PATH_H
3 
4 #include <stdint.h>
5 
23 
24  /*
25  * When adding path types to this table, please also update the
26  * DEVICE_PATH_NAMES macro below.
27  */
28 };
29 
30 #define DEVICE_PATH_NAMES { \
31  "DEVICE_PATH_NONE", \
32  "DEVICE_PATH_ROOT", \
33  "DEVICE_PATH_PCI", \
34  "DEVICE_PATH_PNP", \
35  "DEVICE_PATH_I2C", \
36  "DEVICE_PATH_APIC", \
37  "DEVICE_PATH_DOMAIN", \
38  "DEVICE_PATH_CPU_CLUSTER", \
39  "DEVICE_PATH_CPU", \
40  "DEVICE_PATH_CPU_BUS", \
41  "DEVICE_PATH_IOAPIC", \
42  "DEVICE_PATH_GENERIC", \
43  "DEVICE_PATH_SPI", \
44  "DEVICE_PATH_USB", \
45  "DEVICE_PATH_MMIO", \
46  "DEVICE_PATH_GPIO", \
47 }
48 
49 struct domain_path {
50  unsigned int domain;
51 };
52 
53 struct pci_path {
54  unsigned int devfn;
55 };
56 
57 struct pnp_path {
58  unsigned int port;
59  unsigned int device;
60 };
61 
62 struct i2c_path {
63  unsigned int device;
64  unsigned int mode_10bit;
65 };
66 
67 struct spi_path {
68  unsigned int cs;
69 };
70 
71 struct apic_path {
72  unsigned int apic_id;
73  unsigned int package_id;
74  unsigned int node_id;
75  unsigned int core_id;
76  unsigned int thread_id;
77 };
78 
79 struct ioapic_path {
80  unsigned int ioapic_id;
81 };
82 
84  unsigned int cluster;
85 };
86 
87 struct cpu_path {
88  unsigned int id;
89 };
90 
91 struct cpu_bus_path {
92  unsigned int id;
93 };
94 
95 struct generic_path {
96  unsigned int id;
97  unsigned int subid;
98 };
99 
100 struct usb_path {
101  unsigned int port_type;
102  unsigned int port_id;
103 };
104 
105 struct mmio_path {
107 };
108 
109 struct gpio_path {
110  unsigned int id;
111 };
112 
113 struct device_path {
114  enum device_path_type type;
115  union {
116  struct pci_path pci;
117  struct pnp_path pnp;
118  struct i2c_path i2c;
119  struct apic_path apic;
120  struct ioapic_path ioapic;
121  struct domain_path domain;
123  struct cpu_path cpu;
124  struct cpu_bus_path cpu_bus;
125  struct generic_path generic;
126  struct spi_path spi;
127  struct usb_path usb;
128  struct mmio_path mmio;
129  struct gpio_path gpio;
130  };
131 };
132 
133 #define DEVICE_PATH_MAX 40
134 #define BUS_PATH_MAX (DEVICE_PATH_MAX+10)
135 
136 extern const char *dev_path_name(enum device_path_type type);
137 
138 #endif /* DEVICE_PATH_H */
unsigned int type
Definition: edid.c:57
device_path_type
Definition: path.h:6
@ DEVICE_PATH_I2C
Definition: path.h:11
@ DEVICE_PATH_SPI
Definition: path.h:19
@ DEVICE_PATH_CPU_BUS
Definition: path.h:16
@ DEVICE_PATH_GPIO
Definition: path.h:22
@ DEVICE_PATH_PNP
Definition: path.h:10
@ DEVICE_PATH_PCI
Definition: path.h:9
@ DEVICE_PATH_CPU_CLUSTER
Definition: path.h:14
@ DEVICE_PATH_ROOT
Definition: path.h:8
@ DEVICE_PATH_APIC
Definition: path.h:12
@ DEVICE_PATH_DOMAIN
Definition: path.h:13
@ DEVICE_PATH_IOAPIC
Definition: path.h:17
@ DEVICE_PATH_USB
Definition: path.h:20
@ DEVICE_PATH_GENERIC
Definition: path.h:18
@ DEVICE_PATH_NONE
Definition: path.h:7
@ DEVICE_PATH_CPU
Definition: path.h:15
@ DEVICE_PATH_MMIO
Definition: path.h:21
const char * dev_path_name(enum device_path_type type)
Definition: device_util.c:925
cpu_cluster
Definition: clock.h:91
unsigned long uintptr_t
Definition: stdint.h:21
Definition: path.h:71
unsigned int package_id
Definition: path.h:73
unsigned int thread_id
Definition: path.h:76
unsigned int node_id
Definition: path.h:74
unsigned int apic_id
Definition: path.h:72
unsigned int core_id
Definition: path.h:75
unsigned int id
Definition: path.h:92
unsigned int cluster
Definition: path.h:84
Definition: path.h:87
unsigned int id
Definition: path.h:88
struct usb_path usb
Definition: path.h:127
struct apic_path apic
Definition: path.h:119
struct domain_path domain
Definition: path.h:121
struct cpu_path cpu
Definition: path.h:123
struct i2c_path i2c
Definition: path.h:118
struct cpu_bus_path cpu_bus
Definition: path.h:124
struct mmio_path mmio
Definition: path.h:128
struct generic_path generic
Definition: path.h:125
struct ioapic_path ioapic
Definition: path.h:120
struct pnp_path pnp
Definition: path.h:117
struct spi_path spi
Definition: path.h:126
struct pci_path pci
Definition: path.h:116
enum device_path_type type
Definition: path.h:114
unsigned int domain
Definition: path.h:50
unsigned int subid
Definition: path.h:97
unsigned int id
Definition: path.h:96
unsigned int id
Definition: path.h:110
Definition: pinmux.c:36
Definition: path.h:62
unsigned int device
Definition: path.h:63
unsigned int mode_10bit
Definition: path.h:64
unsigned int ioapic_id
Definition: path.h:80
uintptr_t addr
Definition: path.h:106
Definition: path.h:53
unsigned int devfn
Definition: path.h:54
Definition: path.h:57
unsigned int port
Definition: path.h:58
unsigned int device
Definition: path.h:59
Definition: path.h:67
unsigned int cs
Definition: path.h:68
Definition: path.h:100
unsigned int port_type
Definition: path.h:101
unsigned int port_id
Definition: path.h:102