NeKernel dev
Loading...
Searching...
No Matches
Kernel Namespace Reference

USER_PROCESS inline definitions. More...

Namespaces

namespace  Detail
 Implementation details namespace.
namespace  Detect
namespace  HAL
 Hardware Abstraction Layer.
namespace  HeFS
namespace  HEL
namespace  Indexer
namespace  NeFS
namespace  PCI
namespace  Qr
namespace  Types
namespace  Utils

Classes

class  ACPI_ADDRESS
class  Array
class  ArrayList
class  ATADeviceInterface
 ATA device interface class. More...
class  Atom
class  BinaryMutex
 Access control class, which locks a task until one is done. More...
class  ChronoInterface
 a Chronometer interface used for benchmarking. More...
class  ConfigHeader
class  DeviceInterface
 Device contract interface, represents an HW device. More...
class  DiskSwapInterface
 Virtual memory interface to swap memory chunks onto disk. More...
class  DMAFactory
class  DMAWrapper
struct  DriveTrait
 Media drive trait type. More...
class  ErrorOr
struct  FBDevicePacket
 Framebuffer device interface packet. More...
struct  FILEMGR_RESTRICT
 restrict information about the file descriptor. More...
class  FileStream
class  Function
struct  GPT_PARTITION_ENTRY
struct  GPT_PARTITION_TABLE
struct  HAL_HARDWARE_THREAD
 Hardware thread information structure. More...
struct  HAL_NVME_BAR_0
struct  HAL_NVME_QUEUE
class  HardwareThread
class  HardwareThreadScheduler
class  HardwareTimer
class  HeFileSystemParser
 HeFS filesystem parser class. More...
struct  HEFS_BOOT_NODE
 HeFS Boot node. More...
struct  HEFS_INDEX_NODE
 HeFS index node. More...
struct  HEFS_INDEX_NODE_DIRECTORY
 HeFS directory node. More...
struct  HEFS_JOURNAL_NODE
 Journal Node structure. More...
struct  HPETAddressStructure
struct  HPETHeader
class  ICodec
 Encoding interface, used as a proxy to convert T to Char* Used to cast A to B or B to A. More...
class  IDylibObject
 Dylib class object. A handle to a shared library. More...
class  IFilesystemMgr
 Filesystem Mgr Interface class. More...
struct  IMBCIHost
 MBCI Host header. More...
class  IOArray
class  IOBuf
 Input Output abstract class. Used mainly to communicate between OS to hardware. More...
struct  IPC_ADDR
 128-bit IPC address. More...
struct  IPC_MSG
 IPC connection header, message cannot be greater than 6K. More...
class  IPFactory
 IP Creation helpers. More...
class  ISchedulable
 Scheduler interface, represents a scheduler object. More...
class  Json
 JavaScript object class. More...
struct  JsonStreamReader
 Json stream reader helper. More...
class  KERNEL_TASK
 Equivalent of USER_PROCESS, but for kernel tasks. More...
class  KernelTaskHelper
 Equivalent of UserProcessHelper, but for kernel tasks. More...
class  KString
 Kernel string class, not dynamic. More...
class  KStringBuilder
class  LoaderInterface
 This interface is used to make loader contracts (MSCOFF, PEF). More...
class  LockDelegate
 Locking delegate class, hangs until limit. More...
class  MacAddressGetter
 This retrieves the MAC address of the device. More...
class  MountpointInterface
 Mounted drives interface. More...
class  MutableArray
class  MutableLinkedList
class  NE_DEVICE< const Char * >
class  NE_DEVICE< const Utf8Char * >
class  NE_DEVICE< FBDevicePacket * >
 Framebuffer device interface. More...
class  NE_DEVICE< MountpointInterface * >
 AHCIDeviceInterface class. More...
class  NE_DEVICE< NetworkDeviceCommand >
 Network device interface, establishes a connection to the NIC. More...
class  NE_DYLIB_OBJECT
 Shared Library class Load library from this class. More...
class  NE_POWER_FACTORY
class  NeFileSystemHelper
class  NeFileSystemJournal
 Journal class for NeFS. More...
class  NeFileSystemParser
struct  NetworkDeviceCommand
class  NonNullRef
class  NonNullRefPtr
class  NullableMutableArray
class  OwnPtr
struct  PageMgr
class  PE32Loader
struct  PEFCommandHeader
struct  PEFContainer
class  PEFLoader
class  Pmm
class  PowerFactory
struct  PRDT
 Physical Region Descriptor Table. More...
struct  PROCESS_FILE_TREE
struct  PROCESS_HEAP_TREE
struct  PROCESS_IMAGE
 Helper class to contain a process's image and blob. More...
struct  PROCESS_SPECIAL_TREE
class  PTEWrapper
class  RawIPAddress
class  RawIPAddress6
 IPv6 address. More...
class  RecoveryFactory
 Dumping factory class. More...
class  Ref
class  RSDP
class  RSDT
class  SDT
class  SoftwareTimer
class  Stream
struct  SWAP_DISK_HEADER
 Swap disk header, containing information about the held virtual memory. More...
class  TimerInterface
class  User
 System User class. More...
class  USER_PROCESS
class  UserProcessHelper
 USER_PROCESS helper class, which contains needed utilities for the scheduler. More...
class  UserProcessScheduler
 USER_PROCESS scheduler class. The main class which you call to schedule user processes. More...
class  UserProcessTeam
 Processs Team (contains multiple processes inside it.) Equivalent to a process batch. More...
class  Variant

Typedefs

typedef UInt64 ATime
 Access time type.
typedef UInt32 FBCoord2x2
typedef UInt32 FBDim2x2
typedef UInt32 FBColorProfile
typedef UInt32 FBFlags
typedef Kernel::Int32 hal_ap_kind
 hardware thread indentification type.
typedef struct Kernel::HAL_HARDWARE_THREAD HAL_HARDWARE_THREAD
 Hardware thread information structure.
typedef void(* rtl_main_kind) (void)
 Main process entrypoint.
typedef void(* rtl_cxx_ctor_kind) (void)
 C++ Constructor entrypoint.
typedef void(* rtl_cxx_dtor_kind) (void)
 C++ Destructor entrypoint.
typedef UInt64 PTime
typedef Int64 ProcessID
 Local Process identifier.
using ProcessTime = UInt64
using PID = Int64
using ImagePtr = VoidPtr
 Helper type to describe a code image.
typedef Char rt_debug_cmd[kDebugCmdLen]
typedef DriveTraitDriveTraitPtr
 ! drive as a device.
typedef VoidPtr NodePtr
using FileStreamASCII = FileStream<Char>
using FileStreamUTF8 = FileStream<Utf8Char>
using FileStreamUTF16 = FileStream<WideChar>
typedef UInt64 CursorType
using ThreadID = UInt32
typedef enum ThreadKind ThreadKind
typedef IPEFDylibObject * IDylibRef
typedef PID KID
typedef Int32 KPCError
typedef BooleanLockPtr
 Lock condition pointer.
using IOArray16 = IOArray<kMaxPorts>
typedef struct Kernel::PEFContainer PEFContainer
typedef struct Kernel::PEFCommandHeader PEFCommandHeader
typedef UInt64 Semaphore[kSemaphoreCount]
 Semaphore structure used for synchronization.
typedef CharUserPublicKey
typedef Char UserPublicKeyType
using voidPtr = void*
using VoidPtr = void*
using nullPtr = decltype(nullptr)
using NullPtr = decltype(nullptr)
using Int = int
using Int32 = int
using UShort = unsigned short
using UInt16 = unsigned short
using Short = short
using Int16 = short
using UInt = unsigned int
using UInt32 = unsigned int
using Long = __INT64_TYPE__
using Int64 = __INT64_TYPE__
using ULong = __UINT64_TYPE__
using UInt64 = __UINT64_TYPE__
using Boolean = bool
using Bool = bool
using Char = char
using UChar = unsigned char
using UInt8 = unsigned char
using SSize = Int64
using SSizeT = Int64
using Size = __SIZE_TYPE__
using SizeT = __SIZE_TYPE__
using IntPtr = __INTPTR_TYPE__
using UIntPtr = __UINTPTR_TYPE__
using IntFast = __INT_FAST32_TYPE__
using IntFast64 = __INT_FAST64_TYPE__
using PtrDiff = __PTRDIFF_TYPE__
using SInt16 = Int16
using SInt32 = Int32
using SInt64 = Int64
typedef UIntPtrPtr64
typedef UInt32Ptr32
typedef UInt8Ptr8
using Utf8Char = char8_t
using Utf16Char = char16_t
using WideChar = wchar_t
using Utf32Char = char32_t
using LongDouble = long double
using Double = double
using Float = float
typedef UInt32 PhysicalAddressKind
typedef UIntPtr VirtualAddressKind
using Void = void
using Lba = UInt64
using Char16 = char16_t
using ErrorT = UInt
using ErrorOrAny = ErrorOr<voidPtr>
template<typename T, typename... Args>
using FunctionOr = ErrorOr<Function<T, Args...>>
using JsonStream = Stream<JsonStreamReader, Json>
typedef struct IPC_ADDR IPC_ADDR
typedef struct Kernel::IPC_MSG IPC_MSG
 IPC connection header, message cannot be greater than 6K.
using TCPNetworkDevice = NetworkDevice
 TCP device.
using UDPNetworkDevice = NetworkDevice
 UDP device.
using PPPNetworkDevice = NetworkDevice
 PPP device.
using IPCNetworkDevice = NetworkDevice
 IPC device.
using GPRSNetworkDevice = NetworkDevice
 GRPS device.
using GSMNetworkDevice = NetworkDevice
 GSM device.
using BTNetworkDevice = NetworkDevice
 Bluetooth device.
using PrinterNetworkDevice = NetworkDevice
 Printer device.
using DBGNetworkDevice = NetworkDevice
 Debug device.
using LTENetworkDevice = NetworkDevice
 LTE device.
typedef UInt32 SignalKind
typedef ACPIFactoryInterface PowerFactoryInterface
typedef Int32 APMPowerCmd
typedef UInt32 MBCIAuthKeyType
 An AuthKey is a context used to tokenize data for an MBCI packet.
