xaizek / tos (License: GPLv3 only) (since 2018-12-07)
This is an alternative version of sources presented as part of Write Your Own OS video tutorial by Viktor Engelmann.
<root> / src / hwcomm / interrupts.hpp (440879c9500956de3529b112cf2afd79f4d97586) (638B) (mode 100644) [raw]
#ifndef TOS__HWCOMM__INTERRUPTS_HPP__
#define TOS__HWCOMM__INTERRUPTS_HPP__

#include <cstdint>

class GlobalDescriptorTable;

namespace hwcomm {

class InterruptHandler
{
protected:
    InterruptHandler(std::uint8_t interruptNumber);
    ~InterruptHandler();

public:
    virtual std::uint32_t handleInterrupt(std::uint32_t esp) = 0;

private:
    std::uint8_t interruptNumber;
};

class InterruptManager
{
public:
    explicit InterruptManager(GlobalDescriptorTable &gdt);
    ~InterruptManager();

public:
    std::uint16_t getIRQBase() const;
    void activate();
    void deactivate();
};

}

#endif // TOS__HWCOMM__INTERRUPTS_HPP__
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/tos

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/tos

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master