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-10-05 18:53:45 +03:00
|
|
|
namespace Kernel
|
2022-12-07 02:41:18 +02:00
|
|
|
{
|
|
|
|
|
2023-10-05 18:53:45 +03:00
|
|
|
class PIC final : public InterruptController
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
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-10-05 18:53:45 +03:00
|
|
|
static void remap();
|
|
|
|
static void mask_all();
|
|
|
|
|
|
|
|
private:
|
|
|
|
static PIC* create();
|
|
|
|
friend class InterruptController;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|