template<int PacketBitLen>
using scsi_packet_type = Kernel::UInt16[PacketBitLen]
using scsi_packet_type_12 = scsi_packet_type<12>
USER_PROCESS

USER_PROCESS class, holds information about the running process/thread.

typedef Array< USER_PROCESS, kSchedProcessLimitPerTeamUSER_PROCESS_ARRAY
typedef Ref< USER_PROCESSUSER_PROCESS_REF

Enumerations

enum  HeFSJournalKind : UInt8 {
  kJournalKindInvalid = 0x00 , kJournalKindWrite = 0x01 , kJournalKindRename = 0x02 , kJournalKindDelete = 0x03 ,
  kJournalKindFlagEdit = 0x04 , kJournalKindCreate = 0x05 , kJournalKindCount
}
 This enum defines the opcode of the journal, here mentioned as 'kinds'. More...
enum  { kHeFSInvalidColor = 0 , kHeFSRed = 100 , kHeFSBlack , kHeFSColorCount }
enum  {
  kNeFSSubDriveA , kNeFSSubDriveB , kNeFSSubDriveC , kNeFSSubDriveD ,
  kNeFSSubDriveInvalid , kNeFSSubDriveCount
}
enum  { kNeFSRsrcForkKind = 0 , kNeFSDataForkKind = 1 }
 Resource fork kind. More...
enum  CommStatus : UInt16 { kStateInvalid = 0x64 , kStateReady = 0xCF , kStateTransmit = 0xFC , kStateCnt = 3 }
enum  { kInvalidTreeKind = 0U , kRedTreeKind = 100U , kBlackTreeKind = 101U , kTreeKindCount = 3U }
enum class  ProcessSubsystem : Int32 {
  kProcessSubsystemSecurity = 100 , kProcessSubsystemUser , kProcessSubsystemService , kProcessSubsystemDriver ,
  kProcessSubsystemInvalid = 0xFFFFFFF , kProcessSubsystemCount = 4
}
 Subsystem enum type. More...
enum class  ProcessStatusKind : Int32 {
  kInvalid = 0 , kStarting = 100 , kRunning , kKilled ,
  kFrozen , kFinished , kCount = 6
}
 Local Process status enum. More...
enum class  AffinityKind : Int32 {
  kRealTime = 100 , kVeryHigh = 150 , kHigh = 200 , kStandard = 1000 ,
  kLowUsage = 1500 , kVeryLowUsage = 2000
}
 Affinity is the amount of nano-seconds this process is going to run. More...
enum class  ProcessLevelRing : Int32 { kRingStdUser = 1 , kRingSuperUser = 2 , kRingGuestUser = 5 , kRingCount = 3 }
enum  {
  kDeviceTypeInvalid = 0 , kDeviceTypeIDE = 100 , kDeviceTypeEthernet , kDeviceTypeWiFi ,
  kDeviceTypeFW , kDeviceTypeBT , kDeviceTypeRS232 , kDeviceTypeSCSI ,
  kDeviceTypeAHCI , kDeviceTypeMBCI , kDeviceTypeATA , kDeviceTypeUSB ,
  kDeviceTypeAPM , kDeviceTypePCI , kDeviceTypeVGA , kDeviceTypeGPU ,
  kDeviceTypeCount
}
 ! More...
enum  {
  kInvalidDrive = -1 , kBlockDevice = 0xAD , kMassStorageDrive = 0xDA , kFloppyDrive = 0xCD ,
  kOpticalDrive = 0xDC , kTapeDrive = 0xD7 , kReadOnlyDrive = 0x10 , kEPMDrive = 0x11 ,
  kVEPMDrive = 0x12 , kMBRDrive = 0x13 , kGPTDrive = 0x14 , kUnformattedDrive = 0x15 ,
  kStorageCount = 9
}
enum  {
  kFileIOInvalid = 0 , kFileWriteAll = 100 , kFileReadAll = 101 , kFileReadChunk = 102 ,
  kFileWriteChunk = 103 , kFileFlagRsrc = 104 , kFileFlagData = 105 , kFileIOCnt = (kFileFlagData - kFileWriteAll) + 1
}
enum  ThreadKind {
  kAPInvalid = 0 , kAPSystemReserved = 100 , kAPStandard , kAPRealTime ,
  kAPBoot , kAPCount
}
enum  { kLockInvalid = 0 , kLockDone = 200 , kLockTimedOut , kLockCount = 3 }
enum class  DmaKind { PCI = 10 , ISA , Count = 2 , Invalid = 0 }
enum  {
  kPefArchIntel86S , kPefArchAMD64 , kPefArchRISCV , kPefArch64x0 ,
  kPefArch32x0 , kPefArchPowerPC , kPefArchARM64 , kPefArchCount = (kPefArchARM64 - kPefArchIntel86S) + 1 ,
  kPefArchInvalid = 0xFF
}
enum  {
  kPefSubArchGeneric , kPefSubArchAMD = 200 , kPefSubArchIntel , kPefSubArchARM ,
  kPefSubArchIBM
}
enum  {
  kPefKindExec = 1 , kPefKindDylib = 2 , kPefKindObject = 4 , kPefKindDebug = 5 ,
  kPefKindDriver = 6 , kPefKindCount
}
enum  {
  kPefInvalid = 0x0 , kPefCode = 0xC , kPefData = 0xD , kPefZero = 0xE ,
  kPefLinkerID = 0x1 , kPefCount = 4
}
enum class  UserRingKind : Int32 {
  kRingInvalid = 0 , kRingStdUser = 444 , kRingSuperUser = 666 , kRingGuestUser = 777 ,
  kRingCount = 3
}
enum class  Endian : UInt8 {
  kEndianInvalid , kEndianBig , kEndianLittle , kEndianMixed ,
  kEndianCount
}
enum  { kIPCLittleEndian = 0 , kIPCBigEndian = 1 , kIPCMixedEndian = 2 }
enum  { kPRDTTransferInProgress , kPRDTTransferIsDone , kPRDTTransferCount }
 Tranfer information about PRD. More...
enum  ACPI_ADDRESS_SPACE_KIND : UInt8 {
  eSystemMemory = 0 , eSystemIO = 1 , ePci = 2 , eController = 3 ,
  eSmBus = 4 , eCount = 5 , eInvalid = 0xFF
}
enum  {
  kAPMPowerCommandInvalid = 0x00 , kAPMPowerCommandStop = 0x01 , kAPMPowerCommandStart = 0x02 , kAPMPowerCommandSleep = 0x04 ,
  kAPMPowerCommandWakeup = 0x06 , kAPMPowerCommandShutdown = 0x07 , kAPMPowerCommandReboot = 0x08
}
enum  { kMBCISpeedDeviceInvalid , kMBCILowSpeedDevice , kMBCIHighSpeedDevice , kMBCISpeedDeviceCount }
enum  MBCIHostFlags {
  kMBCIHostFlagsSupportsNothing , kMBCIHostFlagsSupportsAPM , kMBCIHostFlagsSupportsDaisyChain , kMBCIHostFlagsSupportsHWInterrupts ,
  kMBCIHostFlagsSupportsDMA , kMBCIHostFlagsExtended
}
 MBCI host flags. More...
enum  MBCIHostKind {
  kMBCIHostKindHardDisk , kMBCIHostKindOpticalDisk , kMBCIHostKindKeyboardLow , kMBCIHostKindMouseLow ,
  kMBCIHostKindMouseHigh , kMBCIHostKindKeyboardHigh , kMBCIHostKindNetworkInterface , kMBCIHostKindDaisyChain ,
  kMBCIHostKindStartExtended
}
 MBCI host kind. More...
enum  MBCIHostState {
  kMBCIHostStateInvalid , kMBCIHostStateReset , kMBCIHostStateSuccess , kMBCIHostStateReady ,
  kMBCIHostStateDmaStart , kMBCIHostStateDmaEnd , kMBCIHostStateFail , kMBCIHostStateCount
}
enum  {
  kInvalidNVME = 0xFF , kCreateCompletionQueueNVME = 0x05 , kCreateSubmissionQueueNVME = 0x01 , kIdentifyNVME = 0x06 ,
  kReadNVME = 0x02 , kWriteNVME = 0x01 , kCountNVME = 5
}

Functions

SizeT rt_hash_seed (const Char *seed, UInt32 mul)
template<typename DataKind>
Void ke_dma_write (UIntPtr base, DataKind reg, DataKind value) noexcept
 write to mapped memory register
template<typename DataKind>
UInt32 ke_dma_read (UIntPtr base, DataKind reg) noexcept
 read from mapped memory register.
VoidPtr rtl_dma_alloc (SizeT size, SizeT align)
 allocate from the rtl_dma_alloc system.
Void rtl_dma_free (SizeT size)
 Free DMA pointer.
Void rtl_dma_flush (VoidPtr ptr, SizeT size_buffer)
 Flush DMA pointer.
EXTERN_C void ke_utf_io_write (DeviceInterface< const Utf8Char * > *obj, const Utf8Char *bytes)
EXTERN_C void ke_io_write (DeviceInterface< const Char * > *obj, const Char *bytes)
EXTERN_C void ke_io_read (DeviceInterface< const Char * > *, const Char *bytes)
Void ke_panic (const Kernel::Int32 &id, const Char *message)
 Stops execution of the kernel.
void ke_runtime_check (bool expr, const Char *file, const Char *line)
EXTERN_C Void __zka_pure_call (USER_PROCESS *process)
 Unimplemented function (crashes by default)
EXTERN_C Bool hal_check_task (HAL::StackFramePtr stack_ptr)
 Validate user stack.
Void mp_wakeup_thread (HAL::StackFrame *stack)
 Wakes up thread. Wakes up thread from the hang state.
