2022-12-07 02:41:18 +02:00
|
|
|
#pragma once
|
|
|
|
|
2023-01-23 20:13:57 +02:00
|
|
|
#include <kernel/InterruptController.h>
|
2022-12-07 02:41:18 +02:00
|
|
|
|
2023-01-23 20:13:57 +02:00
|
|
|
class PIC final : public InterruptController
|
2022-12-07 02:41:18 +02:00
|
|
|
{
|
2023-01-23 20:13:57 +02:00
|
|
|
public:
|
2023-02-01 21:05:44 +02:00
|
|
|
virtual void eoi(uint8_t) override;
|
|
|
|
virtual void enable_irq(uint8_t) override;
|
|
|
|
virtual bool is_in_service(uint8_t) override;
|
2022-12-07 02:41:18 +02:00
|
|
|
|
2023-02-01 21:05:44 +02:00
|
|
|
static void remap();
|
|
|
|
static void mask_all();
|
2022-12-07 02:41:18 +02:00
|
|
|
|
2023-01-23 20:13:57 +02:00
|
|
|
private:
|
2023-02-01 21:05:44 +02:00
|
|
|
static PIC* create();
|
2023-01-23 20:13:57 +02:00
|
|
|
friend class InterruptController;
|
|
|
|
};
|