NeKernel dev
Loading...
Searching...
No Matches
BootThread.h
Go to the documentation of this file.
1/* ========================================
2
3 Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5======================================== */
6
7#pragma once
8
10#include <KernelKit/MSDOS.h>
11#include <KernelKit/PE.h>
12
13namespace Boot {
14using namespace Kernel;
15
16class BootThread;
17
19class BootThread final {
20 public:
21 explicit BootThread() = delete;
22 ~BootThread() = default;
23
24 explicit BootThread(Kernel::VoidPtr blob);
25
26 BootThread& operator=(const BootThread&) = default;
27 BootThread(const BootThread&) = default;
28
29 Int32 Start(HEL::BootInfoHeader* handover, BOOL is_own_stack);
30 void SetName(const char* name);
31 const char* GetName();
32 bool IsValid();
33
34 private:
35 Char fBlobName[256U] = {"BootThread"};
37 VoidPtr fBlob{nullptr};
38 UInt8* fStack{nullptr};
40};
41} // namespace Boot
#define BOOL
The handover boot protocol.
Bootloader Thread class.
Definition BootThread.h:19
bool IsValid()
Definition BootThread.cc:215
Int32 Start(HEL::BootInfoHeader *handover, BOOL is_own_stack)
Definition BootThread.cc:166
Char fBlobName[256U]
Definition BootThread.h:35
HEL::BootInfoHeader * fHandover
Definition BootThread.h:39
UInt8 * fStack
Definition BootThread.h:38
const char * GetName()
Definition BootThread.cc:207
BootThread & operator=(const BootThread &)=default
BootThread(const BootThread &)=default
VoidPtr fStartAddress
Definition BootThread.h:36
VoidPtr fBlob
Definition BootThread.h:37
~BootThread()=default
void SetName(const char *name)
Definition BootThread.cc:211
BootThread()=delete
Framebuffer helpers.
Definition BootKit.h:42
char Char
Definition Config.h:51
__UINT8_TYPE__ UInt8
Definition Config.h:55
void * VoidPtr
Definition Config.h:33
__INT32_TYPE__ Int32
Definition Config.h:38
Definition Handover.h:53