Void mp_hang_thread (HAL::StackFrame *stack)
 makes the thread sleep on a loop. hooks and hangs thread to prevent code from executing.
 ENUM_STRING (Qemu, "TCGTCGTCGTCG")
 ENUM_STRING (KVM, " KVMKVMKVM ")
 ENUM_STRING (VMWare, "VMwareVMware")
 ENUM_STRING (VirtualBox, "VBoxVBoxVBox")
 ENUM_STRING (Xen, "XenVMMXenVMM")
 ENUM_STRING (Microsoft, "Microsoft Hv")
 ENUM_STRING (Parallels, " prl hyperv ")
 ENUM_STRING (ParallelsAlt, " lrpepyh vr ")
 ENUM_STRING (Bhyve, "bhyve bhyve ")
 ENUM_STRING (Qnx, " QNXQVMBSQG ")
UInt16 sk_init_ahci_device (BOOL atapi)
 Initialize an AHCI device (StorageKit)
ErrorOr< AHCIDeviceInterface > sk_acquire_ahci_device (Int32 drv_index)
 Acquires a new AHCI device with drv_index in mind.
BOOL sk_init_ata_device (BOOL is_master, UInt16 &io, UInt8 &master)
 Initialize an PIO device (StorageKit function)
ErrorOr< ATADeviceInterfacesk_acquire_ata_device (Int32 drv_index)
 Acquires a new PIO device with drv_index in mind.
Void mp_init_cores (Void) noexcept
 Initialize the Global Interrupt Controller.
EXTERN_C HAL::StackFramePtr mp_get_current_task (ProcessID thrdid)
 Get current stack frame for a thread.
EXTERN_C Bool mp_register_task (HAL::StackFramePtr stack_frame, ProcessID thrdid)
 Register current stack frame for a thread.
EXTERN_C Kernel::Void hal_set_pc_to_hart (HAL_HARDWARE_THREAD *hart, Kernel::VoidPtr epc)
 Set PC to specific hart.
ProcessID rtl_create_kernel_process (rtl_main_kind main, const Char *task_name) noexcept
 Executes a new process from a function. Kernel code only.
ProcessID rtl_create_user_process (rtl_main_kind main, const Char *process_name) noexcept
 Executes a new process from a function. User code only.
bool operator< (AffinityKind lhs, AffinityKind rhs)
 Operators for AffinityKind.
bool operator> (AffinityKind lhs, AffinityKind rhs)
bool operator<= (AffinityKind lhs, AffinityKind rhs)
bool operator>= (AffinityKind lhs, AffinityKind rhs)
TerminalDevice end_line ()
TerminalDevice number (const Long &x)
TerminalDevice hex_number (const Long &x)
Utf8TerminalDevice utf_end_line ()
TerminalDevice carriage_return ()
TerminalDevice tabulate ()
TerminalDevice bell ()
 emulate a terminal bell, like the VT100 does.
TerminalDevice get_console_in (Char *buf)
TerminalDevice & operator<< (TerminalDevice &src, const Long &num)
Void io_drv_unimplemented (DriveTrait::DrivePacket *pckt) noexcept
 Unimplemented drive.
const Chario_drv_kind (Void)
 Gets the drive kind (ATA, SCSI, AHCI...)
DriveTrait io_construct_blank_drive (Void) noexcept
 Makes a new drive.
DriveTrait io_construct_main_drive (Void) noexcept
 Fetches the main drive.
Void io_drv_input (DriveTrait::DrivePacket pckt)
Void io_drv_output (DriveTrait::DrivePacket pckt)
Int32 mm_free_ptr (VoidPtr heap_ptr)
 Declare pointer as free.
Boolean mm_is_valid_ptr (VoidPtr heap_ptr)
 Check if pointer is a valid Kernel pointer.
VoidPtr mm_alloc_ptr (SizeT sz, Bool wr, Bool user, SizeT pad_amount=0)
 Allocate chunk of memory.
Boolean mm_protect_ptr (VoidPtr heap_ptr)
 Protect the heap with a CRC value.
Int32 mm_make_page (VoidPtr heap_ptr)
 Makes a Kernel page.
Int32 mm_set_ptr_flags (VoidPtr heap_ptr, UInt64 flags)
 Overwrites and set the flags of a heap header.
UInt64 mm_get_ptr_flags (VoidPtr heap_ptr)
 Gets the flags of a heap header.
template<typename T, typename... Args>
BOOL mm_new_class (_Input _Output T **cls, _Input Args &&... args)
 Allocate C++ class.
template<typename T>
Void mm_delete_class (_Input _Output T **cls)
 Delete and nullify C++ class.
EXTERN_C void __zka_pure_call (void)
 Pure implementation, missing method/function handler.
Int32 fs_ifs_read (MountpointInterface *Mnt, DriveTrait &DrvTrait, Int32 DrvIndex)
 Read from IFS disk.
Int32 fs_ifs_write (MountpointInterface *Mnt, DriveTrait &DrvTrait, Int32 DrvIndex)
 Write to IFS disk.
EXTERN_C IDylibRef rtl_init_dylib_pef (USER_PROCESS &header)
EXTERN_C Void rtl_fini_dylib_pef (USER_PROCESS &header, IDylibRef lib, Bool *successful)
Boolean err_bug_check_raise (Void) noexcept
 Does a system wide bug check.
template<SizeT Sz>
Array< UShort, Sz > make_ports (UShort base)
BOOL rtl_sem_is_valid (const Semaphore &sem)
 Checks if the semaphore is valid.
BOOL rtl_sem_release (Semaphore &sem)
 Releases the semaphore, resetting its owner and count.
BOOL rtl_sem_init (Semaphore &sem, Int64 owner)
 Initializes the semaphore with an owner and a count of zero.
BOOL rtl_sem_wait (Semaphore &sem, Int64 timeout)
 Waits for the semaphore to be available, blocking until it is.
UInt64 rtl_microseconds (UInt64 time)
UInt64 rtl_milliseconds (UInt64 time)
template<typename ValueType>
auto make_list (ValueType val)
template<typename ValueType>
ArrayList< ValueType > make_list (ValueType val)
UInt32 ke_calculate_crc32 (const Char *in, Int32 len) noexcept
 Calculate CRC32 of p.
template<typename Args>
Args && forward (Args &arg)
 Forward object.
template<typename Args>
Args && move (Args &&arg)
 Move object.
template<typename T, typename... Args>
OwnPtr< T > mm_make_own_ptr (Args... args)
Int rt_copy_memory (const voidPtr src, voidPtr dst, Size len)
 ASCII API.
Int rt_move_memory (const voidPtr src, voidPtr dst, Size len)
voidPtr rt_set_memory (voidPtr dst, UInt32 val, Size len)
void rt_zero_memory (voidPtr pointer, Size len)
Int rt_string_cmp (const Char *src, const Char *cmp, Size len)
const Charrt_alloc_string (const Char *text)
Size rt_string_len (const Char *str)
Size rt_string_len (const Char *str, SizeT _len)
Boolean rt_to_string (Char *str_out, UInt64 base, Int32 limit)
Boolean rt_is_newln (Char chr)
Boolean rt_is_space (Char chr)
Int32 rt_is_alnum (Int32 character)
Int rt_to_uppercase (Int c)
Int rt_to_lower (Int c)
voidPtr rt_string_in_string (const Char *in, const Char *needle)
char * rt_string_has_char (Char *str, Char chr)
Int rt_copy_memory_safe (const voidPtr src, voidPtr dst, Size len, Size dst_size)
voidPtr rt_set_memory_safe (voidPtr dst, UInt32 value, Size len, Size dst_size)
Int urt_string_cmp (const Char *src, const Char *cmp, Size len)
 UNICODE API.
Void urt_set_memory (const voidPtr src, UInt32 dst, Size len)
Int urt_copy_memory (const voidPtr src, voidPtr dst, Size len)
Size urt_string_len (const Utf8Char *str)
Bool ipc_sanitize_packet (_Input IPC_MSG *pckt_in)
 Sanitize packet function.
Bool ipc_construct_packet (_Output _Input IPC_MSG **pckt_in)
 Construct packet function.
Char rt_to_char (UInt64 value, Int32 base)
EXTERN_C void * memset (void *dst, int c, long long unsigned int len)
EXTERN_C void * memcpy (void *dst, const void *src, long long unsigned int len)
EXTERN_C Kernel::Int32 strcmp (const char *a, const char *b)
Void io_drv_input (DriveTrait::DrivePacket &pckt)
 reads from an ATA drive.
Void io_drv_output (DriveTrait::DrivePacket &pckt)
 Writes to an ATA drive.
Void io_drv_init (DriveTrait::DrivePacket &pckt)
 Executes a disk check on the ATA drive.
Void io_drv_unimplemented (DriveTrait::DrivePacket &pckt) noexcept
 Unimplemented drive function.
DriveTrait io_construct_blank_drive () noexcept
 Makes a new drive.
DriveTrait io_construct_main_drive () noexcept
 Fetches the main drive.
STATIC void rt_string_append (Char *lhs, const Char *rhs, Int32 cur)
Bool ipc_int_sanitize_packet (IPC_MSG *pckt)
Bool ipc_sanitize_packet (IPC_MSG *pckt)
 Sanitize packet function.
Bool ipc_construct_packet (_Output IPC_MSG **pckt_in)
 Construct packet function.
void construct_prdt (Ref< PRDT > &prd)
 constructs a new PRD.
template<typename T>
STATIC T * sched_try_go_upper_ptr_tree (T *tree)
 Allocate pointer to heap tree.
template<typename T>
STATIC Void sched_free_ptr_tree (T *tree)
 Free heap tree.
Int32 rt_string_cmp (const Utf8Char *src, const Utf8Char *cmp, Size size)
struct Kernel::SWAP_DISK_HEADER ALIGN (8) SWAP_DISK_HEADER
 Swap disk header, containing information about the held virtual memory.
EXTERN_C Int32 apm_send_io_command (UInt16 cmd)
 Send a APM command into it's own IO space.
BOOL busi_test_mmio (_Input struct IMBCIHost *host, _Input const UInt32 test)
MBCIAuthKeyType mbci_read_auth_key (_Input struct IMBCIHost *host)
 Read Auth key for MBCI host.
