1 /* SPDX-License-Identifier: GPL-2.0-only */
8 enum device_path_type
{
16 DEVICE_PATH_CPU_CLUSTER
,
29 * When adding path types to this table, please also update the
30 * DEVICE_PATH_NAMES macro below.
34 #define DEVICE_PATH_NAMES { \
41 "DEVICE_PATH_DOMAIN", \
42 "DEVICE_PATH_CPU_CLUSTER", \
44 "DEVICE_PATH_CPU_BUS", \
45 "DEVICE_PATH_IOAPIC", \
46 "DEVICE_PATH_GENERIC", \
52 "DEVICE_PATH_GICC_V3", \
56 unsigned int domain_id
;
70 unsigned int mode_10bit
;
78 unsigned int initial_lapicid
;
80 unsigned int package_id
;
83 unsigned int thread_id
;
84 unsigned char core_type
;
88 unsigned int ioapic_id
;
91 struct cpu_cluster_path
{
103 struct generic_path
{
109 unsigned int port_type
;
110 unsigned int port_id
;
125 struct gicc_v3_path
{
126 unsigned long long mpidr
;
127 unsigned int vgic_mi
;
128 unsigned int pi_gsiv
;
132 enum device_path_type type
;
137 struct apic_path apic
;
138 struct ioapic_path ioapic
;
139 struct domain_path domain
;
140 struct cpu_cluster_path cpu_cluster
;
142 struct cpu_bus_path cpu_bus
;
143 struct generic_path generic
;
146 struct mmio_path mmio
;
147 struct gpio_path gpio
;
148 struct mdio_path mdio
;
149 struct gicc_v3_path gicc_v3
;
153 #define DEVICE_PATH_MAX 40
154 #define BUS_PATH_MAX (DEVICE_PATH_MAX+10)
156 extern const char *dev_path_name(enum device_path_type type
);
158 #endif /* DEVICE_PATH_H */