From c5573d62b7b5179cb48144b71f91955464873e6e Mon Sep 17 00:00:00 2001 From: Fabio Aiuto Date: Sat, 10 Sep 2022 14:23:38 +0200 Subject: [PATCH] include/device/path.h: use functions for enabled cpu selection Add function defs and prototypes of functions checking whether a device is {a cpu,an enabled cpu} TEST: compile test and qemu executed successfully with coreinfo payload Signed-off-by: Fabio Aiuto Change-Id: Iabc0e59d604ae4572921518a8dad47dc3d149f81 Reviewed-on: https://review.coreboot.org/c/coreboot/+/67502 Tested-by: build bot (Jenkins) Reviewed-by: Felix Held --- src/device/device_util.c | 11 +++++++++++ src/include/device/device.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/device/device_util.c b/src/device/device_util.c index 45dbccc28d..1e13bca151 100644 --- a/src/device/device_util.c +++ b/src/device/device_util.c @@ -957,3 +957,14 @@ void log_resource(const char *type, const struct device *dev, const struct resou srcfile, line, type, dev_path(dev), res->index, res->base, resource_end(res), res->size / KiB); } + +bool is_cpu(const struct device *cpu) +{ + return cpu->path.type == DEVICE_PATH_APIC && + cpu->bus->dev->path.type == DEVICE_PATH_CPU_CLUSTER; +} + +bool is_enabled_cpu(const struct device *cpu) +{ + return is_cpu(cpu) && cpu->enabled; +} diff --git a/src/include/device/device.h b/src/include/device/device.h index cd08f1db68..a375639d82 100644 --- a/src/include/device/device.h +++ b/src/include/device/device.h @@ -207,6 +207,8 @@ bool dev_is_active_bridge(struct device *dev); void add_more_links(struct device *dev, unsigned int total_links); bool is_dev_enabled(const struct device *const dev); bool is_devfn_enabled(unsigned int devfn); +bool is_cpu(const struct device *cpu); +bool is_enabled_cpu(const struct device *cpu); /* Returns whether there is a hotplug port on the path to the given device. */ extern bool dev_path_hotplug(const struct device *);