template<Int32 Opcode>
Bool nvme_create_admin_command (HAL_NVME_QUEUE *entry, UInt32 nsid, UInt32 prpTransfer[3], UInt32 startingLba[2], UInt32 lowTransferBlocks)
 Creates an admin command for a DMA operation.
template<Int32 Opcode>
Bool nvme_create_io_command (HAL_NVME_QUEUE *entry, UInt64 baseAddress, UInt32 identLoAndQueueSizeHi, UInt32 flagsLoAndQueueComplIdHi, UInt32 identify, Bool provideIdentify=false, Bool namespaceIdentify=false)
 Creates an I/O command for a DMA operation.
HardwareThreadScheduler

Class to manage the thread scheduling.

void mp_wakeup_thread (HAL::StackFramePtr stack)
 wakes up thread. wakes up thread from hang.
void mp_hang_thread (HAL::StackFramePtr stack)
 makes thread sleep. hooks and hangs thread to prevent code from executing.

Variables

UInt8kDmaPoolPtr = (UInt8*) kNeDMAPoolStart
 DMA pool base pointer, here we're sure that AHCI or whatever tricky standard sees it.
const UInt8kDmaPoolEnd = (UInt8*) (kNeDMAPoolStart + kNeDMAPoolSize)
constexpr ATime kHeFSTimeInvalid = 0x0000000000000000
constexpr ATime kHeFSTimeMax = 0xFFFFFFFFFFFFFFFF - 1
STATIC SizeT kX = kFontSizeX
STATIC SizeT kY = kFontSizeY
STATIC HAL_HARDWARE_THREAD kHWThread [kMaxAPInsideSched] = {{nullptr}}
constexpr SizeT kDebugCmdLen = 256U
STATIC const auto kRestrictStrLen = 8U
KPCError kErrorLocalNumber = 0UL
constexpr KPCError kErrorSuccess = 0
constexpr KPCError kErrorExecutable = 33
constexpr KPCError kErrorExecutableLib = 34
constexpr KPCError kErrorFileNotFound = 35
constexpr KPCError kErrorDirectoryNotFound = 36
constexpr KPCError kErrorDiskReadOnly = 37
constexpr KPCError kErrorDiskIsFull = 38
constexpr KPCError kErrorProcessFault = 39
constexpr KPCError kErrorSocketHangUp = 40
constexpr KPCError kErrorThreadLocalStorage = 41
constexpr KPCError kErrorMath = 42
constexpr KPCError kErrorNoNetwork = 43
constexpr KPCError kErrorHeapOutOfMemory = 44
constexpr KPCError kErrorNoSuchDisk = 45
constexpr KPCError kErrorFileExists = 46
constexpr KPCError kErrorFormatFailed = 47
constexpr KPCError kErrorNetworkTimeout = 48
constexpr KPCError kErrorInternal = 49
constexpr KPCError kErrorForkAlreadyExists = 50
constexpr KPCError kErrorOutOfTeamSlot = 51
constexpr KPCError kErrorHeapNotPresent = 52
constexpr KPCError kErrorNoEntrypoint = 53
constexpr KPCError kErrorDiskIsCorrupted = 54
constexpr KPCError kErrorDisk = 55
constexpr KPCError kErrorInvalidData = 56
constexpr KPCError kErrorAsync = 57
constexpr KPCError kErrorNonBlocking = 58
constexpr KPCError kErrorIPC = 59
constexpr KPCError kErrorSign = 60
constexpr KPCError kErrorInvalidCreds = 61
constexpr KPCError kErrorCDTrayBroken = 62
constexpr KPCError kErrorUnrecoverableDisk = 63
constexpr KPCError kErrorFileLocked = 64
constexpr KPCError kErrorDiskIsTooTiny = 65
constexpr KPCError kErrorDmaExhausted = 66
constexpr KPCError kErrorOutOfBitMapMemory = 67
constexpr KPCError kErrorUnimplemented = -1
 Generic errors.
constexpr UInt16 kMaxPorts = 16
constexpr Int16 kTimeUnit = 1000
UserkCurrentUser = nullptr
UserkRootUser = nullptr
constexpr auto kIPCMsgSize = 6094U
constexpr STATIC const auto kMinACPIVer = 1
UInt32 kChecksumPolys [kCrcCnt]
 The CRC32 seed table.
STATIC IFilesystemMgrkMountedFilesystem = nullptr
STATIC HardwareThreadScheduler kHardwareThreadScheduler
STATIC PageMgr kPageMgr
STATIC Bool kRaiseOnBugCheck = false
EXTERN_C Int32 kPRDTTransferStatus
const scsi_packet_type< 12 > kCDRomPacketTemplate

Detailed Description

USER_PROCESS inline definitions.

! BUGS: 0

!

The Kernel namespace.

Note
This applies only if we compile with AHCI as a default disk driver.
Author
Amlal El Mahrouss (amlal.nosp@m.@nek.nosp@m.ernel.nosp@m..org)
Date
Tue Apr 22 22:01:07 CEST 2025
Note
Can either work with: Ethernet, GPRS, WiFi
Author
Amlal El Mahrouss (amlal.nosp@m.@nek.nosp@m.ernel.nosp@m..org)

Typedef Documentation

◆ APMPowerCmd

◆ ATime

Access time type.

Used to keep track of the INode, INodeDir allocation status.

◆ Bool

using Kernel::Bool = bool

◆ Boolean

using Kernel::Boolean = bool

◆ BTNetworkDevice

Bluetooth device.

◆ Char

using Kernel::Char = char

◆ Char16

using Kernel::Char16 = char16_t

◆ CursorType

◆ DBGNetworkDevice

Debug device.

◆ Double

using Kernel::Double = double

◆ DriveTraitPtr

! drive as a device.

◆ ErrorOrAny

◆ ErrorT

◆ FBColorProfile

◆ FBCoord2x2

◆ FBDim2x2

◆ FBFlags

◆ FileStreamASCII

◆ FileStreamUTF16

◆ FileStreamUTF8

◆ Float

using Kernel::Float = float

◆ FunctionOr

template<typename T, typename... Args>
using Kernel::FunctionOr = ErrorOr<Function<T, Args...>>

◆ GPRSNetworkDevice

◆ GSMNetworkDevice

◆ hal_ap_kind

hardware thread indentification type.

◆ HAL_HARDWARE_THREAD

typedef struct Kernel::HAL_HARDWARE_THREAD Kernel::HAL_HARDWARE_THREAD

Hardware thread information structure.

◆ IDylibRef

typedef IPEFDylibObject* Kernel::IDylibRef

◆ ImagePtr

Helper type to describe a code image.

◆ Int

using Kernel::Int = int

◆ Int16

using Kernel::Int16 = short

◆ Int32

using Kernel::Int32 = int

◆ Int64

using Kernel::Int64 = __INT64_TYPE__

◆ IntFast

using Kernel::IntFast = __INT_FAST32_TYPE__

◆ IntFast64

using Kernel::IntFast64 = __INT_FAST64_TYPE__

◆ IntPtr

using Kernel::IntPtr = __INTPTR_TYPE__

◆ IOArray16

◆ IPC_ADDR

typedef struct IPC_ADDR Kernel::IPC_ADDR

◆ IPC_MSG

typedef struct Kernel::IPC_MSG Kernel::IPC_MSG

IPC connection header, message cannot be greater than 6K.

◆ IPCNetworkDevice

◆ JsonStream

◆ KID

typedef PID Kernel::KID

◆ KPCError

◆ Lba

◆ LockPtr

Lock condition pointer.

◆ Long

using Kernel::Long = __INT64_TYPE__

◆ LongDouble

using Kernel::LongDouble = long double

◆ LTENetworkDevice

◆ MBCIAuthKeyType

An AuthKey is a context used to tokenize data for an MBCI packet.

◆ NodePtr

◆ NullPtr

using Kernel::NullPtr = decltype(nullptr)

◆ nullPtr

using Kernel::nullPtr = decltype(nullptr)

◆ PEFCommandHeader

typedef struct Kernel::PEFCommandHeader Kernel::PEFCommandHeader

◆ PEFContainer

typedef struct Kernel::PEFContainer Kernel::PEFContainer

◆ PhysicalAddressKind

◆ PID

using Kernel::PID = Int64

◆ PowerFactoryInterface

typedef ACPIFactoryInterface Kernel::PowerFactoryInterface

◆ PPPNetworkDevice

◆ PrinterNetworkDevice

◆ ProcessID

Local Process identifier.

◆ ProcessTime

◆ PTime

◆ Ptr32

◆ Ptr64

◆ Ptr8

typedef UInt8* Kernel::Ptr8

◆ PtrDiff

using Kernel::PtrDiff = __PTRDIFF_TYPE__

◆ rt_debug_cmd

typedef Char Kernel::rt_debug_cmd[kDebugCmdLen]

◆ rtl_cxx_ctor_kind

typedef void(* Kernel::rtl_cxx_ctor_kind) (void)

C++ Constructor entrypoint.

◆ rtl_cxx_dtor_kind

typedef void(* Kernel::rtl_cxx_dtor_kind) (void)

C++ Destructor entrypoint.

◆ rtl_main_kind

typedef void(* Kernel::rtl_main_kind) (void)

Main process entrypoint.

◆ scsi_packet_type

template<int PacketBitLen>
using Kernel::scsi_packet_type = Kernel::UInt16[PacketBitLen]

◆ scsi_packet_type_12

◆ Semaphore

typedef UInt64 Kernel::Semaphore[kSemaphoreCount]

Semaphore structure used for synchronization.

◆ Short

using Kernel::Short = short

◆ SignalKind

◆ SInt16

◆ SInt32

◆ SInt64

◆ Size

using Kernel::Size = __SIZE_TYPE__

◆ SizeT

using Kernel::SizeT = __SIZE_TYPE__

◆ SSize

◆ SSizeT

◆ TCPNetworkDevice

◆ ThreadID

◆ ThreadKind

◆ UChar

using Kernel::UChar = unsigned char

◆ UDPNetworkDevice

◆ UInt

using Kernel::UInt = unsigned int

◆ UInt16

