contur2
Loading...
Searching...
No Matches
contur Namespace Reference

Classes

struct  Block
 A single memory cell in the simulated architecture. More...
class  RegisterFile
 The CPU's register bank — holds REGISTER_COUNT (16) registers. More...
class  IClock
 Abstract clock interface for simulation time. More...
class  SimulationClock
 Concrete simulation clock — a simple monotonic tick counter. More...
class  Result
 A result type that holds either a success value of type T or an ErrorCode. More...
class  Result< void >
 Specialization of Result for void — operations that produce no value on success. More...
class  Event
 Type-safe event dispatcher supporting multiple subscribers. More...
class  ALU
 Arithmetic Logic Unit — performs all computational operations. More...
class  Cpu
 Concrete CPU implementation. More...
class  ICPU
 Abstract CPU interface. More...
class  Dispatcher
 Uniprocessor dispatcher implementation. More...
class  IDispatcher
 Interface for process lifecycle dispatch orchestration. More...
class  MPDispatcher
 Multiprocessor dispatcher delegating to child dispatchers. More...
struct  ExecutionResult
 Result of an execution burst returned by IExecutionEngine::execute(). More...
class  IExecutionEngine
 Abstract execution engine interface. More...
class  InterpreterEngine
 Bytecode interpreter execution engine. More...
class  BlockAllocator
 Allocates and frees fixed-size disk blocks. More...
struct  DirectoryEntry
 One child entry in a directory. More...
struct  FileDescriptor
 Descriptor handle returned by open(). More...
struct  OpenFileState
 Runtime state for one open descriptor. More...
class  FileDescriptorTable
 Descriptor table mapping integer handles to open-file state. More...
struct  InodeInfo
 Public inode metadata returned by stat(). More...
class  IFileSystem
 Abstract file-system interface. More...
struct  Inode
 Persistent metadata describing a filesystem node. More...
class  SimpleFS
 In-memory educational filesystem with inode + block allocation model. More...
class  ConsoleDevice
 Console output device. More...
class  DeviceManager
 Registry and dispatcher for I/O devices. More...
class  IDevice
 Abstract interface for a simulated I/O device. More...
class  NetworkDevice
 Simulated network (LAN) device. More...
class  IIpcChannel
 Common interface for IPC channels. More...
class  IpcManager
 Registry/mediator for named IPC channels. More...
struct  Message
 Typed message used by MessageQueue. More...
class  MessageQueue
 FIFO/priority message queue IPC channel. More...
class  Pipe
 Unidirectional byte-stream IPC channel with bounded capacity. More...
class  SharedMemory
 Named shared-memory IPC channel. More...
struct  ProcessConfig
 Configuration payload used to create a process. More...
struct  KernelSnapshot
 Lightweight kernel state snapshot for UI and diagnostics. More...
class  IKernel
 Top-level kernel facade. More...
struct  KernelDependencies
 Dependency bundle used to construct a Kernel. More...
class  Kernel
 Concrete kernel facade. More...
class  KernelBuilder
 Fluent builder that assembles Kernel dependencies. More...
class  ClockReplacement
 Clock (Second Chance) page replacement. More...
class  FifoReplacement
 First-In First-Out page replacement. More...
class  IMemory
 Abstract interface for linear addressable memory. More...
class  IMMU
 Abstract interface for the Memory Management Unit. More...
class  IPageReplacementPolicy
 Abstract interface for page replacement algorithms. More...
class  IVirtualMemory
 Abstract interface for virtual memory management. More...
class  LruReplacement
 Least Recently Used page replacement. More...
class  Mmu
 Concrete Memory Management Unit implementation. More...
