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 / syscalls.cpp (a7ed765d65d65b9d58a0c43a9e893ea98740a834) (495B) (mode 100644) [raw]
#include "syscalls.hpp"

#include <new>

#include "hwcomm/interrupts.hpp"
#include "print.hpp"

SyscallHandler::SyscallHandler(std::uint8_t interruptNumber)
    : InterruptHandler(interruptNumber)
{
}

std::uint32_t
SyscallHandler::handleInterrupt(std::uint32_t esp)
{
    auto cpuState = new(reinterpret_cast<void *>(esp)) CPUState;

    switch (cpuState->eax()) {
        case 4:
            kprint(reinterpret_cast<const char *>(cpuState->ebx()));
            break;
    }

    return esp;
}
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