using Kernel::UInt16 = unsigned short

◆ UInt32

using Kernel::UInt32 = unsigned int

◆ UInt64

using Kernel::UInt64 = __UINT64_TYPE__

◆ UInt8

using Kernel::UInt8 = unsigned char

◆ UIntPtr

using Kernel::UIntPtr = __UINTPTR_TYPE__

◆ ULong

using Kernel::ULong = __UINT64_TYPE__

◆ USER_PROCESS_ARRAY

◆ USER_PROCESS_REF

◆ UserPublicKey

◆ UserPublicKeyType

◆ UShort

using Kernel::UShort = unsigned short

◆ Utf16Char

using Kernel::Utf16Char = char16_t

◆ Utf32Char

using Kernel::Utf32Char = char32_t

◆ Utf8Char

◆ VirtualAddressKind

◆ Void

using Kernel::Void = void

◆ VoidPtr

using Kernel::VoidPtr = void*

◆ voidPtr

using Kernel::voidPtr = void*

◆ WideChar

using Kernel::WideChar = wchar_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Resource fork kind.

Enumerator
kNeFSRsrcForkKind 
kNeFSDataForkKind 

◆ anonymous enum

anonymous enum

Tranfer information about PRD.

Enumerator
kPRDTTransferInProgress 
kPRDTTransferIsDone 
kPRDTTransferCount 

◆ anonymous enum

anonymous enum
Enumerator
kIPCLittleEndian 
kIPCBigEndian 
kIPCMixedEndian 

◆ anonymous enum

anonymous enum
Enumerator
kAPMPowerCommandInvalid 
kAPMPowerCommandStop 
kAPMPowerCommandStart 
kAPMPowerCommandSleep 
kAPMPowerCommandWakeup 
kAPMPowerCommandShutdown 
kAPMPowerCommandReboot 

◆ anonymous enum

anonymous enum
Enumerator
kHeFSInvalidColor 
kHeFSRed 
kHeFSBlack 
kHeFSColorCount 

◆ anonymous enum

anonymous enum
Enumerator
kFileIOInvalid 
kFileWriteAll 
kFileReadAll 
kFileReadChunk 
kFileWriteChunk 
kFileFlagRsrc 
kFileFlagData 
kFileIOCnt 

◆ anonymous enum

anonymous enum
Enumerator
kPefSubArchGeneric 
kPefSubArchAMD 
kPefSubArchIntel 
kPefSubArchARM 
kPefSubArchIBM 

◆ anonymous enum

anonymous enum
Enumerator
kInvalidNVME 
kCreateCompletionQueueNVME 
kCreateSubmissionQueueNVME 
kIdentifyNVME 
kReadNVME 
kWriteNVME 
kCountNVME 

◆ anonymous enum

anonymous enum
Enumerator
kPefArchIntel86S 
kPefArchAMD64 
kPefArchRISCV 
kPefArch64x0 
kPefArch32x0 
kPefArchPowerPC 
kPefArchARM64 
kPefArchCount 
kPefArchInvalid 

◆ anonymous enum

anonymous enum

!

Device enum types.

Enumerator
kDeviceTypeInvalid 
kDeviceTypeIDE 
kDeviceTypeEthernet 
kDeviceTypeWiFi 
kDeviceTypeFW 
kDeviceTypeBT 
kDeviceTypeRS232 
kDeviceTypeSCSI 
kDeviceTypeAHCI 
kDeviceTypeMBCI 
kDeviceTypeATA 
kDeviceTypeUSB 
kDeviceTypeAPM 
kDeviceTypePCI 
kDeviceTypeVGA 
kDeviceTypeGPU 
kDeviceTypeCount 

◆ anonymous enum

anonymous enum
Enumerator
kMBCISpeedDeviceInvalid 
kMBCILowSpeedDevice 
kMBCIHighSpeedDevice 
kMBCISpeedDeviceCount 

◆ anonymous enum

anonymous enum
Enumerator
kLockInvalid 
kLockDone 
kLockTimedOut 
kLockCount 

◆ anonymous enum

anonymous enum
Enumerator
kInvalidDrive 
kBlockDevice 

Storage types, combine with flags.

kMassStorageDrive 
kFloppyDrive 
kOpticalDrive 
kTapeDrive 
kReadOnlyDrive 

Storage flags, combine with types.

kEPMDrive 
kVEPMDrive 
kMBRDrive 
kGPTDrive 
kUnformattedDrive 
kStorageCount 

◆ anonymous enum

anonymous enum
Enumerator
kInvalidTreeKind 
kRedTreeKind 
kBlackTreeKind 
kTreeKindCount 

◆ anonymous enum

anonymous enum
Enumerator
kNeFSSubDriveA 
kNeFSSubDriveB 
kNeFSSubDriveC 
kNeFSSubDriveD 
kNeFSSubDriveInvalid 
kNeFSSubDriveCount 

◆ anonymous enum

anonymous enum
Enumerator
kPefKindExec 
kPefKindDylib 
kPefKindObject 
kPefKindDebug 
kPefKindDriver 
kPefKindCount 

◆ anonymous enum

anonymous enum
Enumerator
kPefInvalid 
kPefCode 
kPefData 
kPefZero 
kPefLinkerID 
kPefCount 

◆ ACPI_ADDRESS_SPACE_KIND

Enumerator
eSystemMemory 
eSystemIO 
ePci 
eController 
eSmBus 
eCount 
eInvalid 

◆ AffinityKind

enum class Kernel::AffinityKind : Int32
strong

Affinity is the amount of nano-seconds this process is going to run.

Enumerator
kRealTime 
kVeryHigh 
kHigh 
kStandard 
kLowUsage 
kVeryLowUsage 

◆ CommStatus

Enumerator
kStateInvalid 
kStateReady 
kStateTransmit 
kStateCnt 

◆ DmaKind

enum class Kernel::DmaKind
strong
Enumerator
PCI 
ISA 
Count 
Invalid 

◆ Endian

enum class Kernel::Endian : UInt8
strong
Enumerator
kEndianInvalid 
kEndianBig 
kEndianLittle 
kEndianMixed 
kEndianCount 

◆ HeFSJournalKind

This enum defines the opcode of the journal, here mentioned as 'kinds'.

Enumerator
kJournalKindInvalid 
kJournalKindWrite 
kJournalKindRename 
kJournalKindDelete 
kJournalKindFlagEdit 
kJournalKindCreate 
kJournalKindCount 

◆ MBCIHostFlags

MBCI host flags.

Enumerator
kMBCIHostFlagsSupportsNothing 
kMBCIHostFlagsSupportsAPM 
kMBCIHostFlagsSupportsDaisyChain 
kMBCIHostFlagsSupportsHWInterrupts 
kMBCIHostFlagsSupportsDMA 
kMBCIHostFlagsExtended 

◆ MBCIHostKind

MBCI host kind.

Enumerator
kMBCIHostKindHardDisk 
kMBCIHostKindOpticalDisk 
kMBCIHostKindKeyboardLow 
kMBCIHostKindMouseLow 
kMBCIHostKindMouseHigh 
kMBCIHostKindKeyboardHigh 
kMBCIHostKindNetworkInterface 
kMBCIHostKindDaisyChain 
kMBCIHostKindStartExtended 

◆ MBCIHostState

Enumerator
kMBCIHostStateInvalid 
kMBCIHostStateReset 
kMBCIHostStateSuccess 
kMBCIHostStateReady 
kMBCIHostStateDmaStart 
kMBCIHostStateDmaEnd 
kMBCIHostStateFail 
kMBCIHostStateCount 

◆ ProcessLevelRing

enum class Kernel::ProcessLevelRing : Int32
strong
Note
For User manager, tells where we run the code.
Enumerator
kRingStdUser 
kRingSuperUser 
kRingGuestUser 
kRingCount 

◆ ProcessStatusKind

enum class Kernel::ProcessStatusKind : Int32
strong

Local Process status enum.

Enumerator
kInvalid 
kStarting 
kRunning 
kKilled 
kFrozen 
kFinished 
kCount 

◆ ProcessSubsystem

enum class Kernel::ProcessSubsystem : Int32
strong

Subsystem enum type.

Enumerator
kProcessSubsystemSecurity 
kProcessSubsystemUser 
kProcessSubsystemService 
kProcessSubsystemDriver 
kProcessSubsystemInvalid 
kProcessSubsystemCount 

◆ ThreadKind

Enumerator
kAPInvalid 
kAPSystemReserved 
kAPStandard 
kAPRealTime 
kAPBoot 
kAPCount 

◆ UserRingKind

enum class Kernel::UserRingKind : Int32
strong
Enumerator
kRingInvalid 
kRingStdUser 
kRingSuperUser 
kRingGuestUser 
kRingCount 

Function Documentation

◆ __zka_pure_call() [1/2]

EXTERN_C Void Kernel::__zka_pure_call ( USER_PROCESS * process)

Unimplemented function (crashes by default)

Parameters
void

◆ __zka_pure_call() [2/2]

EXTERN_C void Kernel::__zka_pure_call ( void )

Pure implementation, missing method/function handler.

◆ ALIGN()

struct Kernel::SWAP_DISK_HEADER Kernel::ALIGN ( 8 )

Swap disk header, containing information about the held virtual memory.

Parameters
fMagicIdent number.
fHeaderSzThis header size.
fTeamIDProcess Team ID.
fProcessIDProcess ID.
fVirtualAddressVirtual address pointed by data.
fBlobSzBlob's size.
fBlobData blob.

◆ apm_send_io_command()

EXTERN_C Int32 Kernel::apm_send_io_command ( UInt16 cmd)

Send a APM command into it's own IO space.

Parameters
base_dmathe IO base port.
cmdthe command.
Returns
status code.

◆ bell()

TerminalDevice Kernel::bell ( )
inline

emulate a terminal bell, like the VT100 does.

◆ busi_test_mmio()

BOOL Kernel::busi_test_mmio ( _Input struct IMBCIHost * host,
_Input const UInt32 test )
inline

◆ carriage_return()

TerminalDevice Kernel::carriage_return ( )
inline

