11#define NEKIT_VERSION_STR "0.0.1"
12#define NEKIT_VERSION_BCD 0x0001
15#error !!! Kernel compiles only with a C++ compiler. !!!
18#if __cplusplus <= 201703L
23#if !__has_feature(cxx_nullptr)
25#error !!! You must at least have nullptr featured on your C++ compiler. !!!
43using UInt = __UINT32_TYPE__;
45using Long = __INT64_TYPE__;
100template <
typename Args>
102 return static_cast<Args&&
>(arg);
109template <
typename Args>
110inline Args&&
move(Args&& arg) {
111 return static_cast<Args&&
>(arg);
129 template <
typename T>
139 template <
typename OutputClass,
typename FactoryClass>
141 FactoryClass class_fac;
142 return class_fac.template From<OutputClass>(type);
151 template <
typename T,
typename Y>
153 if (type.template IsSerializable()) {
154 return type.template Error();
157 return type.template
As<Y>();
ICodec & operator=(const ICodec &)=default
virtual ~ICodec()=default
ICodec(const ICodec &)=default
Y As(T type)
Convert T to a Y type.
Definition Config.h:152
OutputClass * Construct(Char *type)
Construct from type to class.
Definition Config.h:140
const Char * AsBytes(T type)
Convert type to bytes.
Definition Config.h:130
ISchedulable(const ISchedulable &)=default
virtual ~ISchedulable()=default
ISchedulable & operator=(const ISchedulable &)=default
virtual Bool IsKernel()
Is this object only accepting kernel tasks?
Definition Config.h:175
virtual Bool HasMP()
Is this object offloading to another CPU?
Definition Config.h:178
virtual Bool IsUser()
Is this object only accepting user tasks?
Definition Config.h:172
UPS inline definitions.
Definition Device.h:12
char Char
Definition Config.h:51
void Void
Definition Config.h:87
char32_t Utf32Char
Definition Config.h:78
__INT_FAST32_TYPE__ IntFast
Definition Config.h:63
long SSizeT
Definition Config.h:58
char8_t Char8
Definition Config.h:53
__SIZE_TYPE__ Size
Definition Config.h:59
__UINT8_TYPE__ UChar
Definition Config.h:54
__UINT16_TYPE__ UInt16
Definition Config.h:40
Args && forward(Args &arg)
Forward object.
Definition Config.h:101
float Float
Definition Config.h:82
UInt32 PhysicalAddressKind
Definition Config.h:84
Int16 SInt16
Definition Config.h:67
__INT64_TYPE__ Long
Definition Config.h:45
void * voidPtr
Definition Config.h:32
__INT64_TYPE__ Int64
Definition Config.h:46
UInt64 Lba
Definition Config.h:90
Int32 SInt32
Definition Config.h:68
__SIZE_TYPE__ SizeT
Definition Config.h:60
__PTRDIFF_TYPE__ PtrDiff
Definition Config.h:65
UInt8 * Ptr8
Definition Config.h:73
__INT_FAST64_TYPE__ IntFast64
Definition Config.h:64
Endian
Definition Config.h:94
@ kEndianInvalid
Definition Config.h:94
@ kEndianLittle
Definition Config.h:94
@ kEndianBig
Definition Config.h:94
@ kEndianMixed
Definition Config.h:94
@ kEndianCount
Definition Config.h:94
decltype(nullptr) nullPtr
Definition Config.h:34
short Short
Definition Config.h:41
__UINT64_TYPE__ ULong
Definition Config.h:47
long SSize
Definition Config.h:57
UInt32 * Ptr32
Definition Config.h:72
__INT8_TYPE__ Int8
Definition Config.h:52
decltype(nullptr) NullPtr
Definition Config.h:35
__UINT8_TYPE__ UInt8
Definition Config.h:55
__UINT32_TYPE__ UInt32
Definition Config.h:44
__INTPTR_TYPE__ IntPtr
Definition Config.h:61
void * VoidPtr
Definition Config.h:33
void * Any
Definition Config.h:88
__INT32_TYPE__ Int32
Definition Config.h:38
double Double
Definition Config.h:81
Args && move(Args &&arg)
Move object.
Definition Config.h:110
char16_t Char16
Definition Config.h:92
__UINT16_TYPE__ UShort
Definition Config.h:39
long double LongDouble
Definition Config.h:80
char8_t Utf8Char
Definition Config.h:75
int Int
Definition Config.h:37
__INT16_TYPE__ Int16
Definition Config.h:42
bool Boolean
Definition Config.h:49
__UINT32_TYPE__ UInt
Definition Config.h:43
__UINTPTR_TYPE__ UIntPtr
Definition Config.h:62
UIntPtr VirtualAddressKind
Definition Config.h:85
Int64 SInt64
Definition Config.h:69
char16_t Utf16Char
Definition Config.h:76
UIntPtr * Ptr64
Definition Config.h:71
__UINT64_TYPE__ UInt64
Definition Config.h:48
wchar_t WideChar
Definition Config.h:77
bool Bool
Definition Config.h:50