Kernel: Prevent confusing silent misuse of PCI::Address

This commit is contained in:
Ben Wiederhake 2020-08-22 17:02:15 +02:00 committed by Andreas Kling
parent b4f26c2b31
commit 9a0cd9a50d
Notes: sideshowbarker 2024-07-19 03:17:56 +09:00

View file

@ -89,7 +89,7 @@ inline const LogStream& operator<<(const LogStream& stream, const ID value)
}
struct Address {
public:
Address() {}
Address() { }
Address(u16 seg)
: m_seg(seg)
, m_bus(0)
@ -116,6 +116,13 @@ public:
bool is_null() const { return !m_bus && !m_slot && !m_function; }
operator bool() const { return !is_null(); }
// Disable default implementations that would use surprising integer promotion.
bool operator==(const Address&) const = delete;
bool operator<=(const Address&) const = delete;
bool operator>=(const Address&) const = delete;
bool operator<(const Address&) const = delete;
bool operator>(const Address&) const = delete;
u16 seg() const { return m_seg; }
u8 bus() const { return m_bus; }
u8 slot() const { return m_slot; }