◆ construct_prdt()

void Kernel::construct_prdt ( Ref< PRDT > & prd)

constructs a new PRD.

Parameters
prdPRD reference.
Note
This doesnt construct a valid, please fill it by yourself.

◆ end_line()

TerminalDevice Kernel::end_line ( )
inline

◆ ENUM_STRING() [1/10]

Kernel::ENUM_STRING ( Bhyve ,
"bhyve bhyve "  )

◆ ENUM_STRING() [2/10]

Kernel::ENUM_STRING ( KVM ,
" KVMKVMKVM "  )

◆ ENUM_STRING() [3/10]

Kernel::ENUM_STRING ( Microsoft ,
"Microsoft Hv"  )

◆ ENUM_STRING() [4/10]

Kernel::ENUM_STRING ( Parallels ,
" prl hyperv "  )

◆ ENUM_STRING() [5/10]

Kernel::ENUM_STRING ( ParallelsAlt ,
" lrpepyh vr "  )

◆ ENUM_STRING() [6/10]

Kernel::ENUM_STRING ( Qemu ,
"TCGTCGTCGTCG"  )

◆ ENUM_STRING() [7/10]

Kernel::ENUM_STRING ( Qnx ,
" QNXQVMBSQG "  )

◆ ENUM_STRING() [8/10]

Kernel::ENUM_STRING ( VirtualBox ,
"VBoxVBoxVBox"  )

◆ ENUM_STRING() [9/10]

Kernel::ENUM_STRING ( VMWare ,
"VMwareVMware"  )

◆ ENUM_STRING() [10/10]

Kernel::ENUM_STRING ( Xen ,
"XenVMMXenVMM"  )

◆ err_bug_check_raise()

Boolean Kernel::err_bug_check_raise ( Void )
noexcept

Does a system wide bug check.

Parameters
voidno params are needed.
Returns
if error-free: false, otherwise true.

◆ forward()

template<typename Args>
Args && Kernel::forward ( Args & arg)
inline

Forward object.

Template Parameters
Argsthe object type.
Parameters
argthe object.
Returns
object's rvalue

◆ fs_ifs_read()

Int32 Kernel::fs_ifs_read ( MountpointInterface * Mnt,
DriveTrait & DrvTrait,
Int32 DrvIndex )

Read from IFS disk.

Read from fs disk.

Parameters
Mntmounted interface.
DrvTraitdrive info
DrvIndexdrive index.
Returns

◆ fs_ifs_write()

Int32 Kernel::fs_ifs_write ( MountpointInterface * Mnt,
DriveTrait & DrvTrait,
Int32 DrvIndex )

Write to IFS disk.

Write to fs disk.

Parameters
Mntmounted interface.
DrvTraitdrive info
DrvIndexdrive index.
Returns

◆ get_console_in()

TerminalDevice Kernel::get_console_in ( Char * buf)
inline

◆ hal_check_task()

EXTERN_C Bool Kernel::hal_check_task ( HAL::StackFramePtr stack_ptr)

Validate user stack.

Parameters
stack_ptrthe frame pointer.
Note
Those symbols are needed in order to switch and validate the stack.

◆ hal_set_pc_to_hart()

EXTERN_C Kernel::Void Kernel::hal_set_pc_to_hart ( HAL_HARDWARE_THREAD * hart,
Kernel::VoidPtr epc )

Set PC to specific hart.

Parameters
hartthe hart
epcthe pc.
Returns

◆ hex_number()

TerminalDevice Kernel::hex_number ( const Long & x)
inline

◆ io_construct_blank_drive() [1/2]

DriveTrait Kernel::io_construct_blank_drive ( )
noexcept

Makes a new drive.

Returns
the new blank drive.

◆ io_construct_blank_drive() [2/2]

DriveTrait Kernel::io_construct_blank_drive ( Void )
noexcept

Makes a new drive.

Returns
the new drive as a trait.

◆ io_construct_main_drive() [1/2]

DriveTrait Kernel::io_construct_main_drive ( )
noexcept

Fetches the main drive.

Returns
the new drive. (returns kEPMDrive if EPM formatted)

◆ io_construct_main_drive() [2/2]

DriveTrait Kernel::io_construct_main_drive ( Void )
noexcept

Fetches the main drive.

Returns
the new drive as a trait.

◆ io_drv_init()

Void Kernel::io_drv_init ( DriveTrait::DrivePacket & pckt)

Executes a disk check on the ATA drive.

Parameters
pcktthe packet to read.
Returns

◆ io_drv_input() [1/2]

Void Kernel::io_drv_input ( DriveTrait::DrivePacket & pckt)

reads from an ATA drive.

Parameters
pcktPacket structure (fPacketContent must be non null)
Returns

◆ io_drv_input() [2/2]

Void Kernel::io_drv_input ( DriveTrait::DrivePacket pckt)

◆ io_drv_kind()

const Char * Kernel::io_drv_kind ( Void )

Gets the drive kind (ATA, SCSI, AHCI...)

Parameters
voidnone.
Returns
the drive kind (ATA, Flash, NVM)
Parameters
voidno arguments.
Returns
no arguments.

◆ io_drv_output() [1/2]

Void Kernel::io_drv_output ( DriveTrait::DrivePacket & pckt)

Writes to an ATA drive.

Parameters
pcktthe packet to write.
Returns

◆ io_drv_output() [2/2]

Void Kernel::io_drv_output ( DriveTrait::DrivePacket pckt)

◆ io_drv_unimplemented() [1/2]

Void Kernel::io_drv_unimplemented ( DriveTrait::DrivePacket & pckt)
noexcept

Unimplemented drive function.

Parameters
pcktthe packet to read.

◆ io_drv_unimplemented() [2/2]

Void Kernel::io_drv_unimplemented ( DriveTrait::DrivePacket * pckt)
noexcept

Unimplemented drive.

Parameters
pcktthe packet to read.
Returns

◆ ipc_construct_packet() [1/2]

Bool Kernel::ipc_construct_packet ( _Output _Input IPC_MSG ** pckt_in)

Construct packet function.

Return values
truepacket is correct.
falsepacket is incorrect and process has crashed.

◆ ipc_construct_packet() [2/2]

Bool Kernel::ipc_construct_packet ( _Output IPC_MSG ** pckt_in)

Construct packet function.

Return values
truepacket is correct.
falsepacket is incorrect and process has crashed.

◆ ipc_int_sanitize_packet()

Bool Kernel::ipc_int_sanitize_packet ( IPC_MSG * pckt)

◆ ipc_sanitize_packet() [1/2]

Bool Kernel::ipc_sanitize_packet ( _Input IPC_MSG * pckt_in)

Sanitize packet function.

Return values
truepacket is correct.
falsepacket is incorrect and process has crashed.

◆ ipc_sanitize_packet() [2/2]

Bool Kernel::ipc_sanitize_packet ( IPC_MSG * pckt)

Sanitize packet function.

Return values
truepacket is correct.
falsepacket is incorrect and process has crashed.

◆ ke_calculate_crc32()

UInt32 Kernel::ke_calculate_crc32 ( const Char * in,
Int32 len )
noexcept

Calculate CRC32 of p.

Parameters
inthe data to compute.
lenthe length of the data.
Returns
CRC32 of in.

◆ ke_dma_read()

template<typename DataKind>
UInt32 Kernel::ke_dma_read ( UIntPtr base,
DataKind reg )
inlinenoexcept

read from mapped memory register.

Parameters
basebase address
regthe register.
Returns
the value inside the register.

◆ ke_dma_write()

template<typename DataKind>
Void Kernel::ke_dma_write ( UIntPtr base,
DataKind reg,
DataKind value )
inlinenoexcept

write to mapped memory register

Parameters
basethe base address.
regthe register.
valuethe write to write on it.

◆ ke_io_read()

EXTERN_C void Kernel::ke_io_read ( DeviceInterface< const Char * > * self,
const Char * bytes )

◆ ke_io_write()

EXTERN_C void Kernel::ke_io_write ( DeviceInterface< const Char * > * obj,
const Char * bytes )

◆ ke_panic()

void Kernel::ke_panic ( const Kernel::Int32 & id,
const Char * message )

Stops execution of the kernel.

Parameters
idkernel stop ID.

◆ ke_runtime_check()

void Kernel::ke_runtime_check ( bool expr,
const Char * file,
const Char * line )

◆ ke_utf_io_write()

EXTERN_C void Kernel::ke_utf_io_write ( DeviceInterface< const Utf8Char * > * obj,
const Utf8Char * bytes )

◆ make_list() [1/2]

template<typename ValueType>
auto Kernel::make_list ( ValueType val)

◆ make_list() [2/2]

template<typename ValueType>
ArrayList< ValueType > Kernel::make_list ( ValueType val)

◆ make_ports()

template<SizeT Sz>
Array< UShort, Sz > Kernel::make_ports ( UShort base)
inline

◆ mbci_read_auth_key()

MBCIAuthKeyType Kernel::mbci_read_auth_key ( _Input struct IMBCIHost * host)
inline

Read Auth key for MBCI host.

Parameters
hostthe mbci host to get the key on.
Returns
the 24-bit key.

◆ memcpy()

EXTERN_C void * Kernel::memcpy ( void * dst,
const void * src,
long long unsigned int len )

◆ memset()

EXTERN_C void * Kernel::memset ( void * dst,
int c,
long long unsigned int len )

◆ mm_alloc_ptr()

_Output VoidPtr Kernel::mm_alloc_ptr ( SizeT sz,
Bool wr,
Bool user,
SizeT pad_amount = 0 )

Allocate chunk of memory.

Parameters
szSize of pointer
wrRead Write bit.
userUser enable bit.
Returns
The newly allocated pointer, or nullptr.
Parameters
szSize of pointer
wrRead Write bit.
userUser enable bit.
Returns
The newly allocated pointer.

◆ mm_delete_class()

template<typename T>
Void Kernel::mm_delete_class ( _Input _Output T ** cls)
inline

Delete and nullify C++ class.

Parameters
clsThe class to delete.

◆ mm_free_ptr()

