/* * Copyright (c) 2021, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include namespace Kernel { class E1000ENetworkAdapter final : public E1000NetworkAdapter { public: static RefPtr try_to_initialize(PCI::DeviceIdentifier const&); virtual bool initialize() override; virtual ~E1000ENetworkAdapter() override; virtual StringView purpose() const override { return class_name(); } private: E1000ENetworkAdapter(PCI::Address, u8 irq, NonnullOwnPtr); virtual StringView class_name() const override { return "E1000ENetworkAdapter"sv; } virtual void detect_eeprom() override; virtual u32 read_eeprom(u8 address) override; }; }