class  OptimalReplacement
 Optimal page replacement (Belady's algorithm). More...
struct  PageTableEntry
 Entry in the page table — maps one virtual page to a physical frame. More...
class  PageTable
 Page table mapping virtual page numbers to physical frames. More...
class  PhysicalMemory
 Simulated physical RAM — a linear array of Block cells. More...
class  VirtualMemory
 Concrete virtual memory manager. More...
class  IProcess
 Read-only interface for inspecting process metadata. More...
struct  ProcessTiming
 Aggregate holding process timing statistics. More...
struct  ProcessAddressInfo
 Aggregate holding virtual memory address mapping for a process. More...
class  PCB
 Process Control Block — stores all metadata for a single process. More...
struct  Priority
 Composite priority descriptor for a process. More...
class  ProcessImage
 Full in-memory representation of a process. More...
class  FcfsPolicy
 First Come First Served (FCFS) scheduling policy. More...
class  HrrnPolicy
 Highest Response Ratio Next (HRRN) scheduling policy. More...
class  IScheduler
 Scheduler abstraction managing process state queues. More...
class  ISchedulingPolicy
 Strategy interface for scheduling algorithms. More...
class  MlfqPolicy
 Multilevel Feedback Queue (MLFQ) scheduling policy. More...
class  PriorityPolicy
 Dynamic-priority scheduling policy. More...
class  RoundRobinPolicy
 Round Robin scheduling policy. More...
class  Scheduler
 Scheduler host that manages process queues and policy decisions. More...
class  SpnPolicy
 Shortest Process Next (SPN) scheduling policy. More...
class  SrtPolicy
 Shortest Remaining Time (SRT) scheduling policy. More...
class  Statistics
 Tracks per-process burst history and EWMA burst prediction. More...
class  CriticalSection
 Critical-section adapter over a synchronization primitive. More...
struct  ResourceAllocation
 Per-process resource vector used by Banker's safety check. More...
class  DeadlockDetector
 Deadlock detection/prevention helper. More...
class  ISyncPrimitive
 Common interface for synchronization primitives. More...
class  Mutex
 Reentrant mutex with ownership tracking. More...
class  Semaphore
 Counting semaphore synchronization primitive. More...
class  ISyscallHandler
 Interface for syscall handling. More...
class  SyscallTable
 Dispatch table mapping SyscallId to handler functions. More...

Typedefs

using ProcessId = std::uint32_t
 Unique identifier for a process.
using MemoryAddress = std::uint32_t
 Represents a memory address (physical or virtual).
using Tick = std::uint64_t
 Simulation clock tick counter.
using RegisterValue = std::int32_t
 Value stored in a CPU register.
using DeviceId = std::uint16_t
 Unique identifier for an I/O device.
using SubscriptionId = std::uint64_t
 Unique identifier for an event subscription.
using ResourceId = std::uint32_t
 Unique identifier for a synchronization resource (mutex, semaphore, etc.).
using InodeId = std::uint32_t
 Unique identifier for a filesystem inode.
using FrameId = std::uint32_t
 Frame number in physical memory.
using SyscallHandlerFn
 Function signature used for syscall registration.

Enumerations

enum class  Instruction : std::uint8_t {
  Nop = 0 , Mov , Add , Sub ,
  Mul , Div , And , Or ,
  Xor , ShiftLeft , ShiftRight , Compare ,
  JumpEqual , JumpNotEqual , JumpGreater , JumpLess ,
  JumpGreaterEqual , JumpLessEqual , Push , Pop ,
  Call , Return , ReadMemory , WriteMemory ,
  Interrupt , Halt
}
 CPU instruction opcodes for the simulated architecture. More...
enum class  Interrupt : std::int32_t {
  Ok = 0 , Error = -1 , DivByZero = 3 , SystemCall = 11 ,
  PageFault = 14 , Exit = 16 , NetworkIO = 32 , Timer = 64 ,
  DeviceIO = 254
}
 Interrupt codes used by the CPU and kernel. More...
enum class  Register : std::uint8_t {
  R0 = 0 , R1 , R2 , R3 ,
  R4 , R5 , R6 , R7 ,
  R8 , R9 , R10 , R11 ,
  R12 , R13 , ProgramCounter = 14 , StackPointer = 15
}
 CPU register identifiers. More...
enum class  ErrorCode : std::int32_t {
  Ok = 0 , OutOfMemory , InvalidPid , InvalidAddress ,
  DivisionByZero , InvalidInstruction , SegmentationFault , DeviceError ,
  ProcessNotFound , PermissionDenied , Timeout , DeadlockDetected ,
  InvalidState , InvalidArgument , ResourceBusy , NotFound ,
  AlreadyExists , BufferFull , BufferEmpty , EndOfFile ,
  NotImplemented
}
 Error codes returned by kernel subsystem operations. More...
enum class  InodeType : std::uint8_t { File , Directory }
 Type of filesystem node. More...
enum class  StopReason : std::uint8_t {
  BudgetExhausted , ProcessExited , Error , Interrupted ,
  Halted
}
 Reason why the execution engine returned control to the dispatcher. More...
enum class  OpenMode : std::uint8_t {
  None = 0 , Read = 1U << 0 , Write = 1U << 1 , Create = 1U << 2 ,
  Truncate = 1U << 3 , Append = 1U << 4
}
 Open mode bit flags. More...
enum class  PriorityLevel : std::int8_t {
  Realtime = 0 , High = 1 , AboveNormal = 2 , Normal = 3 ,
  BelowNormal = 4 , Low = 5 , Idle = 6
}
 Discrete priority levels, from highest (Realtime) to lowest (Idle). More...
enum class  ProcessState : std::uint8_t {
  New , Ready , Running , Blocked ,
  Suspended , Terminated
}
 All possible states in a process lifecycle. More...
enum class  SyscallId : std::uint16_t {
  Exit = 0 , Write = 1 , Read = 2 , Fork = 3 ,
  Exec = 4 , Wait = 5 , Open = 10 , Close = 11 ,
  CreatePipe = 20 , SendMessage = 21 , ReceiveMessage = 22 , ShmCreate = 23 ,
  ShmAttach = 24 , MutexLock = 30 , MutexUnlock = 31 , SemWait = 32 ,
  SemSignal = 33 , GetPid = 40 , GetTime = 41 , Yield = 42
}
 Numeric identifiers for system calls. More...

Functions

constexpr std::string_view instructionName (Instruction instr) noexcept
 Returns the human-readable mnemonic for an instruction.
constexpr std::string_view interruptName (Interrupt intr) noexcept
 Returns the human-readable name for an interrupt code.
constexpr bool isArithmetic (Instruction instr) noexcept
 Returns true if the instruction is an arithmetic operation (Add, Sub, Mul, Div).
constexpr bool isLogic (Instruction instr) noexcept
 Returns true if the instruction is a logic/bitwise operation (And, Or, Xor, Shift).
constexpr bool isJump (Instruction instr) noexcept
 Returns true if the instruction is a conditional or unconditional jump.
constexpr bool isStackOp (Instruction instr) noexcept
 Returns true if the instruction affects the stack (Push, Pop, Call, Return).
constexpr bool isMemoryOp (Instruction instr) noexcept
 Returns true if the instruction involves memory access (ReadMemory, WriteMemory).
constexpr bool isHalt (Instruction instr) noexcept
 Returns true if the instruction terminates execution flow (Halt, Interrupt with Exit).
constexpr std::string_view registerName (Register reg) noexcept
 Returns the human-readable name of a register (e.g., "R0", "PC", "SP").
constexpr std::string_view errorCodeToString (ErrorCode code) noexcept
 Returns a human-readable name for the given error code.
constexpr OpenMode operator| (OpenMode lhs, OpenMode rhs) noexcept
 Returns bitwise OR combination of open-mode flags.
constexpr OpenMode operator& (OpenMode lhs, OpenMode rhs) noexcept
 Returns bitwise AND combination of open-mode flags.
constexpr bool hasOpenMode (OpenMode value, OpenMode flag) noexcept
 Returns whether the provided mode set contains a flag.
constexpr std::string_view priorityLevelName (PriorityLevel level) noexcept
 Returns a human-readable name for the given priority level.
constexpr bool isValidTransition (ProcessState from, ProcessState to) noexcept
 Validates whether a transition from one process state to another is legal.
constexpr std::string_view processStateName (ProcessState state) noexcept
 Returns a human-readable name for the given process state.

Variables

constexpr std::uint8_t INSTRUCTION_COUNT = 25
 Total number of defined instructions.
constexpr ProcessId INVALID_PID = 0
 Sentinel value indicating an invalid/unassigned process ID.
constexpr MemoryAddress NULL_ADDRESS = 0xFFFFFFFF
 Sentinel value indicating an invalid/null memory address.
constexpr FrameId INVALID_FRAME = 0xFFFFFFFF
 Sentinel value indicating an invalid frame.
constexpr InodeId INVALID_INODE_ID = 0
 Sentinel value indicating an invalid inode identifier.
constexpr std::uint8_t REGISTER_COUNT = 16
 Maximum number of CPU registers.
constexpr Tick DEFAULT_TIME_SLICE = 4
 Default time slice for Round Robin scheduling (in ticks).
constexpr ProcessId MAX_PROCESSES = 1024
 Maximum number of processes the kernel can manage.
constexpr std::int32_t NICE_MIN = -20
 Minimum nice value (highest boost).
constexpr std::int32_t NICE_MAX = 19
 Maximum nice value (lowest boost).
constexpr std::int32_t NICE_DEFAULT = 0
 Default nice value (no adjustment).

Typedef Documentation

◆ DeviceId

using contur::DeviceId = std::uint16_t

Unique identifier for an I/O device.

Definition at line 24 of file types.h.

◆ FrameId

using contur::FrameId = std::uint32_t

Frame number in physical memory.

Definition at line 43 of file types.h.

◆ InodeId

using contur::InodeId = std::uint32_t

Unique identifier for a filesystem inode.

Definition at line 33 of file types.h.

◆ MemoryAddress

using contur::MemoryAddress = std::uint32_t

Represents a memory address (physical or virtual).

Definition at line 15 of file types.h.

◆ ProcessId

using contur::ProcessId = std::uint32_t

Unique identifier for a process.

Definition at line 12 of file types.h.

◆ RegisterValue

using contur::RegisterValue = std::int32_t

Value stored in a CPU register.

Definition at line 21 of file types.h.

◆ ResourceId

using contur::ResourceId = std::uint32_t

Unique identifier for a synchronization resource (mutex, semaphore, etc.).

Definition at line 30 of file types.h.

◆ SubscriptionId

using contur::SubscriptionId = std::uint64_t

Unique identifier for an event subscription.

Definition at line 27 of file types.h.

◆ SyscallHandlerFn

Initial value:
std::function<Result<RegisterValue>(std::span<const RegisterValue> args, ProcessImage &caller)>
Full in-memory representation of a process.

Function signature used for syscall registration.

Definition at line 71 of file i_kernel.h.

◆ Tick

using contur::Tick = std::uint64_t

Simulation clock tick counter.

Definition at line 18 of file types.h.

Enumeration Type Documentation

◆ ErrorCode

enum class contur::ErrorCode : std::int32_t
strong

Error codes returned by kernel subsystem operations.

Enumerator
Ok 
OutOfMemory 
InvalidPid 
InvalidAddress 
DivisionByZero 
InvalidInstruction 
SegmentationFault 
DeviceError 
ProcessNotFound 
PermissionDenied 
Timeout 
DeadlockDetected 
InvalidState 
InvalidArgument 
ResourceBusy 
NotFound 
AlreadyExists 
BufferFull 
BufferEmpty 
EndOfFile 
NotImplemented 

Definition at line 20 of file error.h.

◆ InodeType

enum class contur::InodeType : std::uint8_t
strong

Type of filesystem node.

Enumerator
File 
Directory 

Definition at line 36 of file types.h.

◆ Instruction

enum class contur::Instruction : std::uint8_t
strong

CPU instruction opcodes for the simulated architecture.

Each instruction is a single byte, decoded by the CPU during the fetch-decode-execute cycle. The interpreter engine steps through these one at a time.

Enumerator
Nop 

No operation.

Mov 

Move immediate/register → register.

Add 

Add: dst = dst + src.

Sub 

Subtract: dst = dst - src.

Mul 

Multiply: dst = dst * src.

Div 

Divide: dst = dst / src (may raise DivByZero).

And 

Bitwise AND: dst = dst & src.

Or 

Bitwise OR: dst = dst | src.

Xor 

Bitwise XOR: dst = dst ^ src.

ShiftLeft 

Left shift: dst = dst << src.

ShiftRight 

Right shift: dst = dst >> src.

Compare 

Compare two registers (sets flags).

JumpEqual 

Jump if equal (ZF set).

JumpNotEqual 

Jump if not equal (ZF clear).

JumpGreater 

Jump if greater.

JumpLess 

Jump if less.

JumpGreaterEqual 

Jump if greater or equal.

JumpLessEqual 

Jump if less or equal.

Push 

Push register onto stack.

Pop 

Pop top of stack into register.

Call 

Call subroutine (push PC, jump).

Return 

Return from subroutine (pop PC).

ReadMemory 

Read value from memory address into register.

WriteMemory 

Write register value to memory address.

Interrupt 

Software interrupt (syscall, exit, etc.).

Halt 

Halt execution.

Definition at line 15 of file instruction.h.

◆ Interrupt

enum class contur::Interrupt : std::int32_t
strong

Interrupt codes used by the CPU and kernel.

Positive values represent hardware/timer interrupts. Negative values indicate error conditions. The CPU generates these during execution; the dispatcher and kernel handle them to drive process state transitions.

Enumerator
Ok 

No interrupt — normal execution.

Error 

Generic error.

DivByZero 

Division by zero fault.

SystemCall 

Software interrupt — syscall entry.

PageFault 

Page not present in physical memory.

Exit 

Process requests termination.

NetworkIO 

Network I/O event.

Timer 

Timer tick interrupt (preemption).

DeviceIO 

Generic device I/O interrupt.

Definition at line 16 of file interrupt.h.

◆ OpenMode

enum class contur::OpenMode : std::uint8_t
strong

Open mode bit flags.

Enumerator
None 
Read 
Write 
Create 
Truncate 
Append 

Definition at line 39 of file file_descriptor.h.

◆ PriorityLevel

enum class contur::PriorityLevel : std::int8_t
strong

Discrete priority levels, from highest (Realtime) to lowest (Idle).

Numerically lower values represent higher priority. This ordering allows natural comparison: Realtime < High < Normal < Low < Idle.

Enumerator
Realtime 

Highest — time-critical, preempts everything.

High 

Above-normal urgency.

AboveNormal 

Slightly above default.

Normal 

Default priority for user processes.

BelowNormal 

Slightly below default.

Low 

Background tasks.

Idle 

Lowest — runs only when nothing else is ready.

Definition at line 19 of file priority.h.

◆ ProcessState

enum class contur::ProcessState : std::uint8_t
strong

All possible states in a process lifecycle.

Enumerator
New 

Process has been created but not yet admitted to the ready queue.

Ready 

Process is waiting in the ready queue for CPU time.

Running 

Process is currently executing on the CPU.

Blocked 

Process is waiting for an event (I/O, sync primitive, etc.).

Suspended 

Process has been swapped out of main memory.

Terminated 

Process has finished execution (exit or error).

Definition at line 28 of file state.h.

◆ Register

enum class contur::Register : std::uint8_t
strong

CPU register identifiers.

14 general-purpose registers (R0–R13) plus two special-purpose:

  • ProgramCounter (R14): points to the next instruction to execute
  • StackPointer (R15): points to the top of the process stack
Enumerator
R0 
R1 
R2 
R3 
R4 
R5 
R6 
R7 
R8 
R9 
R10 
R11 
R12 
R13 
ProgramCounter 
StackPointer 

Definition at line 25 of file register_file.h.

◆ StopReason

enum class contur::StopReason : std::uint8_t
strong

Reason why the execution engine returned control to the dispatcher.

Enumerator
BudgetExhausted 

Tick budget ran out (preemption / time slice expired).

ProcessExited 

Process executed Halt or Int Exit — normal termination.

Error 

An unrecoverable error occurred (invalid instruction, segfault, etc.).

Interrupted 

A software/hardware interrupt requires kernel attention (syscall, I/O, page fault).

Halted 

Process was forcibly halted via halt().

Definition at line 19 of file execution_context.h.

◆ SyscallId

enum class contur::SyscallId : std::uint16_t
strong

Numeric identifiers for system calls.

Enumerator
Exit 

Terminate current process.

Write 

Write bytes to a kernel-managed sink.

Read 

Read bytes from a kernel-managed source.

Fork 

Create child process.

Exec 

Replace process image.

Wait 

Wait for child process.

Open 

Open file/device.

Close 

Close file/device.

CreatePipe 

Create IPC pipe.

SendMessage 

Send message to message queue.

ReceiveMessage 

Receive message from message queue.

ShmCreate 

Create shared-memory region.

ShmAttach 

Attach to shared-memory region.

MutexLock 

Lock mutex.

MutexUnlock 

Unlock mutex.

SemWait 

Wait/decrement semaphore.

SemSignal 

Signal/increment semaphore.

GetPid 

Query current process id.

GetTime 

Query simulation time.

Yield 

Voluntarily yield CPU.

Definition at line 11 of file syscall_ids.h.

Function Documentation

◆ errorCodeToString()

std::string_view contur::errorCodeToString ( ErrorCode code)
nodiscardconstexprnoexcept

Returns a human-readable name for the given error code.

Definition at line 46 of file error.h.

◆ hasOpenMode()

bool contur::hasOpenMode ( OpenMode value,
OpenMode flag )
nodiscardconstexprnoexcept

Returns whether the provided mode set contains a flag.

Parameters
valueComposite open mode.
flagSingle flag to test.
Returns
True when flag exists in value.

Definition at line 65 of file file_descriptor.h.

◆ instructionName()

std::string_view contur::instructionName ( Instruction instr)
nodiscardconstexprnoexcept

Returns the human-readable mnemonic for an instruction.

Definition at line 22 of file isa.h.

◆ interruptName()

std::string_view contur::interruptName ( Interrupt intr)
nodiscardconstexprnoexcept

Returns the human-readable name for an interrupt code.

Definition at line 83 of file isa.h.

◆ isArithmetic()

bool contur::isArithmetic ( Instruction instr)
nodiscardconstexprnoexcept

Returns true if the instruction is an arithmetic operation (Add, Sub, Mul, Div).

Definition at line 110 of file isa.h.

◆ isHalt()

bool contur::isHalt ( Instruction instr)
nodiscardconstexprnoexcept

Returns true if the instruction terminates execution flow (Halt, Interrupt with Exit).

Definition at line 145 of file isa.h.

◆ isJump()

bool contur::isJump ( Instruction instr)
nodiscardconstexprnoexcept

Returns true if the instruction is a conditional or unconditional jump.

Definition at line 124 of file isa.h.

◆ isLogic()

bool contur::isLogic ( Instruction instr)
nodiscardconstexprnoexcept

Returns true if the instruction is a logic/bitwise operation (And, Or, Xor, Shift).

Definition at line 117 of file isa.h.

◆ isMemoryOp()

bool contur::isMemoryOp ( Instruction instr)
nodiscardconstexprnoexcept

Returns true if the instruction involves memory access (ReadMemory, WriteMemory).

Definition at line 139 of file isa.h.

◆ isStackOp()

bool contur::isStackOp ( Instruction instr)
nodiscardconstexprnoexcept

Returns true if the instruction affects the stack (Push, Pop, Call, Return).

Definition at line 132 of file isa.h.

◆ isValidTransition()

bool contur::isValidTransition ( ProcessState from,
ProcessState to )
nodiscardconstexprnoexcept

Validates whether a transition from one process state to another is legal.

Legal transitions:

  • New → Ready
  • Ready → Running, Suspended
  • Running → Ready (preempted / time slice expired)
  • Running → Blocked (waiting for I/O or sync)
  • Running → Terminated (exit or fatal error)
  • Blocked → Ready (event completed)
  • Blocked → Suspended (swapped out while blocked)
  • Suspended → Ready (swapped back in)
Parameters
fromCurrent state.
toTarget state.
Returns
true if the transition is valid, false otherwise.

Definition at line 53 of file state.h.

◆ operator&()

OpenMode contur::operator& ( OpenMode lhs,
OpenMode rhs )
nodiscardconstexprnoexcept

Returns bitwise AND combination of open-mode flags.

Definition at line 56 of file file_descriptor.h.

◆ operator|()

OpenMode contur::operator| ( OpenMode lhs,
OpenMode rhs )
nodiscardconstexprnoexcept

Returns bitwise OR combination of open-mode flags.

Definition at line 50 of file file_descriptor.h.

◆ priorityLevelName()

std::string_view contur::priorityLevelName ( PriorityLevel level)
nodiscardconstexprnoexcept

Returns a human-readable name for the given priority level.

Definition at line 108 of file priority.h.

◆ processStateName()

std::string_view contur::processStateName ( ProcessState state)
nodiscardconstexprnoexcept

Returns a human-readable name for the given process state.

Definition at line 79 of file state.h.

◆ registerName()

std::string_view contur::registerName ( Register reg)
nodiscardconstexprnoexcept

Returns the human-readable name of a register (e.g., "R0", "PC", "SP").

Definition at line 111 of file register_file.h.

Variable Documentation

◆ DEFAULT_TIME_SLICE

Tick contur::DEFAULT_TIME_SLICE = 4
constexpr

Default time slice for Round Robin scheduling (in ticks).

Definition at line 61 of file types.h.

◆ INSTRUCTION_COUNT

std::uint8_t contur::INSTRUCTION_COUNT = 25
constexpr

Total number of defined instructions.

Definition at line 19 of file isa.h.

◆ INVALID_FRAME

FrameId contur::INVALID_FRAME = 0xFFFFFFFF
constexpr

Sentinel value indicating an invalid frame.

Definition at line 52 of file types.h.

◆ INVALID_INODE_ID

InodeId contur::INVALID_INODE_ID = 0
constexpr

Sentinel value indicating an invalid inode identifier.

Definition at line 55 of file types.h.

◆ INVALID_PID

ProcessId contur::INVALID_PID = 0
constexpr

Sentinel value indicating an invalid/unassigned process ID.

Definition at line 46 of file types.h.

◆ MAX_PROCESSES

ProcessId contur::MAX_PROCESSES = 1024
constexpr

Maximum number of processes the kernel can manage.

Definition at line 64 of file types.h.

◆ NICE_DEFAULT

std::int32_t contur::NICE_DEFAULT = 0
constexpr

Default nice value (no adjustment).

Definition at line 37 of file priority.h.

◆ NICE_MAX

std::int32_t contur::NICE_MAX = 19
constexpr

Maximum nice value (lowest boost).

Definition at line 34 of file priority.h.

◆ NICE_MIN

std::int32_t contur::NICE_MIN = -20
constexpr

Minimum nice value (highest boost).

Definition at line 31 of file priority.h.

◆ NULL_ADDRESS

MemoryAddress contur::NULL_ADDRESS = 0xFFFFFFFF
constexpr

Sentinel value indicating an invalid/null memory address.

Definition at line 49 of file types.h.

◆ REGISTER_COUNT

std::uint8_t contur::REGISTER_COUNT = 16
constexpr

Maximum number of CPU registers.

Definition at line 58 of file types.h.