_Output Int32 Kernel::mm_free_ptr ( VoidPtr heap_ptr)

Declare pointer as free.

Parameters
heap_ptrthe pointer.
Returns
a status code regarding the deallocation.
Parameters
heap_ptrthe pointer.
Returns

◆ mm_get_ptr_flags()

_Output UInt64 Kernel::mm_get_ptr_flags ( VoidPtr heap_ptr)

Gets the flags of a heap header.

Parameters
heap_ptrthe pointer to get.

◆ mm_is_valid_ptr()

_Output Boolean Kernel::mm_is_valid_ptr ( VoidPtr heap_ptr)

Check if pointer is a valid Kernel pointer.

Parameters
heap_ptrthe pointer
Returns
if it exists it returns true.
Parameters
heap_ptrthe pointer
Returns
if it exists.

◆ mm_make_own_ptr()

template<typename T, typename... Args>
OwnPtr< T > Kernel::mm_make_own_ptr ( Args... args)
inline

◆ mm_make_page()

_Output Int32 Kernel::mm_make_page ( VoidPtr heap_ptr)

Makes a Kernel page.

Makes a page heap.

Parameters
heap_ptrthe page pointer.
Returns
status code
Parameters
heap_ptrthe pointer to make a page heap.
Returns
kErrorSuccess if successful, otherwise an error code.

◆ mm_new_class()

template<typename T, typename... Args>
BOOL Kernel::mm_new_class ( _Input _Output T ** cls,
_Input Args &&... args )
inline

Allocate C++ class.

Parameters
clsThe class to allocate.
argsThe args to pass.

◆ mm_protect_ptr()

_Output Boolean Kernel::mm_protect_ptr ( VoidPtr heap_ptr)

Protect the heap with a CRC value.

Parameters
heap_ptrpointer.
Returns
if it valid: point has crc now., otherwise fail.
Parameters
heap_ptrHIB pointer.
Returns
if it valid: point has crc now., otherwise fail.

if valid, present and is heap header, then compute crc32

◆ mm_set_ptr_flags()

_Output Int32 Kernel::mm_set_ptr_flags ( VoidPtr heap_ptr,
UInt64 flags )

Overwrites and set the flags of a heap header.

Parameters
heap_ptrthe pointer to update.
flagsthe flags to set.

◆ move()

template<typename Args>
Args && Kernel::move ( Args && arg)
inline

Move object.

Template Parameters
Argsthe object type.
Parameters
argthe object.
Returns
object's rvalue

◆ mp_get_current_task()

EXTERN_C HAL::StackFramePtr Kernel::mp_get_current_task ( ProcessID thrdid)

Get current stack frame for a thread.

Parameters
thrdidThe thread ID.

◆ mp_hang_thread() [1/2]

Void Kernel::mp_hang_thread ( HAL::StackFrame * stack)

makes the thread sleep on a loop. hooks and hangs thread to prevent code from executing.

◆ mp_hang_thread() [2/2]

Void Kernel::mp_hang_thread ( HAL::StackFramePtr stack)

makes thread sleep. hooks and hangs thread to prevent code from executing.

◆ mp_init_cores()

Void Kernel::mp_init_cores ( Void )
noexcept

Initialize the Global Interrupt Controller.

◆ mp_register_task()

EXTERN_C Bool Kernel::mp_register_task ( HAL::StackFramePtr stack_frame,
ProcessID thrdid )

Register current stack frame for a thread.

Parameters
stack_frameThe current stack frame.
thrdidThe thread ID.

◆ mp_wakeup_thread() [1/2]

Void Kernel::mp_wakeup_thread ( HAL::StackFrame * stack)

Wakes up thread. Wakes up thread from the hang state.

◆ mp_wakeup_thread() [2/2]

Void Kernel::mp_wakeup_thread ( HAL::StackFramePtr stack)

wakes up thread. wakes up thread from hang.

◆ number()

TerminalDevice Kernel::number ( const Long & x)
inline

◆ nvme_create_admin_command()

template<Int32 Opcode>
Bool Kernel::nvme_create_admin_command ( HAL_NVME_QUEUE * entry,
UInt32 nsid,
UInt32 prpTransfer[3],
UInt32 startingLba[2],
UInt32 lowTransferBlocks )
inline

Creates an admin command for a DMA operation.

◆ nvme_create_io_command()

template<Int32 Opcode>
Bool Kernel::nvme_create_io_command ( HAL_NVME_QUEUE * entry,
UInt64 baseAddress,
UInt32 identLoAndQueueSizeHi,
UInt32 flagsLoAndQueueComplIdHi,
UInt32 identify,
Bool provideIdentify = false,
Bool namespaceIdentify = false )
inline

Creates an I/O command for a DMA operation.

◆ operator<()

bool Kernel::operator< ( AffinityKind lhs,
AffinityKind rhs )
inline

Operators for AffinityKind.

◆ operator<<()

TerminalDevice & Kernel::operator<< ( TerminalDevice & src,
const Long & num )
inline

◆ operator<=()

bool Kernel::operator<= ( AffinityKind lhs,
AffinityKind rhs )
inline

◆ operator>()

bool Kernel::operator> ( AffinityKind lhs,
AffinityKind rhs )
inline

◆ operator>=()

bool Kernel::operator>= ( AffinityKind lhs,
AffinityKind rhs )
inline

◆ rt_alloc_string()

const Char * Kernel::rt_alloc_string ( const Char * text)

◆ rt_copy_memory()

Int Kernel::rt_copy_memory ( const voidPtr src,
voidPtr dst,
Size len )

ASCII API.

◆ rt_copy_memory_safe()

Int Kernel::rt_copy_memory_safe ( const voidPtr src,
voidPtr dst,
Size len,
Size dst_size )

◆ rt_hash_seed()

SizeT Kernel::rt_hash_seed ( const Char * seed,
UInt32 mul )
inline

◆ rt_is_alnum()

Int32 Kernel::rt_is_alnum ( Int32 character)

◆ rt_is_newln()

Boolean Kernel::rt_is_newln ( Char chr)

◆ rt_is_space()

Boolean Kernel::rt_is_space ( Char chr)

◆ rt_move_memory()

Int Kernel::rt_move_memory ( const voidPtr src,
voidPtr dst,
Size len )

◆ rt_set_memory()

voidPtr Kernel::rt_set_memory ( voidPtr dst,
UInt32 val,
Size len )

◆ rt_set_memory_safe()

voidPtr Kernel::rt_set_memory_safe ( voidPtr dst,
UInt32 value,
Size len,
Size dst_size )

◆ rt_string_append()

STATIC void Kernel::rt_string_append ( Char * lhs,
const Char * rhs,
Int32 cur )

◆ rt_string_cmp() [1/2]

Int32 Kernel::rt_string_cmp ( const Char * src,
const Char * cmp,
Size len )

◆ rt_string_cmp() [2/2]

Int32 Kernel::rt_string_cmp ( const Utf8Char * src,
const Utf8Char * cmp,
Size size )

◆ rt_string_has_char()

Char * Kernel::rt_string_has_char ( Char * str,
Char chr )

◆ rt_string_in_string()

VoidPtr Kernel::rt_string_in_string ( const Char * in,
const Char * needle )

◆ rt_string_len() [1/2]

Size Kernel::rt_string_len ( const Char * str)

◆ rt_string_len() [2/2]

SizeT Kernel::rt_string_len ( const Char * str,
SizeT _len )

◆ rt_to_char()

Char Kernel::rt_to_char ( UInt64 value,
Int32 base )

◆ rt_to_lower()

Int32 Kernel::rt_to_lower ( Int c)

◆ rt_to_string()

Bool Kernel::rt_to_string ( Char * str_out,
UInt64 base,
Int32 limit )

◆ rt_to_uppercase()

Int32 Kernel::rt_to_uppercase ( Int c)

◆ rt_zero_memory()

Void Kernel::rt_zero_memory ( voidPtr pointer,
Size len )

◆ rtl_create_kernel_process()

ProcessID Kernel::rtl_create_kernel_process ( rtl_main_kind main,
const Char * task_name )
noexcept

Executes a new process from a function. Kernel code only.

Note
This sets up a new stack, anything on the main function that calls the Kernel will not be accessible.
Parameters
mainthe start of the process.
Returns
The team's process id.

◆ rtl_create_user_process()

ProcessID Kernel::rtl_create_user_process ( rtl_main_kind main,
const Char * process_name )
noexcept

Executes a new process from a function. User code only.

Executes a new process from a function. Kernel code only.

Note
This sets up a new stack, anything on the main function that calls the Kernel will not be accessible.
Parameters
mainthe start of the process.
Returns
The team's process id.
Note
This sets up a new stack, anything on the main function that calls the Kernel will not be accessible.
Parameters
mainthe start of the process.
Returns
if the process was started or not.

◆ rtl_dma_alloc()

VoidPtr Kernel::rtl_dma_alloc ( SizeT size,
SizeT align )
inline

allocate from the rtl_dma_alloc system.

Parameters
sizethe size of the chunk to allocate.
alignalignement of pointer.

Check alignement according to architecture.

here we just align the address according to a align variable, i'd rather be a power of two really.

◆ rtl_dma_flush()

Void Kernel::rtl_dma_flush ( VoidPtr ptr,
SizeT size_buffer )
inline

Flush DMA pointer.

◆ rtl_dma_free()

Void Kernel::rtl_dma_free ( SizeT size)
inline

Free DMA pointer.

◆ rtl_fini_dylib_pef()

EXTERN_C Void Kernel::rtl_fini_dylib_pef ( USER_PROCESS & header,
IDylibRef lib,
Bool * successful )

◆ rtl_init_dylib_pef()

EXTERN_C IDylibRef Kernel::rtl_init_dylib_pef ( USER_PROCESS & header)

◆ rtl_microseconds()

UInt64 Kernel::rtl_microseconds ( UInt64 time)
inline

◆ rtl_milliseconds()

UInt64 Kernel::rtl_milliseconds ( UInt64 time)
inline

◆ rtl_sem_init()

