diff options
Diffstat (limited to 'dev/kernel/CFKit')
| -rw-r--r-- | dev/kernel/CFKit/GUIDWizard.h | 21 | ||||
| -rw-r--r-- | dev/kernel/CFKit/GUIDWrapper.h | 48 | ||||
| -rw-r--r-- | dev/kernel/CFKit/Property.h | 51 | ||||
| -rw-r--r-- | dev/kernel/CFKit/Utils.h | 48 |
4 files changed, 0 insertions, 168 deletions
diff --git a/dev/kernel/CFKit/GUIDWizard.h b/dev/kernel/CFKit/GUIDWizard.h deleted file mode 100644 index 8745a1f9..00000000 --- a/dev/kernel/CFKit/GUIDWizard.h +++ /dev/null @@ -1,21 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. - -======================================== */ - -#pragma once - -#include <CFKit/GUIDWrapper.h> -#include <NeKit/Array.h> -#include <NeKit/ArrayList.h> -#include <NeKit/Defines.h> -#include <NeKit/ErrorOr.h> -#include <NeKit/KString.h> -#include <NeKit/Ref.h> -#include <NeKit/Stream.h> - -namespace Kernel::CF::XRN::Version1 { -Ref<GUIDSequence*> cf_make_sequence(const ArrayList<UInt32>& seq); -ErrorOr<Ref<KString>> cf_try_guid_to_string(Ref<GUIDSequence*>& guid); -} // namespace Kernel::CF::XRN::Version1 diff --git a/dev/kernel/CFKit/GUIDWrapper.h b/dev/kernel/CFKit/GUIDWrapper.h deleted file mode 100644 index 2bf7b64e..00000000 --- a/dev/kernel/CFKit/GUIDWrapper.h +++ /dev/null @@ -1,48 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. - -======================================== */ - -#pragma once - -#include <NeKit/Defines.h> -#include <NeKit/Ref.h> -#include <NeKit/Stream.h> - -/* GUID for C++ classes. */ - -#define kXRNNil "@{........-....-M...-N...-............}" - -/// @brief eXtended Resource Namespace -namespace Kernel::CF::XRN { -union GUIDSequence final { - alignas(8) UShort fU8[16]; - alignas(8) UShort fU16[8]; - alignas(8) UInt fU32[4]; - alignas(8) ULong fU64[2]; - - struct GUID { - alignas(8) UInt fMs1; - UShort fMs2; - UShort fMs3; - UChar fMs4[8]; - } fUuid; -}; - -class GUID final { - public: - explicit GUID() = default; - ~GUID() = default; - - public: - NE_COPY_DEFAULT(GUID) - - public: - GUIDSequence& operator->() noexcept { return fUUID; } - GUIDSequence& Leak() noexcept { return fUUID; } - - private: - GUIDSequence fUUID; -}; -} // namespace Kernel::CF::XRN diff --git a/dev/kernel/CFKit/Property.h b/dev/kernel/CFKit/Property.h deleted file mode 100644 index cfb8a599..00000000 --- a/dev/kernel/CFKit/Property.h +++ /dev/null @@ -1,51 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. - -======================================== */ - -#ifndef CFKIT_PROPS_H -#define CFKIT_PROPS_H - -#include <CFKit/GUIDWrapper.h> -#include <NeKit/Array.h> -#include <NeKit/Defines.h> -#include <NeKit/Function.h> -#include <NeKit/KString.h> - -#define kMaxPropLen (256U) - -namespace Kernel::CF { -/// @brief handle to anything (number, ptr, string...) -using PropertyId = UIntPtr; - -/// @brief Kernel property class. -/// @example /prop/smp_max or /prop/kern_ver -class Property { - public: - Property(); - virtual ~Property(); - - public: - Property& operator=(const Property&) = default; - Property(const Property&) = default; - - BOOL StringEquals(KBasicString<>& name); - PropertyId& GetValue(); - KBasicString<>& GetKey(); - - private: - KString fName{kMaxPropLen}; - PropertyId fValue{0UL}; - Ref<XRN::GUID> fGUID{}; -}; - -template <SizeT N> -using PropertyArray = Array<Property, N>; -} // namespace Kernel::CF - -namespace Kernel { -using namespace Kernel::CF; -} - -#endif // !CFKIT_PROPS_H diff --git a/dev/kernel/CFKit/Utils.h b/dev/kernel/CFKit/Utils.h deleted file mode 100644 index 247ad5fb..00000000 --- a/dev/kernel/CFKit/Utils.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef CFKIT_UTILS_H -#define CFKIT_UTILS_H - -#include <KernelKit/MSDOS.h> -#include <KernelKit/PE.h> - -/// @brief CFKit -namespace Kernel::CF { -/// @brief Finds the PE header inside the blob. -inline auto ldr_find_exec_header(DosHeaderPtr ptrDos) -> LDR_EXEC_HEADER_PTR { - if (!ptrDos) return nullptr; - - if (ptrDos->eMagic[0] != kMagMz0) return nullptr; - - if (ptrDos->eMagic[1] != kMagMz1) return nullptr; - -#ifdef __NE_AMD64__ - return (LDR_EXEC_HEADER_PTR) (VoidPtr) (&ptrDos->eLfanew + 1); -#else - return (LDR_EXEC_HEADER_PTR) (VoidPtr) (&ptrDos->eLfanew); -#endif -} - -/// @brief Finds the PE optional header inside the blob. -inline auto ldr_find_opt_exec_header(DosHeaderPtr ptrDos) -> LDR_OPTIONAL_HEADER_PTR { - if (!ptrDos) return nullptr; - - auto exec = ldr_find_exec_header(ptrDos); - - if (!exec) return nullptr; - - return (LDR_OPTIONAL_HEADER_PTR) (VoidPtr) (&exec->Characteristics + 1); -} - -/// @brief Finds the PE header inside the blob. -/// @note overloaded function. -inline auto ldr_find_exec_header(const Char* ptrDos) -> LDR_EXEC_HEADER_PTR { - return ldr_find_exec_header((DosHeaderPtr) ptrDos); -} - -/// @brief Finds the PE header inside the blob. -/// @note overloaded function. -inline auto ldr_find_opt_exec_header(const Char* ptrDos) -> LDR_OPTIONAL_HEADER_PTR { - return ldr_find_opt_exec_header((DosHeaderPtr) ptrDos); -} -} // namespace Kernel::CF - -#endif // ifndef CFKIT_UTILS_H |
