Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
syscall_conventions.h
Go to the documentation of this file.
1
3
4#pragma once
5
6#include <array>
7#include <cstdint>
8
10
11namespace contur {
12
14 constexpr std::uint8_t SYSCALL_ID_REGISTER = static_cast<std::uint8_t>(Register::R0);
15
17 constexpr std::array<std::uint8_t, 4> SYSCALL_ARG_REGISTERS = {
18 static_cast<std::uint8_t>(Register::R1),
19 static_cast<std::uint8_t>(Register::R2),
20 static_cast<std::uint8_t>(Register::R3),
21 static_cast<std::uint8_t>(Register::R4),
22 };
23
25 constexpr std::uint8_t SYSCALL_STATUS_REGISTER = static_cast<std::uint8_t>(Register::R7);
26
27} // namespace contur
Definition block.h:15
constexpr std::uint8_t SYSCALL_STATUS_REGISTER
Register used to store syscall status/error code.
constexpr std::uint8_t SYSCALL_ID_REGISTER
Register used to pass syscall id and receive return value.
constexpr std::array< std::uint8_t, 4 > SYSCALL_ARG_REGISTERS
Registers used to pass syscall arguments.
Register enum class and RegisterFile — the CPU's register bank.