BOOL Kernel::rtl_sem_init ( Semaphore & sem,
Int64 owner )
inline

Initializes the semaphore with an owner and a count of zero.

Parameters
sem
owner
Returns

◆ rtl_sem_is_valid()

BOOL Kernel::rtl_sem_is_valid ( const Semaphore & sem)
inline

Checks if the semaphore is valid.

◆ rtl_sem_release()

BOOL Kernel::rtl_sem_release ( Semaphore & sem)
inline

Releases the semaphore, resetting its owner and count.

Parameters
sem
Returns

◆ rtl_sem_wait()

BOOL Kernel::rtl_sem_wait ( Semaphore & sem,
Int64 timeout )
inline

Waits for the semaphore to be available, blocking until it is.

Parameters
sem
timeout
Returns

◆ sched_free_ptr_tree()

template<typename T>
STATIC Void Kernel::sched_free_ptr_tree ( T * tree)

Free heap tree.

◆ sched_try_go_upper_ptr_tree()

template<typename T>
STATIC T * Kernel::sched_try_go_upper_ptr_tree ( T * tree)

Allocate pointer to heap tree.

Parameters
treeThe tree to calibrate

◆ sk_acquire_ahci_device()

ErrorOr< AHCIDeviceInterface > Kernel::sk_acquire_ahci_device ( Int32 drv_index)

Acquires a new AHCI device with drv_index in mind.

Parameters
drv_indexThe drive index to assign.
Returns
A wrapped device interface if successful, or error code.

◆ sk_acquire_ata_device()

ErrorOr< ATADeviceInterface > Kernel::sk_acquire_ata_device ( Int32 drv_index)

Acquires a new PIO device with drv_index in mind.

Parameters
drv_indexThe drive index to assign.
Returns
A wrapped device interface if successful, or error code.

here we don't check if we probed ATA, since we'd need to grab IO after that.

◆ sk_init_ahci_device()

UInt16 Kernel::sk_init_ahci_device ( BOOL atapi)

Initialize an AHCI device (StorageKit)

◆ sk_init_ata_device()

BOOL Kernel::sk_init_ata_device ( BOOL is_master,
UInt16 & io,
UInt8 & master )

Initialize an PIO device (StorageKit function)

Parameters
is_masteris the current PIO master?
Returns
[io:master] for PIO device.

◆ strcmp()

EXTERN_C Kernel::Int32 Kernel::strcmp ( const char * a,
const char * b )

◆ tabulate()

TerminalDevice Kernel::tabulate ( )
inline

◆ urt_copy_memory()

Int Kernel::urt_copy_memory ( const voidPtr src,
voidPtr dst,
Size len )

◆ urt_set_memory()

Void Kernel::urt_set_memory ( const voidPtr src,
UInt32 dst,
Size len )

◆ urt_string_cmp()

Int Kernel::urt_string_cmp ( const Char * src,
const Char * cmp,
Size len )

UNICODE API.

◆ urt_string_len()

Size Kernel::urt_string_len ( const Utf8Char * str)

◆ utf_end_line()

Utf8TerminalDevice Kernel::utf_end_line ( )
inline

Variable Documentation

◆ kCDRomPacketTemplate

const scsi_packet_type<12> Kernel::kCDRomPacketTemplate
extern

◆ kChecksumPolys

UInt32 Kernel::kChecksumPolys[kCrcCnt]

The CRC32 seed table.

◆ kCurrentUser

User* Kernel::kCurrentUser = nullptr
inline

◆ kDebugCmdLen

SizeT Kernel::kDebugCmdLen = 256U
inlineconstexpr

◆ kDmaPoolEnd

const UInt8* Kernel::kDmaPoolEnd = (UInt8*) (kNeDMAPoolStart + kNeDMAPoolSize)
inline

◆ kDmaPoolPtr

UInt8* Kernel::kDmaPoolPtr = (UInt8*) kNeDMAPoolStart
inline

DMA pool base pointer, here we're sure that AHCI or whatever tricky standard sees it.

◆ kErrorAsync

KPCError Kernel::kErrorAsync = 57
inlineconstexpr

◆ kErrorCDTrayBroken

KPCError Kernel::kErrorCDTrayBroken = 62
inlineconstexpr

◆ kErrorDirectoryNotFound

KPCError Kernel::kErrorDirectoryNotFound = 36
inlineconstexpr

◆ kErrorDisk

KPCError Kernel::kErrorDisk = 55
inlineconstexpr

◆ kErrorDiskIsCorrupted

KPCError Kernel::kErrorDiskIsCorrupted = 54
inlineconstexpr

◆ kErrorDiskIsFull

KPCError Kernel::kErrorDiskIsFull = 38
inlineconstexpr

◆ kErrorDiskIsTooTiny

KPCError Kernel::kErrorDiskIsTooTiny = 65
inlineconstexpr

◆ kErrorDiskReadOnly

KPCError Kernel::kErrorDiskReadOnly = 37
inlineconstexpr

◆ kErrorDmaExhausted

KPCError Kernel::kErrorDmaExhausted = 66
inlineconstexpr

◆ kErrorExecutable

KPCError Kernel::kErrorExecutable = 33
inlineconstexpr

◆ kErrorExecutableLib

KPCError Kernel::kErrorExecutableLib = 34
inlineconstexpr

◆ kErrorFileExists

KPCError Kernel::kErrorFileExists = 46
inlineconstexpr

◆ kErrorFileLocked

KPCError Kernel::kErrorFileLocked = 64
inlineconstexpr

◆ kErrorFileNotFound

KPCError Kernel::kErrorFileNotFound = 35
inlineconstexpr

◆ kErrorForkAlreadyExists

KPCError Kernel::kErrorForkAlreadyExists = 50
inlineconstexpr

◆ kErrorFormatFailed

KPCError Kernel::kErrorFormatFailed = 47
inlineconstexpr

◆ kErrorHeapNotPresent

KPCError Kernel::kErrorHeapNotPresent = 52
inlineconstexpr

◆ kErrorHeapOutOfMemory

KPCError Kernel::kErrorHeapOutOfMemory = 44
inlineconstexpr

◆ kErrorInternal

KPCError Kernel::kErrorInternal = 49
inlineconstexpr

◆ kErrorInvalidCreds

KPCError Kernel::kErrorInvalidCreds = 61
inlineconstexpr

◆ kErrorInvalidData

KPCError Kernel::kErrorInvalidData = 56
inlineconstexpr

◆ kErrorIPC

KPCError Kernel::kErrorIPC = 59
inlineconstexpr

◆ kErrorLocalNumber

KPCError Kernel::kErrorLocalNumber = 0UL
inline

◆ kErrorMath

KPCError Kernel::kErrorMath = 42
inlineconstexpr

◆ kErrorNetworkTimeout

KPCError Kernel::kErrorNetworkTimeout = 48
inlineconstexpr

◆ kErrorNoEntrypoint

KPCError Kernel::kErrorNoEntrypoint = 53
inlineconstexpr

◆ kErrorNonBlocking

KPCError Kernel::kErrorNonBlocking = 58
inlineconstexpr

◆ kErrorNoNetwork

KPCError Kernel::kErrorNoNetwork = 43
inlineconstexpr

◆ kErrorNoSuchDisk

KPCError Kernel::kErrorNoSuchDisk = 45
inlineconstexpr

◆ kErrorOutOfBitMapMemory

KPCError Kernel::kErrorOutOfBitMapMemory = 67
inlineconstexpr

◆ kErrorOutOfTeamSlot

KPCError Kernel::kErrorOutOfTeamSlot = 51
inlineconstexpr

◆ kErrorProcessFault

KPCError Kernel::kErrorProcessFault = 39
inlineconstexpr

◆ kErrorSign

KPCError Kernel::kErrorSign = 60
inlineconstexpr

◆ kErrorSocketHangUp

KPCError Kernel::kErrorSocketHangUp = 40
inlineconstexpr

◆ kErrorSuccess

KPCError Kernel::kErrorSuccess = 0
inlineconstexpr

◆ kErrorThreadLocalStorage

KPCError Kernel::kErrorThreadLocalStorage = 41
inlineconstexpr

◆ kErrorUnimplemented

KPCError Kernel::kErrorUnimplemented = -1
inlineconstexpr

Generic errors.

◆ kErrorUnrecoverableDisk

KPCError Kernel::kErrorUnrecoverableDisk = 63
inlineconstexpr

◆ kHardwareThreadScheduler

STATIC HardwareThreadScheduler Kernel::kHardwareThreadScheduler

◆ kHeFSTimeInvalid

ATime Kernel::kHeFSTimeInvalid = 0x0000000000000000
inlineconstexpr

◆ kHeFSTimeMax

ATime Kernel::kHeFSTimeMax = 0xFFFFFFFFFFFFFFFF - 1
inlineconstexpr

◆ kHWThread

STATIC HAL_HARDWARE_THREAD Kernel::kHWThread[kMaxAPInsideSched] = {{nullptr}}

◆ kIPCMsgSize

auto Kernel::kIPCMsgSize = 6094U
inlineconstexpr

◆ kMaxPorts

UInt16 Kernel::kMaxPorts = 16
inlineconstexpr

◆ kMinACPIVer

STATIC const auto Kernel::kMinACPIVer = 1
constexpr

◆ kMountedFilesystem

STATIC IFilesystemMgr* Kernel::kMountedFilesystem = nullptr

◆ kPageMgr

STATIC PageMgr Kernel::kPageMgr

◆ kPRDTTransferStatus

EXTERN_C Int32 Kernel::kPRDTTransferStatus

◆ kRaiseOnBugCheck

STATIC Bool Kernel::kRaiseOnBugCheck = false

◆ kRestrictStrLen

STATIC const auto Kernel::kRestrictStrLen = 8U
inline

◆ kRootUser

User* Kernel::kRootUser = nullptr
inline

◆ kTimeUnit

Int16 Kernel::kTimeUnit = 1000
inlineconstexpr

◆ kX

STATIC SizeT Kernel::kX = kFontSizeX

◆ kY

STATIC SizeT Kernel::kY = kFontSizeY