blob: 356895c7fd444fbc9d110ae8aadd5f362ad54409 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#ifndef TEACHOS_ARCH_X86_64_DEVICES_LEGACY_PIT_HPP
#define TEACHOS_ARCH_X86_64_DEVICES_LEGACY_PIT_HPP
#include <kapi/devices/device.hpp>
#include <kapi/interrupts.hpp>
#include <cstddef>
#include <cstdint>
namespace arch::devices
{
struct legacy_pit : kapi::devices::device, kapi::interrupts::handler
{
legacy_pit(std::size_t major, std::uint32_t frequency_in_hz);
auto init() -> bool override;
auto handle_interrupt(std::uint32_t irq_number) -> kapi::interrupts::status override;
private:
std::uint32_t m_irq_number{};
std::uint32_t m_frequency_in_hz{};
std::uint64_t m_ticks{};
};
} // namespace arch::devices
#endif
|