Date: Thu, 17 Oct 2024 14:32:14 GMT From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: ea4e4449b855 - main - apic: add ioapic_get_dev() method Message-ID: <202410171432.49HEWE9G026984@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ea4e4449b85593025c2eb31bb642732971d96225 commit ea4e4449b85593025c2eb31bb642732971d96225 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2024-10-12 22:52:44 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2024-10-17 14:31:50 +0000 apic: add ioapic_get_dev() method which returns apic device_t by apic_id, if there exists the pci representer Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/x86/include/apicvar.h | 1 + sys/x86/x86/io_apic.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/sys/x86/include/apicvar.h b/sys/x86/include/apicvar.h index ac6a82659e34..61c726f150df 100644 --- a/sys/x86/include/apicvar.h +++ b/sys/x86/include/apicvar.h @@ -258,6 +258,7 @@ void lapic_handle_intr(int vector, struct trapframe *frame); void lapic_handle_timer(struct trapframe *frame); int ioapic_get_rid(u_int apic_id, uint16_t *ridp); +device_t ioapic_get_dev(u_int apic_id); extern int x2apic_mode; extern int lapic_eoi_suppression; diff --git a/sys/x86/x86/io_apic.c b/sys/x86/x86/io_apic.c index 4337d1adc8a9..525547f9482a 100644 --- a/sys/x86/x86/io_apic.c +++ b/sys/x86/x86/io_apic.c @@ -1081,6 +1081,22 @@ ioapic_get_rid(u_int apic_id, uint16_t *ridp) return (0); } +device_t +ioapic_get_dev(u_int apic_id) +{ + struct ioapic *io; + + mtx_lock_spin(&icu_lock); + STAILQ_FOREACH(io, &ioapic_list, io_next) { + if (io->io_hw_apic_id == apic_id) + break; + } + mtx_unlock_spin(&icu_lock); + if (io != NULL) + return (io->pci_dev); + return (NULL); +} + /* * A new-bus driver to consume the memory resources associated with * the APICs in the system. On some systems ACPI or PnPBIOS system
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202410171432.49HEWE9G026984>