diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-05-23 07:53:50 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-05-23 07:53:50 +0000 |
| commit | f5081a8f9a8537ad5be5d639955cd1d0e68a9e1d (patch) | |
| tree | c9305701aa2d4ee0235c85c67cd6633e5763ec21 | |
| parent | ca675beb41dba8d7d16c5793b55d1672f38be3b4 (diff) | |
| parent | 06b1a4bb12b4043b606d8bb0d55942d636c6833e (diff) | |
Merged in MHR-23 (pull request #13)
MHR-23
272 files changed, 2313 insertions, 976 deletions
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 77e838f7..cda7d4a1 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -4,9 +4,9 @@ "name": "MicroKernel (Macintosh)", "includePath": [ "${workspaceFolder}/Kernel/**", - "${workspaceFolder}/Kernel/NewBoot/**", - "${workspaceFolder}/SDK/Developer/CoreSystem/**", - "${workspaceFolder}/SDK/Developer/**" + "${workspaceFolder}/Boot/**", + "${workspaceFolder}/SDK/Library/CoreSystem/**", + "${workspaceFolder}/SDK/Library/**" ], "defines": [ "__MAHROUSS__", @@ -37,9 +37,9 @@ "name": "MicroKernel (Windows)", "includePath": [ "${workspaceFolder}/Kernel/**", - "${workspaceFolder}/Kernel/NewBoot/**", - "${workspaceFolder}/SDK/Developer/CoreSystem/**", - "${workspaceFolder}/SDK/Developer/**" + "${workspaceFolder}/Boot/**", + "${workspaceFolder}/SDK/Library/CoreSystem/**", + "${workspaceFolder}/SDK/Library/**" ], "defines": [ "__MAHROUSS__", diff --git a/Boot/BootKit/BitManip.hxx b/Boot/BootKit/BitManip.hxx index bf46e75c..cef6c875 100644 --- a/Boot/BootKit/BitManip.hxx +++ b/Boot/BootKit/BitManip.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/BootKit/BootKit.hxx b/Boot/BootKit/BootKit.hxx index 179ca141..961137ca 100644 --- a/Boot/BootKit/BootKit.hxx +++ b/Boot/BootKit/BootKit.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -360,7 +360,7 @@ inline Boolean BDiskFormatFactory<BootDev>::Format(const char* partName, fDiskDev.Write(buf, sectorSz); BTextWriter writer; - writer.Write(L"New Boot: Write-Partition, OK.\r"); + writer.Write(L"New Boot: Write-Partition: OK.\r"); return true; } diff --git a/Boot/BootKit/Device.hxx b/Boot/BootKit/Device.hxx index 3bdc2829..215c10b6 100644 --- a/Boot/BootKit/Device.hxx +++ b/Boot/BootKit/Device.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/BootKit/EPM.hxx b/Boot/BootKit/EPM.hxx index 0df86724..0cefad5d 100644 --- a/Boot/BootKit/EPM.hxx +++ b/Boot/BootKit/EPM.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/BootKit/HW/ATA.hxx b/Boot/BootKit/HW/ATA.hxx index 8f06739b..d9b251f5 100644 --- a/Boot/BootKit/HW/ATA.hxx +++ b/Boot/BootKit/HW/ATA.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/BootKit/HW/SATA.hxx b/Boot/BootKit/HW/SATA.hxx index 1ad87493..bbb65ec0 100644 --- a/Boot/BootKit/HW/SATA.hxx +++ b/Boot/BootKit/HW/SATA.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/BootKit/Platform.hxx b/Boot/BootKit/Platform.hxx index 972430ce..14a1fa54 100644 --- a/Boot/BootKit/Platform.hxx +++ b/Boot/BootKit/Platform.hxx @@ -1,14 +1,14 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once /** - @file Processor.hxx - @brief Processor specific code. + @file Processor.hxx + @brief Processor specific code. */ #ifdef __x86_64__ diff --git a/Boot/BootKit/Protocol.hxx b/Boot/BootKit/Protocol.hxx index 95a5ca6f..3d9fd9f8 100644 --- a/Boot/BootKit/Protocol.hxx +++ b/Boot/BootKit/Protocol.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/BootKit/Vendor/Qr.hxx b/Boot/BootKit/Vendor/Qr.hxx index 1df0bdaf..3bafc09f 100644 --- a/Boot/BootKit/Vendor/Qr.hxx +++ b/Boot/BootKit/Vendor/Qr.hxx @@ -5,14 +5,16 @@ #include <stddef.h> #include <stdint.h> -#include <BootKit/Vendor/QrVendor/base.h> -#include <BootKit/Vendor/QrVendor/bit.h> +#include <BootKit/Vendor/Shared/base.h> +#include <BootKit/Vendor/Shared/bit.h> #include <BootKit/Vendor/QrPrelude.hxx> #include <Builtins/Toolbox/Toolbox.hxx> #include <BootKit/Vendor/Support.hxx> #include <CompilerKit/Detail.hxx> +/// @note the QR code is still code 128, it utilizes the same concept of having it's own character set. + namespace qr { inline uint8_t min_poly = @@ -285,14 +287,6 @@ namespace qr { return SIDE; } - constexpr auto data_size() const - { - return N_BITS; - } - constexpr auto data_ptr() const - { - return code; - } bool module(int x, int y); bool encode(const char* str, size_t len, Ecc ecc, int mask = -1); diff --git a/Boot/BootKit/Vendor/QrVendor/bit.h b/Boot/BootKit/Vendor/QrVendor/bit.h deleted file mode 100644 index 94ab0bf2..00000000 --- a/Boot/BootKit/Vendor/QrVendor/bit.h +++ /dev/null @@ -1,247 +0,0 @@ -#ifndef UTL_BIT_H -#define UTL_BIT_H - -#include <bit> - -namespace utl -{ - - /** - * @brief Size of object in terms of bits. - * - * @tparam T Object type - * @return Number of bits - */ - template <class T> - constexpr auto bit_size() - { - return sizeof(T) * 8; - } - - /** - * @brief Integer with all bits set to 1. - * - * @tparam T Integer type - * @return All set integer - */ - template <class T> - constexpr T bit_full() - { - return T(-1); - } - - /** - * @brief Wrap around mask for power of two number of bits - * within given integer type. For example: - * [ bit_wrap<uint8_t> = 8 - 1 = 0b111 ] - * [ bit_wrap<uint16_t> = 16 - 1 = 0b1111 ] - * [ bit_wrap<uint32_t> = 32 - 1 = 0b11111 ] - * - * @tparam T Integer type - * @return Wrap around mask for number of bits - */ - template <class T> - constexpr T bit_wrap() - { - return bit_size<T>() - 1; - } - - /** - * @brief Number of bits to fit bit_wrap<T> result, in other words - * bit width of (sizeof(T) * 8 - 1). For example: - * [ bit_shft<uint8_t> = bit_width(0b111) = 3 ] - * [ bit_shft<uint16_t> = bit_width(0b1111) = 4 ] - * [ bit_shft<uint32_t> = bit_width(0b11111) = 5 ] - * - * @tparam T Integer type - * @return Number of bits to shift to divide by sizeof(T) * 8 - */ - template <class T> - constexpr auto bit_shft() - { - return std::bit_width(bit_wrap<T>()); - } - - /** - * @brief Round up division by number of bits within given integer type, - * which sizeof(T) * 8 is power of two. - * - * @tparam T Inetegr type - * @param x Dividend - * @return Quotient - */ - template <class T> - constexpr auto bit_ceil(auto x) - { - return (x + bit_wrap<T>()) >> bit_shft<T>(); - } - - /** - * @brief Count leading zeros. - * - * @param x Unsigned integer argument - * @return Number of leading zeros - */ - constexpr unsigned cntlz(auto x) - { - if constexpr (std::is_same_v<decltype(x), int>) - return std::countl_zero(unsigned(x)); - else - return std::countl_zero(x); - } - - /** - * @brief Count trailing zeros. - * - * @param x Unsigned integer argument - * @return Number of trailing zeros - */ - constexpr unsigned cnttz(auto x) - { - if constexpr (std::is_same_v<decltype(x), int>) - return std::countr_zero(unsigned(x)); - else - return std::countr_zero(x); - } - - /** - * @brief Get number of words (integers) required to store N bits. - * - * @tparam T Word integer type - * @param n Number of bits to store - * @return Number of words - */ - template <class T> - constexpr size_t words_in_bits(size_t n) - { - return (n >> bit_shft<T>()) + !!(n & bit_wrap<T>()); - } - - /** - * @brief Get number of bytes required to store N bits. - * - * @param n Number of bits to store - * @return Number of bytes - */ - constexpr size_t bytes_in_bits(size_t n) - { - return words_in_bits<uint8_t>(n); - } - - /** - * @brief Make integer with bit at given position. - * - * @tparam T Inetegr type - * @param n Bit position - * @return Integer with set bit - */ - template <class T = unsigned> - constexpr T bit(int n) - { - return T(1) << n; - } - - /** - * @brief Get n-th bit of an integer. - * - * @tparam T Integer type - * @param x Integer - * @param n Bit position from LSB - * @return true if set - */ - template <class T> - constexpr bool get_bit(T x, int n) - { - return (x >> n) & 1; - } - - /** - * @brief Set n-th bit of an integer. - * - * @tparam T Integer type - * @param x Integer - * @param n Bit position from LSB - */ - template <class T> - constexpr void set_bit(T& x, int n) - { - x |= 1 << n; - } - - /** - * @brief Clear n-th bit of an integer. - * - * @tparam T Integer type - * @param x Integer - * @param n Bit position from LSB - */ - template <class T> - constexpr void clr_bit(T& x, int n) - { - x &= ~(1 << n); - } - - /** - * @brief Get n-th bit in array of words (starting from LSB). - * - * @tparam T Word type - * @param p Array of words - * @param n Index of bit to get - * @return true if set - */ - template <class T> - constexpr bool get_arr_bit(const T* p, unsigned n) - { - return get_bit(p[n >> bit_shft<T>()], n & bit_wrap<T>()); - } - - /** - * @brief Set n-th bit in array of words (starting from LSB). - * - * @tparam T Word type - * @param p Array of words - * @param n Index of bit to set - */ - template <class T> - constexpr void set_arr_bit(T* p, unsigned n) - { - set_bit(p[n >> bit_shft<T>()], n & bit_wrap<T>()); - } - - /** - * @brief Clear n-th bit in array of words (starting from LSB). - * - * @tparam T Word type - * @param p Array of words - * @param n Index of bit to clear - */ - template <class T> - constexpr void clr_arr_bit(T* p, unsigned n) - { - clr_bit(p[n >> bit_shft<T>()], n & bit_wrap<T>()); - } - - /** - * @brief Shift bits left in array of integer elements from least significant bit - * and considering 0-th byte as the right most. - * uint16_t example: 0b10000000'11100001 ==> 0b00000001'11000010. - * - * @tparam T Integer type - * @tparam L Length of array - * @param x Array of integers, nullptr not acceptable! - * @param len Number of elements - */ - template <class T, size_t L> - constexpr void shift_left(T (&x)[L]) - { - for (int i = L - 1; i > 0; --i) - { - x[i] <<= 1; - x[i] |= x[i - 1] >> bit_wrap<T>(); - } - x[0] <<= 1; - } - -} // namespace utl - -#endif diff --git a/Boot/BootKit/Vendor/QrVendor/base.h b/Boot/BootKit/Vendor/Shared/base.h index a98ae4f0..d1c028d7 100644 --- a/Boot/BootKit/Vendor/QrVendor/base.h +++ b/Boot/BootKit/Vendor/Shared/base.h @@ -9,12 +9,12 @@ namespace utl { /** - * @brief Helper to get number of elements in array. - * - * @tparam T Auto-deduced element type - * @tparam N Auto-deduced number of elements - * @return Array size - */ + * @brief Helper to get number of elements in array. + * + * @tparam T Auto-deduced element type + * @tparam N Auto-deduced number of elements + * @return Array size + */ template <class T, size_t N> constexpr size_t countof(T (&)[N]) { diff --git a/Boot/BootKit/Vendor/Shared/bit.h b/Boot/BootKit/Vendor/Shared/bit.h new file mode 100644 index 00000000..6923e94a --- /dev/null +++ b/Boot/BootKit/Vendor/Shared/bit.h @@ -0,0 +1,247 @@ +#ifndef UTL_BIT_H +#define UTL_BIT_H + +#include <bit> + +namespace utl +{ + + /** + * @brief Size of object in terms of bits. + * + * @tparam T Object type + * @return Number of bits + */ + template <class T> + constexpr auto bit_size() + { + return sizeof(T) * 8; + } + + /** + * @brief Integer with all bits set to 1. + * + * @tparam T Integer type + * @return All set integer + */ + template <class T> + constexpr T bit_full() + { + return T(-1); + } + + /** + * @brief Wrap around mask for power of two number of bits + * within given integer type. For example: + * [ bit_wrap<uint8_t> = 8 - 1 = 0b111 ] + * [ bit_wrap<uint16_t> = 16 - 1 = 0b1111 ] + * [ bit_wrap<uint32_t> = 32 - 1 = 0b11111 ] + * + * @tparam T Integer type + * @return Wrap around mask for number of bits + */ + template <class T> + constexpr T bit_wrap() + { + return bit_size<T>() - 1; + } + + /** + * @brief Number of bits to fit bit_wrap<T> result, in other words + * bit width of (sizeof(T) * 8 - 1). For example: + * [ bit_shft<uint8_t> = bit_width(0b111) = 3 ] + * [ bit_shft<uint16_t> = bit_width(0b1111) = 4 ] + * [ bit_shft<uint32_t> = bit_width(0b11111) = 5 ] + * + * @tparam T Integer type + * @return Number of bits to shift to divide by sizeof(T) * 8 + */ + template <class T> + constexpr auto bit_shft() + { + return std::bit_width(bit_wrap<T>()); + } + + /** + * @brief Round up division by number of bits within given integer type, + * which sizeof(T) * 8 is power of two. + * + * @tparam T Inetegr type + * @param x Dividend + * @return Quotient + */ + template <class T> + constexpr auto bit_ceil(auto x) + { + return (x + bit_wrap<T>()) >> bit_shft<T>(); + } + + /** + * @brief Count leading zeros. + * + * @param x Unsigned integer argument + * @return Number of leading zeros + */ + constexpr unsigned cntlz(auto x) + { + if constexpr (std::is_same_v<decltype(x), int>) + return std::countl_zero(unsigned(x)); + else + return std::countl_zero(x); + } + + /** + * @brief Count trailing zeros. + * + * @param x Unsigned integer argument + * @return Number of trailing zeros + */ + constexpr unsigned cnttz(auto x) + { + if constexpr (std::is_same_v<decltype(x), int>) + return std::countr_zero(unsigned(x)); + else + return std::countr_zero(x); + } + + /** + * @brief Get number of words (integers) required to store N bits. + * + * @tparam T Word integer type + * @param n Number of bits to store + * @return Number of words + */ + template <class T> + constexpr size_t words_in_bits(size_t n) + { + return (n >> bit_shft<T>()) + !!(n & bit_wrap<T>()); + } + + /** + * @brief Get number of bytes required to store N bits. + * + * @param n Number of bits to store + * @return Number of bytes + */ + constexpr size_t bytes_in_bits(size_t n) + { + return words_in_bits<uint8_t>(n); + } + + /** + * @brief Make integer with bit at given position. + * + * @tparam T Inetegr type + * @param n Bit position + * @return Integer with set bit + */ + template <class T = unsigned> + constexpr T bit(int n) + { + return T(1) << n; + } + + /** + * @brief Get n-th bit of an integer. + * + * @tparam T Integer type + * @param x Integer + * @param n Bit position from LSB + * @return true if set + */ + template <class T> + constexpr bool get_bit(T x, int n) + { + return (x >> n) & 1; + } + + /** + * @brief Set n-th bit of an integer. + * + * @tparam T Integer type + * @param x Integer + * @param n Bit position from LSB + */ + template <class T> + constexpr void set_bit(T& x, int n) + { + x |= 1 << n; + } + + /** + * @brief Clear n-th bit of an integer. + * + * @tparam T Integer type + * @param x Integer + * @param n Bit position from LSB + */ + template <class T> + constexpr void clr_bit(T& x, int n) + { + x &= ~(1 << n); + } + + /** + * @brief Get n-th bit in array of words (starting from LSB). + * + * @tparam T Word type + * @param p Array of words + * @param n Index of bit to get + * @return true if set + */ + template <class T> + constexpr bool get_arr_bit(const T* p, unsigned n) + { + return get_bit(p[n >> bit_shft<T>()], n & bit_wrap<T>()); + } + + /** + * @brief Set n-th bit in array of words (starting from LSB). + * + * @tparam T Word type + * @param p Array of words + * @param n Index of bit to set + */ + template <class T> + constexpr void set_arr_bit(T* p, unsigned n) + { + set_bit(p[n >> bit_shft<T>()], n & bit_wrap<T>()); + } + + /** + * @brief Clear n-th bit in array of words (starting from LSB). + * + * @tparam T Word type + * @param p Array of words + * @param n Index of bit to clear + */ + template <class T> + constexpr void clr_arr_bit(T* p, unsigned n) + { + clr_bit(p[n >> bit_shft<T>()], n & bit_wrap<T>()); + } + + /** + * @brief Shift bits left in array of integer elements from least significant bit + * and considering 0-th byte as the right most. + * uint16_t example: 0b10000000'11100001 ==> 0b00000001'11000010. + * + * @tparam T Integer type + * @tparam L Length of array + * @param x Array of integers, nullptr not acceptable! + * @param len Number of elements + */ + template <class T, size_t L> + constexpr void shift_left(T (&x)[L]) + { + for (int i = L - 1; i > 0; --i) + { + x[i] <<= 1; + x[i] |= x[i - 1] >> bit_wrap<T>(); + } + x[0] <<= 1; + } + +} // namespace utl + +#endif diff --git a/Boot/BootKit/Vendor/Support.hxx b/Boot/BootKit/Vendor/Support.hxx index d8075152..6a480779 100644 --- a/Boot/BootKit/Vendor/Support.hxx +++ b/Boot/BootKit/Vendor/Support.hxx @@ -1,12 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once -/// @file Purpose of this file is to help port libs into the bootloader. +/// @file Support.hxx +/// @brief Purpose of this file is to help port libs into the bootloader. #include <BootKit/BootKit.hxx> @@ -18,7 +19,7 @@ #define CopyMem(dst, src, sz) memcpy(dst, src, sz) #define StrLen(src) strlen(src) -inline int isspace(int c) +inline int IsSpace(int c) { return c == ' '; } @@ -27,16 +28,21 @@ inline long StringToLong(const char* nptr, char** endptr, int base) { const char *p = nptr, *endp; bool is_neg = 0, overflow = 0; + /* Need unsigned so (-cLongMin) can fit in these: */ unsigned long n = 0UL, cutoff; int cutlim; + if (base < 0 || base == 1 || base > 36) { return 0L; } + endp = nptr; - while (isspace(*p)) + + while (IsSpace(*p)) p++; + if (*p == '+') { p++; @@ -49,8 +55,8 @@ inline long StringToLong(const char* nptr, char** endptr, int base) { p++; /* For strtol(" 0xZ", &endptr, 16), endptr should point to 'x'; - * pointing to ' ' or '0' is non-compliant. - * (Many implementations do this wrong.) */ + * pointing to ' ' or '0' is non-compliant. + * (Many implementations do this wrong.) */ endp = p; if (base == 16 && (*p == 'X' || *p == 'x')) { @@ -81,8 +87,10 @@ inline long StringToLong(const char* nptr, char** endptr, int base) { base = 10; } + cutoff = (is_neg) ? -(cLongMin / base) : cLongMax / base; cutlim = (is_neg) ? -(cLongMin % base) : cLongMax % base; + while (1) { int c; @@ -98,7 +106,7 @@ inline long StringToLong(const char* nptr, char** endptr, int base) if (overflow) { /* endptr should go forward and point to the non-digit character - * (of the given base); required by ANSI standard. */ + * (of the given base); required by ANSI standard. */ if (endptr) continue; break; @@ -110,11 +118,14 @@ inline long StringToLong(const char* nptr, char** endptr, int base) } n = n * base + c; } + if (endptr) *endptr = (char*)endp; + if (overflow) { return ((is_neg) ? cLongMin : cLongMax); } + return (long)((is_neg) ? -n : n); } diff --git a/Boot/Source/.gitkeep b/Boot/Sources/.gitkeep index e69de29b..e69de29b 100644 --- a/Boot/Source/.gitkeep +++ b/Boot/Sources/.gitkeep diff --git a/Boot/Source/BootloaderRsrc.rsrc b/Boot/Sources/BootloaderRsrc.rsrc index 0282192b..0282192b 100644 --- a/Boot/Source/BootloaderRsrc.rsrc +++ b/Boot/Sources/BootloaderRsrc.rsrc diff --git a/Boot/Source/HEL/AMD64/.gitkeep b/Boot/Sources/HEL/AMD64/.gitkeep index e69de29b..e69de29b 100644 --- a/Boot/Source/HEL/AMD64/.gitkeep +++ b/Boot/Sources/HEL/AMD64/.gitkeep diff --git a/Boot/Source/HEL/AMD64/BootAHCI.cxx b/Boot/Sources/HEL/AMD64/BootAHCI.cxx index 6676f660..d60b91fd 100644 --- a/Boot/Source/HEL/AMD64/BootAHCI.cxx +++ b/Boot/Sources/HEL/AMD64/BootAHCI.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/Source/HEL/AMD64/BootATA.cxx b/Boot/Sources/HEL/AMD64/BootATA.cxx index 499596ca..c82cb2ea 100644 --- a/Boot/Source/HEL/AMD64/BootATA.cxx +++ b/Boot/Sources/HEL/AMD64/BootATA.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -202,9 +202,9 @@ BootDeviceATA::operator bool() } /** - @brief Read Buf from disk - @param Sz Sector size - @param Buf buffer + @brief Read Buf from disk + @param Sz Sector size + @param Buf buffer */ BootDeviceATA& BootDeviceATA::Read(CharacterTypeUTF8* Buf, const SizeT& SectorSz) { @@ -228,9 +228,9 @@ BootDeviceATA& BootDeviceATA::Read(CharacterTypeUTF8* Buf, const SizeT& SectorSz } /** - @brief Write Buf into disk - @param Sz Sector size - @param Buf buffer + @brief Write Buf into disk + @param Sz Sector size + @param Buf buffer */ BootDeviceATA& BootDeviceATA::Write(CharacterTypeUTF8* Buf, const SizeT& SectorSz) { @@ -263,7 +263,7 @@ BootDeviceATA::ATATrait& BootDeviceATA::Leak() } /*** - @brief Getter, gets the number of sectors inside the drive. + @brief Getter, gets the number of sectors inside the drive. */ SizeT BootDeviceATA::GetSectorsCount() noexcept { diff --git a/Boot/Source/HEL/AMD64/BootFileReader.cxx b/Boot/Sources/HEL/AMD64/BootFileReader.cxx index 61adc4f3..7ec6b7ab 100644 --- a/Boot/Source/HEL/AMD64/BootFileReader.cxx +++ b/Boot/Sources/HEL/AMD64/BootFileReader.cxx @@ -1,10 +1,10 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: FileReader.cxx - Purpose: New Boot FileReader, - Read complete file and store it in a buffer. + File: FileReader.cxx + Purpose: New Boot FileReader, + Read complete file and store it in a buffer. ------------------------------------------- */ @@ -29,7 +29,7 @@ //////////////////////////////////////////////////////////////////////////////////////////////////// /*** - @brief File Reader constructor. + @brief File Reader constructor. */ BFileReader::BFileReader(const CharacterTypeUTF16* path, EfiHandlePtr ImageHandle) @@ -111,8 +111,8 @@ BFileReader::~BFileReader() } /** - @brief this reads all of the buffer. - @param until read until size is reached. + @brief this reads all of the buffer. + @param until read until size is reached. */ Void BFileReader::ReadAll(SizeT until, SizeT chunk) { diff --git a/Boot/Source/HEL/AMD64/BootJump.S b/Boot/Sources/HEL/AMD64/BootJump.S index af278cc7..af278cc7 100644 --- a/Boot/Source/HEL/AMD64/BootJump.S +++ b/Boot/Sources/HEL/AMD64/BootJump.S diff --git a/Boot/Source/HEL/AMD64/BootMain.cxx b/Boot/Sources/HEL/AMD64/BootMain.cxx index 649596b4..f58709be 100644 --- a/Boot/Source/HEL/AMD64/BootMain.cxx +++ b/Boot/Sources/HEL/AMD64/BootMain.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -31,7 +31,7 @@ STATIC EfiGUID kGopGuid; EXTERN_C Void hal_init_platform(HEL::HandoverInformationHeader* HIH); /** - @brief Finds and stores the GOP. + @brief Finds and stores the GOP. */ STATIC Void CheckAndFindFramebuffer() noexcept diff --git a/Boot/Source/HEL/AMD64/BootPlatform.cxx b/Boot/Sources/HEL/AMD64/BootPlatform.cxx index 9d125ec6..866c4839 100644 --- a/Boot/Source/HEL/AMD64/BootPlatform.cxx +++ b/Boot/Sources/HEL/AMD64/BootPlatform.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/Source/HEL/AMD64/BootString.cxx b/Boot/Sources/HEL/AMD64/BootString.cxx index a93943cf..54ab2c64 100644 --- a/Boot/Source/HEL/AMD64/BootString.cxx +++ b/Boot/Sources/HEL/AMD64/BootString.cxx @@ -1,11 +1,11 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: String.cxx - Purpose: NewBoot string library + File: String.cxx + Purpose: NewBoot string library - Revision History: + Revision History: diff --git a/Boot/Source/HEL/AMD64/BootTextWriter.cxx b/Boot/Sources/HEL/AMD64/BootTextWriter.cxx index 30c328ad..90d12f3d 100644 --- a/Boot/Source/HEL/AMD64/BootTextWriter.cxx +++ b/Boot/Sources/HEL/AMD64/BootTextWriter.cxx @@ -1,11 +1,11 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: String.cxx - Purpose: NewBoot string library + File: String.cxx + Purpose: NewBoot string library - Revision History: + Revision History: diff --git a/Boot/Source/HEL/AMD64/New+Delete.cxx b/Boot/Sources/HEL/AMD64/New+Delete.cxx index 3316ac1d..6c025646 100644 --- a/Boot/Source/HEL/AMD64/New+Delete.cxx +++ b/Boot/Sources/HEL/AMD64/New+Delete.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/Source/HEL/AMD64/Support.cxx b/Boot/Sources/HEL/AMD64/Support.cxx index 12c136f8..22b01280 100644 --- a/Boot/Source/HEL/AMD64/Support.cxx +++ b/Boot/Sources/HEL/AMD64/Support.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Boot/Source/HEL/AMD64/compile_flags.txt b/Boot/Sources/HEL/AMD64/compile_flags.txt index e4515efe..e4515efe 100644 --- a/Boot/Source/HEL/AMD64/compile_flags.txt +++ b/Boot/Sources/HEL/AMD64/compile_flags.txt diff --git a/Boot/Source/HEL/ARM64/.gitkeep b/Boot/Sources/HEL/ARM64/.gitkeep index e69de29b..e69de29b 100644 --- a/Boot/Source/HEL/ARM64/.gitkeep +++ b/Boot/Sources/HEL/ARM64/.gitkeep diff --git a/Boot/Source/HEL/POWER/.gitkeep b/Boot/Sources/HEL/POWER/.gitkeep index e69de29b..e69de29b 100644 --- a/Boot/Source/HEL/POWER/.gitkeep +++ b/Boot/Sources/HEL/POWER/.gitkeep diff --git a/Boot/Source/HEL/POWER/CoreBootStartup.S b/Boot/Sources/HEL/POWER/CoreBootStartup.S index f8ff99d7..f8ff99d7 100644 --- a/Boot/Source/HEL/POWER/CoreBootStartup.S +++ b/Boot/Sources/HEL/POWER/CoreBootStartup.S diff --git a/Boot/Source/HEL/RISCV/.gitkeep b/Boot/Sources/HEL/RISCV/.gitkeep index e69de29b..e69de29b 100644 --- a/Boot/Source/HEL/RISCV/.gitkeep +++ b/Boot/Sources/HEL/RISCV/.gitkeep diff --git a/Boot/Source/HEL/RISCV/BootRISCV.S b/Boot/Sources/HEL/RISCV/BootRISCV.S index 7a7e7db0..7a7e7db0 100644 --- a/Boot/Source/HEL/RISCV/BootRISCV.S +++ b/Boot/Sources/HEL/RISCV/BootRISCV.S diff --git a/Boot/Source/Root/EFI/STARTUP.NSH b/Boot/Sources/Root/EFI/STARTUP.NSH index d29ba8fd..d29ba8fd 100644 --- a/Boot/Source/Root/EFI/STARTUP.NSH +++ b/Boot/Sources/Root/EFI/STARTUP.NSH diff --git a/Boot/Source/Root/SplashScreen.fmt b/Boot/Sources/Root/SplashScreen.fmt index 863d7b62..863d7b62 100644 --- a/Boot/Source/Root/SplashScreen.fmt +++ b/Boot/Sources/Root/SplashScreen.fmt diff --git a/Boot/Source/compile_flags.txt b/Boot/Sources/compile_flags.txt index c74d22b2..c74d22b2 100644 --- a/Boot/Source/compile_flags.txt +++ b/Boot/Sources/compile_flags.txt diff --git a/Boot/Source/ovmf.ps1 b/Boot/Sources/ovmf.ps1 index 5a2c5f0e..5a2c5f0e 100644 --- a/Boot/Source/ovmf.ps1 +++ b/Boot/Sources/ovmf.ps1 diff --git a/Boot/makefile b/Boot/makefile index 878cee2a..63883321 100644 --- a/Boot/makefile +++ b/Boot/makefile @@ -12,10 +12,10 @@ ADD_FILE=touch COPY=cp HTTP_GET=wget -ifeq ($(shell uname), Windows_NT) -EMU=qemu-system-x86_64w -else +ifneq ($(shell uname), Windows_NT) EMU=qemu-system-x86_64 +else +EMU=qemu-system-x86_64w endif ifeq ($(NEWS_MODEL), ) @@ -26,11 +26,11 @@ BIOS=OVMF.fd IMG=epm.img IMG_2=epm-slave.img -EMU_FLAGS=-net none -smp 4,sockets=1,cores=4,threads=1 -m 8G -M q35 \ - -bios Source/$(BIOS) -device piix3-ide,id=ide \ - -drive id=disk,file=Source/$(IMG),format=raw,if=none \ +EMU_FLAGS=-net none -smp 4,sockets=1,cores=4,threads=1 -m 4G -M q35 \ + -bios Sources/$(BIOS) -device piix3-ide,id=ide \ + -drive id=disk,file=$(IMG),format=raw,if=none \ -device ide-hd,drive=disk,bus=ide.0 -drive \ - file=fat:rw:Source/Root,index=2,format=raw -d int -hdd Source/$(IMG_2) + file=fat:rw:Sources/Root,index=2,format=raw -d int -hdd $(IMG_2) LD_FLAGS=-e Main --subsystem=10 @@ -59,11 +59,11 @@ invalid-recipe: .PHONY: all all: compile-amd64 - mkdir -p Root/EFI/BOOT - $(LD_GNU) $(OBJ) $(LD_FLAGS) -o Source/$(BOOT_LOADER) - $(COPY) Source/$(BOOT_LOADER) Source/Root/EFI/BOOT/BOOTX64.EFI - $(COPY) Source/$(BOOT_LOADER) Source/Root/EFI/BOOT/NEWBOOT.EFI - $(COPY) ../Kernel/$(KERNEL) Source/Root/$(KERNEL) + mkdir -p Sources/Root/EFI/BOOT + $(LD_GNU) $(OBJ) $(LD_FLAGS) -o Sources/$(BOOT_LOADER) + $(COPY) Sources/$(BOOT_LOADER) Sources/Root/EFI/BOOT/BOOTX64.EFI + $(COPY) Sources/$(BOOT_LOADER) Sources/Root/EFI/BOOT/NEWBOOT.EFI + $(COPY) ../Kernel/$(KERNEL) Sources/Root/$(KERNEL) ifneq ($(DEBUG_SUPPORT), ) DEBUG = -D__DEBUG__ @@ -73,9 +73,9 @@ endif compile-amd64: $(RESCMD) $(CC_GNU) $(NEWOS_MODEL) $(STANDALONE_MACRO) $(FLAG_GNU) $(DEBUG) \ - $(wildcard Source/HEL/AMD64/*.cxx) \ - $(wildcard Source/HEL/AMD64/*.S) - $(wildcard Source/*.cxx) + $(wildcard Sources/HEL/AMD64/*.cxx) \ + $(wildcard Sources/HEL/AMD64/*.S) + $(wildcard Sources/*.cxx) .PHONY: run-efi-amd64 run-efi-amd64: diff --git a/Kernel/ArchKit/ArchKit.hpp b/Kernel/ArchKit/ArchKit.hpp index a341035b..83770272 100644 --- a/Kernel/ArchKit/ArchKit.hpp +++ b/Kernel/ArchKit/ArchKit.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Builtins/ACPI/ACPI.hxx b/Kernel/Builtins/ACPI/ACPI.hxx index d171bf3b..13ea6ecc 100644 --- a/Kernel/Builtins/ACPI/ACPI.hxx +++ b/Kernel/Builtins/ACPI/ACPI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,7 +8,7 @@ #define __ACPI__ /** - https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html + https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html */ #include <NewKit/Defines.hpp> diff --git a/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx b/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx index a2fa4fd8..d894101e 100644 --- a/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx +++ b/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Builtins/AHCI/AHCI.hxx b/Kernel/Builtins/AHCI/AHCI.hxx index 8f28f076..fe31fb7a 100644 --- a/Kernel/Builtins/AHCI/AHCI.hxx +++ b/Kernel/Builtins/AHCI/AHCI.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Defines.hxx - Purpose: AHCI header. + File: Defines.hxx + Purpose: AHCI header. - Revision History: + Revision History: - 03/02/24: Added file (amlel) + 03/02/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/Builtins/ATA/ATA.hxx b/Kernel/Builtins/ATA/ATA.hxx index 8f0abff8..274a4321 100644 --- a/Kernel/Builtins/ATA/ATA.hxx +++ b/Kernel/Builtins/ATA/ATA.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Defines.hxx - Purpose: ATA header. + File: Defines.hxx + Purpose: ATA header. - Revision History: + Revision History: - 03/02/24: Added file (amlel) + 03/02/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/Builtins/HPET/Defines.hxx b/Kernel/Builtins/HPET/Defines.hxx index ae59f455..e070624b 100644 --- a/Kernel/Builtins/HPET/Defines.hxx +++ b/Kernel/Builtins/HPET/Defines.hxx @@ -1,11 +1,11 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: HPET.hxx - Purpose: HPET builtin. + File: HPET.hxx + Purpose: HPET builtin. - Revision History: + Revision History: ------------------------------------------- */ diff --git a/Kernel/Builtins/MBCI/Interface.hxx b/Kernel/Builtins/MBCI/Interface.hxx index d0c51a6c..071ba708 100644 --- a/Kernel/Builtins/MBCI/Interface.hxx +++ b/Kernel/Builtins/MBCI/Interface.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Builtins/MBCI/MBCI.hxx b/Kernel/Builtins/MBCI/MBCI.hxx index f9a20d7c..dbffa7d0 100644 --- a/Kernel/Builtins/MBCI/MBCI.hxx +++ b/Kernel/Builtins/MBCI/MBCI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Builtins/PS2/PS2MouseInterface.hxx b/Kernel/Builtins/PS2/PS2MouseInterface.hxx index ef2319d5..9e1054bb 100644 --- a/Kernel/Builtins/PS2/PS2MouseInterface.hxx +++ b/Kernel/Builtins/PS2/PS2MouseInterface.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: PS2MouseInterface.hxx - Purpose: PS/2 mouse. + File: PS2MouseInterface.hxx + Purpose: PS/2 mouse. - Revision History: + Revision History: - 03/02/24: Added file (amlel) + 03/02/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/Builtins/SCSI/SCSI.hxx b/Kernel/Builtins/SCSI/SCSI.hxx index 955cda2b..b6fb9c71 100644 --- a/Kernel/Builtins/SCSI/SCSI.hxx +++ b/Kernel/Builtins/SCSI/SCSI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Builtins/Toolbox/Lerp.hxx b/Kernel/Builtins/Toolbox/Lerp.hxx index aa652a61..f987457f 100644 --- a/Kernel/Builtins/Toolbox/Lerp.hxx +++ b/Kernel/Builtins/Toolbox/Lerp.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Builtins/Toolbox/Toolbox.hxx b/Kernel/Builtins/Toolbox/Toolbox.hxx index 7c685c0c..e65da9d2 100644 --- a/Kernel/Builtins/Toolbox/Toolbox.hxx +++ b/Kernel/Builtins/Toolbox/Toolbox.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Builtins/XHCI/Defines.hxx b/Kernel/Builtins/XHCI/Defines.hxx index 11140ce7..56f228dd 100644 --- a/Kernel/Builtins/XHCI/Defines.hxx +++ b/Kernel/Builtins/XHCI/Defines.hxx @@ -1,14 +1,14 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Defines.hxx - Purpose: XHCI (and backwards) header. + File: Defines.hxx + Purpose: XHCI (and backwards) header. - Revision History: + Revision History: - 01/02/24: Added file (amlel) - 03/02/24: Update filename to Defines.hxx (amlel) + 01/02/24: Added file (amlel) + 03/02/24: Update filename to Defines.hxx (amlel) ------------------------------------------- */ @@ -61,10 +61,10 @@ typedef struct USBInterruptEnableRegister final } USBInterruptEnableRegister; /* - Some terminology: + Some terminology: - Frame Number: Number of processed entry of the Frame List. - Frame List Base Address: - 32-bit physical adress of Frame List. Remember that first 12 bytes are + Frame Number: Number of processed entry of the Frame List. + Frame List Base Address: + 32-bit physical adress of Frame List. Remember that first 12 bytes are always 0. The Frame List must contain 1024 entries. */ diff --git a/Kernel/CFKit/GUIDWizard.hpp b/Kernel/CFKit/GUIDWizard.hpp index 17c878f5..f81bff5f 100644 --- a/Kernel/CFKit/GUIDWizard.hpp +++ b/Kernel/CFKit/GUIDWizard.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CFKit/GUIDWrapper.hpp b/Kernel/CFKit/GUIDWrapper.hpp index 0a1e4144..706bcdc8 100644 --- a/Kernel/CFKit/GUIDWrapper.hpp +++ b/Kernel/CFKit/GUIDWrapper.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CFKit/Property.hpp b/Kernel/CFKit/Property.hpp index 5900d0b3..c4699599 100644 --- a/Kernel/CFKit/Property.hpp +++ b/Kernel/CFKit/Property.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CFKit/URL.hpp b/Kernel/CFKit/URL.hpp index 93a078a0..b8b7c89f 100644 --- a/Kernel/CFKit/URL.hpp +++ b/Kernel/CFKit/URL.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CRT/__mpcc_alloca.hxx b/Kernel/CRT/__mpcc_alloca.hxx index f15e059b..a1c638e2 100644 --- a/Kernel/CRT/__mpcc_alloca.hxx +++ b/Kernel/CRT/__mpcc_alloca.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CRT/__mpcc_defines.hxx b/Kernel/CRT/__mpcc_defines.hxx index 169dac8c..00374eb4 100644 --- a/Kernel/CRT/__mpcc_defines.hxx +++ b/Kernel/CRT/__mpcc_defines.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CRT/__mpcc_exception.hxx b/Kernel/CRT/__mpcc_exception.hxx index a54c2354..fd619c34 100644 --- a/Kernel/CRT/__mpcc_exception.hxx +++ b/Kernel/CRT/__mpcc_exception.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CRT/__mpcc_malloc.hxx b/Kernel/CRT/__mpcc_malloc.hxx index d4d18327..9d41d20e 100644 --- a/Kernel/CRT/__mpcc_malloc.hxx +++ b/Kernel/CRT/__mpcc_malloc.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CompilerKit/CompilerKit.hxx b/Kernel/CompilerKit/CompilerKit.hxx index 7dbeaf17..e2aaff11 100644 --- a/Kernel/CompilerKit/CompilerKit.hxx +++ b/Kernel/CompilerKit/CompilerKit.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/CompilerKit/Detail.hxx b/Kernel/CompilerKit/Detail.hxx index 6b4e49e9..2bb73a7b 100644 --- a/Kernel/CompilerKit/Detail.hxx +++ b/Kernel/CompilerKit/Detail.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelCall.c b/Kernel/DriverKit/KernelCall.c index 43f8f714..d61f8439 100644 --- a/Kernel/DriverKit/KernelCall.c +++ b/Kernel/DriverKit/KernelCall.c @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Definitions. + Purpose: Kernel Definitions. ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelDev.c b/Kernel/DriverKit/KernelDev.c index 3cf8e4ea..704f17da 100644 --- a/Kernel/DriverKit/KernelDev.c +++ b/Kernel/DriverKit/KernelDev.c @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Text I/O. + Purpose: Kernel Text I/O. ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelDev.h b/Kernel/DriverKit/KernelDev.h index 7ce833e5..c3435e8d 100644 --- a/Kernel/DriverKit/KernelDev.h +++ b/Kernel/DriverKit/KernelDev.h @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Devices. + Purpose: Kernel Devices. ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelPrint.c b/Kernel/DriverKit/KernelPrint.c index 04be86fa..533bf34a 100644 --- a/Kernel/DriverKit/KernelPrint.c +++ b/Kernel/DriverKit/KernelPrint.c @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Text I/O. + Purpose: Kernel Text I/O. ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelPrint.h b/Kernel/DriverKit/KernelPrint.h index f40c8cea..7bf0dda9 100644 --- a/Kernel/DriverKit/KernelPrint.h +++ b/Kernel/DriverKit/KernelPrint.h @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Text I/O. + Purpose: Kernel Text I/O. ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelStd.h b/Kernel/DriverKit/KernelStd.h index 8bc53d89..b0dba70e 100644 --- a/Kernel/DriverKit/KernelStd.h +++ b/Kernel/DriverKit/KernelStd.h @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Definitions. + Purpose: Kernel Definitions. ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelString.c b/Kernel/DriverKit/KernelString.c index 4a5af99a..6f28f4d8 100644 --- a/Kernel/DriverKit/KernelString.c +++ b/Kernel/DriverKit/KernelString.c @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Strings. + Purpose: Kernel Strings. ------------------------------------------- */ diff --git a/Kernel/DriverKit/KernelString.h b/Kernel/DriverKit/KernelString.h index a9d592e4..db063a1b 100644 --- a/Kernel/DriverKit/KernelString.h +++ b/Kernel/DriverKit/KernelString.h @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: Kernel Strings. + Purpose: Kernel Strings. ------------------------------------------- */ diff --git a/Kernel/Drivers/Bonjour/Bonjour.c b/Kernel/Drivers/Bonjour/Bonjour.c index 71b304ef..52187ac1 100644 --- a/Kernel/Drivers/Bonjour/Bonjour.c +++ b/Kernel/Drivers/Bonjour/Bonjour.c @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx b/Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx index 5f866544..dbcaed43 100644 --- a/Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx +++ b/Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Drivers/SampleDriver/SampleDriver.c b/Kernel/Drivers/SampleDriver/SampleDriver.c index 54f3ebef..b92b1ef8 100644 --- a/Kernel/Drivers/SampleDriver/SampleDriver.c +++ b/Kernel/Drivers/SampleDriver/SampleDriver.c @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/FSKit/Defines.hxx b/Kernel/FSKit/Defines.hxx index bdaa8d77..046cda8e 100644 --- a/Kernel/FSKit/Defines.hxx +++ b/Kernel/FSKit/Defines.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/FSKit/IndexableProperty.hxx b/Kernel/FSKit/IndexableProperty.hxx index eae15317..1c8aafeb 100644 --- a/Kernel/FSKit/IndexableProperty.hxx +++ b/Kernel/FSKit/IndexableProperty.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -10,7 +10,7 @@ #include <CompilerKit/CompilerKit.hxx> #include <KernelKit/DriveManager.hxx> -#define kIndexerNodeNameLength 256 +#define kIndexerNodeNameLength 255 #define kIndexerClaimed 0xCF namespace NewOS diff --git a/Kernel/FSKit/NewFS.hxx b/Kernel/FSKit/NewFS.hxx index dca7aa2c..e2ae81a6 100644 --- a/Kernel/FSKit/NewFS.hxx +++ b/Kernel/FSKit/NewFS.hxx @@ -1,15 +1,15 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: NewFS.hxx - Purpose: + File: NewFS.hxx + Purpose: - Revision History: + Revision History: - ?/?/?: Added file (amlel) - 12/02/24: Add UUID macro for EPM and GPT partition schemes. - 3/16/24: Add mandatory sector size, kNewFSSectorSz is set to 2048 by + ?/?/?: Added file (amlel) + 12/02/24: Add UUID macro for EPM and GPT partition schemes. + 3/16/24: Add mandatory sector size, kNewFSSectorSz is set to 2048 by default. ------------------------------------------- */ @@ -22,8 +22,8 @@ default. #include <NewKit/Defines.hpp> /** - @brief New File System specification. - @author Amlal EL Mahrouss + @brief New File System specification. + @author Amlal EL Mahrouss */ #define kNewFSInvalidFork (-1) @@ -209,7 +209,6 @@ namespace NewOS /// \brief NewFS parser class. (catalog creation, remove removal, root, /// forks...) Designed like the DOM, detects the filesystem automatically. /// - class NewFSParser final { public: @@ -225,7 +224,7 @@ namespace NewOS /// @param theFork the fork itself. /// @return the fork _Output NewFork* CreateFork(_Input NewCatalog* catalog, - _Input NewFork& theFork); + _Input NewFork& theFork); /// @brief Find fork inside New filesystem. /// @param catalog the catalog. @@ -243,7 +242,7 @@ namespace NewOS _Output NewCatalog* GetCatalog(_Input const char* name); - _Output NewCatalog* CreateCatalog(_Input const char* name, + _Output NewCatalog* CreateCatalog(_Input const char* name, _Input const Int32& flags, _Input const Int32& kind); diff --git a/Kernel/FirmwareKit/EFI.hxx b/Kernel/FirmwareKit/EFI.hxx index c2585456..d09e6407 100644 --- a/Kernel/FirmwareKit/EFI.hxx +++ b/Kernel/FirmwareKit/EFI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/FirmwareKit/EFI/API.hxx b/Kernel/FirmwareKit/EFI/API.hxx index 37781f23..8e8183d6 100644 --- a/Kernel/FirmwareKit/EFI/API.hxx +++ b/Kernel/FirmwareKit/EFI/API.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -69,10 +69,10 @@ Bascially frees everything we have in the EFI side. } /*** - * @brief Throw an error, stop execution as well. - * @param ErrorCode error code to be print. - * @param Reason reason to be print. - */ + * @brief Throw an error, stop execution as well. + * @param ErrorCode error code to be print. + * @param Reason reason to be print. + */ inline void ThrowError(const EfiCharType* ErrorCode, const EfiCharType* Reason) noexcept { diff --git a/Kernel/FirmwareKit/EFI/EFI.hxx b/Kernel/FirmwareKit/EFI/EFI.hxx index 5f88fcaf..2e1ef4d6 100644 --- a/Kernel/FirmwareKit/EFI/EFI.hxx +++ b/Kernel/FirmwareKit/EFI/EFI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -754,14 +754,21 @@ typedef struct EfiTime struct EfiFileInfo final { - UInt64 Size; - UInt64 FileSize; - UInt64 PhysicalSize; + /// @brief Structure size. + UInt64 Size; + /// @brief File size. + UInt64 FileSize; + /// @brief Physical size on disk. + UInt64 PhysicalSize; + /// @brief Create time. EfiTime CreateTime; + /// @brief Last access time. EfiTime LastAccessTime; + /// @brief Edit time. EfiTime EditTime; - UInt64 Attribute; - // Do not touch that, it's EFI specific. + /// @brief Attributes. + UInt64 Attribute; + /// @brief VLA file name. WideChar FileName[1]; }; diff --git a/Kernel/FirmwareKit/EPM.hxx b/Kernel/FirmwareKit/EPM.hxx index 0051beac..aa5dc92a 100644 --- a/Kernel/FirmwareKit/EPM.hxx +++ b/Kernel/FirmwareKit/EPM.hxx @@ -1,11 +1,11 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ /** - @brief The Explicit Partition Map scheme. + @brief The Explicit Partition Map scheme. */ #ifndef __PARTITION_MAP__ @@ -87,8 +87,6 @@ struct PACKED PartitionBlock #define kEPMMagicError "EPM??" -#define kEPMMaxBlks 128 - ///! @brief Version kind enum. ///! @brief Use in boot block version field. @@ -123,6 +121,9 @@ typedef struct PartitionBlock PartitionBlockType; ///! @brief Current EPM revision (2) #define kEPMRevisionUEFI (0xF) +/* @brief Maximum block count. */ +#define kEPMMaxBlks 128 + /// END OF SPECS #endif // ifndef __PARTITION_MAP__ diff --git a/Kernel/FirmwareKit/Handover.hxx b/Kernel/FirmwareKit/Handover.hxx index 1d671f4e..1a7d1da7 100644 --- a/Kernel/FirmwareKit/Handover.hxx +++ b/Kernel/FirmwareKit/Handover.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -29,7 +29,7 @@ namespace NewOS::HEL { /** - @brief the kind of executable we're loading. + @brief the kind of executable we're loading. */ enum { @@ -40,7 +40,7 @@ namespace NewOS::HEL }; /** - @brief The executable architecture. + @brief The executable architecture. */ enum diff --git a/Kernel/HALKit/64x0/HalVirtualMemory.cxx b/Kernel/HALKit/64x0/HalVirtualMemory.cxx index fb15b2cb..eec86fc2 100644 --- a/Kernel/HALKit/64x0/HalVirtualMemory.cxx +++ b/Kernel/HALKit/64x0/HalVirtualMemory.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/CPUID.hxx b/Kernel/HALKit/AMD64/CPUID.hxx index 0e570148..976a521e 100644 --- a/Kernel/HALKit/AMD64/CPUID.hxx +++ b/Kernel/HALKit/AMD64/CPUID.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: CPUID.hxx - Purpose: CPUID flags. + File: CPUID.hxx + Purpose: CPUID flags. - Revision History: + Revision History: - 30/01/24: Added file (amlel) + 30/01/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx b/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx index db82616e..ff5372f4 100644 --- a/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx +++ b/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -83,10 +83,10 @@ namespace NewOS kcout << "ACPI: Address of XSDT: " << hex_number((UIntPtr)xsdt) << endl; constexpr short ACPI_SIGNATURE_LENGTH = 4; - + for (Size index = 0; index < this->fEntries; ++index) { - SDT &sdt = xsdt[index]; + SDT& sdt = xsdt[index]; for (short signature_index = 0; signature_index < ACPI_SIGNATURE_LENGTH; ++signature_index) { @@ -102,9 +102,9 @@ namespace NewOS } /*** - @brief check SDT header - @param checksum the header to checksum - @param len the length of it. + @brief check SDT header + @param checksum the header to checksum + @param len the length of it. */ bool ACPIFactoryInterface::Checksum(const char* checksum, SSizeT len) { diff --git a/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp b/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp index 1f2e21e2..9477ecb7 100644 --- a/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp +++ b/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp index 470a3286..abd19586 100644 --- a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp +++ b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -23,12 +23,12 @@ namespace NewOS::HAL constexpr Int32 kThreadBoot = 4; /* - * - * this is used to store info about the current running thread - * we use this struct to determine if we can use it, or mark it as used or on - * sleep. - * - */ + * + * this is used to store info about the current running thread + * we use this struct to determine if we can use it, or mark it as used or on + * sleep. + * + */ struct ProcessorInfoAMD64 final { @@ -53,7 +53,7 @@ namespace NewOS::HAL { Char RecordType; Char RecordLen; // record length - + UInt32 Address; UInt32 Flags; // 1 = Dual Legacy PICs installed } MadtRecords[]; @@ -109,14 +109,14 @@ namespace NewOS::HAL if (kApicMadt) { - kcout << "New OS: APIC is present...\r"; + kcout << "New OS: APIC is present...\r"; kApicInfoBlock = (MadtType*)kApicMadt; } - else - { + else + { kcout << "New OS: APIC is not present! it is a vital component.\r"; - ke_stop(RUNTIME_CHECK_FAILED); - } + ke_stop(RUNTIME_CHECK_FAILED); + } } } // namespace NewOS::HAL diff --git a/Kernel/HALKit/AMD64/HalDebugOutput.cxx b/Kernel/HALKit/AMD64/HalDebugOutput.cxx index 3227be1f..3cec26df 100644 --- a/Kernel/HALKit/AMD64/HalDebugOutput.cxx +++ b/Kernel/HALKit/AMD64/HalDebugOutput.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalDebugPort.cxx b/Kernel/HALKit/AMD64/HalDebugPort.cxx index 6d7a03f5..bc85746d 100644 --- a/Kernel/HALKit/AMD64/HalDebugPort.cxx +++ b/Kernel/HALKit/AMD64/HalDebugPort.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalDescriptorLoader.cpp b/Kernel/HALKit/AMD64/HalDescriptorLoader.cpp index 689c1742..253c2f41 100644 --- a/Kernel/HALKit/AMD64/HalDescriptorLoader.cpp +++ b/Kernel/HALKit/AMD64/HalDescriptorLoader.cpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalHardwareMP.cpp b/Kernel/HALKit/AMD64/HalHardwareMP.cpp index 83e99ef8..9c034362 100644 --- a/Kernel/HALKit/AMD64/HalHardwareMP.cpp +++ b/Kernel/HALKit/AMD64/HalHardwareMP.cpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -16,8 +16,6 @@ namespace NewOS { HAL::rt_cli(); - - HAL::rt_sti(); } @@ -27,8 +25,6 @@ namespace NewOS { HAL::rt_cli(); - - HAL::rt_sti(); } } // namespace NewOS diff --git a/Kernel/HALKit/AMD64/HalKernelMain.cxx b/Kernel/HALKit/AMD64/HalKernelMain.cxx index e2533241..07656060 100644 --- a/Kernel/HALKit/AMD64/HalKernelMain.cxx +++ b/Kernel/HALKit/AMD64/HalKernelMain.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalKernelMouse.cxx b/Kernel/HALKit/AMD64/HalKernelMouse.cxx index 926a9d5a..1e1ddd5b 100644 --- a/Kernel/HALKit/AMD64/HalKernelMouse.cxx +++ b/Kernel/HALKit/AMD64/HalKernelMouse.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalPageAlloc.cpp b/Kernel/HALKit/AMD64/HalPageAlloc.cpp index db2aad73..4658a8aa 100644 --- a/Kernel/HALKit/AMD64/HalPageAlloc.cpp +++ b/Kernel/HALKit/AMD64/HalPageAlloc.cpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalPageAlloc.hpp b/Kernel/HALKit/AMD64/HalPageAlloc.hpp index 2831c87a..cede1b41 100644 --- a/Kernel/HALKit/AMD64/HalPageAlloc.hpp +++ b/Kernel/HALKit/AMD64/HalPageAlloc.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,7 +8,7 @@ /** --------------------------------------------------- - * THIS FILE CONTAINS CODE FOR X86_64 PAGING. + * THIS FILE CONTAINS CODE FOR X86_64 PAGING. ------------------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalProcessor.cpp b/Kernel/HALKit/AMD64/HalProcessor.cpp index 31cee72c..8cbfba6a 100644 --- a/Kernel/HALKit/AMD64/HalProcessor.cpp +++ b/Kernel/HALKit/AMD64/HalProcessor.cpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/HalSMPCore.cxx b/Kernel/HALKit/AMD64/HalSMPCore.cxx index a1310c4e..90703e13 100644 --- a/Kernel/HALKit/AMD64/HalSMPCore.cxx +++ b/Kernel/HALKit/AMD64/HalSMPCore.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/Hypervisor.hpp b/Kernel/HALKit/AMD64/Hypervisor.hpp index 9beaae42..ad2b69fd 100644 --- a/Kernel/HALKit/AMD64/Hypervisor.hpp +++ b/Kernel/HALKit/AMD64/Hypervisor.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/PCI/Database.cxx b/Kernel/HALKit/AMD64/PCI/Database.cxx index 1c2628d0..77c735fb 100644 --- a/Kernel/HALKit/AMD64/PCI/Database.cxx +++ b/Kernel/HALKit/AMD64/PCI/Database.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/PCI/Device.cxx b/Kernel/HALKit/AMD64/PCI/Device.cxx index 6f2265ae..0574b06a 100644 --- a/Kernel/HALKit/AMD64/PCI/Device.cxx +++ b/Kernel/HALKit/AMD64/PCI/Device.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/PCI/Dma.cxx b/Kernel/HALKit/AMD64/PCI/Dma.cxx index aacbafd8..4ac294df 100644 --- a/Kernel/HALKit/AMD64/PCI/Dma.cxx +++ b/Kernel/HALKit/AMD64/PCI/Dma.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/PCI/Express.cxx b/Kernel/HALKit/AMD64/PCI/Express.cxx index 4fde7ca2..53b9c579 100644 --- a/Kernel/HALKit/AMD64/PCI/Express.cxx +++ b/Kernel/HALKit/AMD64/PCI/Express.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/PCI/IO.cxx b/Kernel/HALKit/AMD64/PCI/IO.cxx index 4bd4db4f..d506ad5f 100644 --- a/Kernel/HALKit/AMD64/PCI/IO.cxx +++ b/Kernel/HALKit/AMD64/PCI/IO.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/PCI/Iterator.cxx b/Kernel/HALKit/AMD64/PCI/Iterator.cxx index e1af15ad..d1ac4aef 100644 --- a/Kernel/HALKit/AMD64/PCI/Iterator.cxx +++ b/Kernel/HALKit/AMD64/PCI/Iterator.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/PCI/PCI.cxx b/Kernel/HALKit/AMD64/PCI/PCI.cxx index 71644f17..b22ba951 100644 --- a/Kernel/HALKit/AMD64/PCI/PCI.cxx +++ b/Kernel/HALKit/AMD64/PCI/PCI.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/Processor.hpp b/Kernel/HALKit/AMD64/Processor.hpp index 69dc1acb..235e425d 100644 --- a/Kernel/HALKit/AMD64/Processor.hpp +++ b/Kernel/HALKit/AMD64/Processor.hpp @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Prcoessor.hxx - Purpose: AMD64 processor abstraction. + File: Prcoessor.hxx + Purpose: AMD64 processor abstraction. - Revision History: + Revision History: - 30/01/24: Added file (amlel) + 30/01/24: Added file (amlel) ------------------------------------------- */ @@ -130,8 +130,8 @@ namespace NewOS::HAL }; /*** - * @brief Segment Boolean operations - */ + * @brief Segment Boolean operations + */ class SegmentDescriptorComparator final { public: @@ -169,7 +169,7 @@ namespace NewOS::HAL EXTERN_C void _ke_power_on_self_test(void); /** - @brief Global descriptor table entry, either null, code or data. + @brief Global descriptor table entry, either null, code or data. */ struct PACKED NewOSGDTRecord final diff --git a/Kernel/HALKit/AMD64/Storage/AHCI.cxx b/Kernel/HALKit/AMD64/Storage/AHCI.cxx index 109d9cb9..93cef10c 100644 --- a/Kernel/HALKit/AMD64/Storage/AHCI.cxx +++ b/Kernel/HALKit/AMD64/Storage/AHCI.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/Storage/ATA-DMA.cxx b/Kernel/HALKit/AMD64/Storage/ATA-DMA.cxx index 97812bd8..1b83874f 100644 --- a/Kernel/HALKit/AMD64/Storage/ATA-DMA.cxx +++ b/Kernel/HALKit/AMD64/Storage/ATA-DMA.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AMD64/Storage/ATA-PIO.cxx b/Kernel/HALKit/AMD64/Storage/ATA-PIO.cxx index d09d9a67..bc40e4f2 100644 --- a/Kernel/HALKit/AMD64/Storage/ATA-PIO.cxx +++ b/Kernel/HALKit/AMD64/Storage/ATA-PIO.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -176,7 +176,7 @@ Boolean drv_std_detected(Void) } /*** - @brief Getter, gets the number of sectors inside the drive. + @brief Getter, gets the number of sectors inside the drive. */ NewOS::SizeT drv_std_get_sector_count() { diff --git a/Kernel/HALKit/AXP/CoreSyscallHandlerDEC.cpp b/Kernel/HALKit/AXP/CoreSyscallHandlerDEC.cpp index c6ef29fc..c16722ba 100644 --- a/Kernel/HALKit/AXP/CoreSyscallHandlerDEC.cpp +++ b/Kernel/HALKit/AXP/CoreSyscallHandlerDEC.cpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/AXP/Processor.hpp b/Kernel/HALKit/AXP/Processor.hpp index 38277317..768093b9 100644 --- a/Kernel/HALKit/AXP/Processor.hpp +++ b/Kernel/HALKit/AXP/Processor.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/POWER/HalHardware.cxx b/Kernel/HALKit/POWER/HalHardware.cxx index f2292965..fcded4d3 100644 --- a/Kernel/HALKit/POWER/HalHardware.cxx +++ b/Kernel/HALKit/POWER/HalHardware.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/POWER/HalHart.cxx b/Kernel/HALKit/POWER/HalHart.cxx index 960f0a62..7af92cb1 100644 --- a/Kernel/HALKit/POWER/HalHart.cxx +++ b/Kernel/HALKit/POWER/HalHart.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -14,12 +14,12 @@ using namespace NewOS; /// wakes up thread from hang. void rt_wakeup_thread(HAL::StackFramePtr stack) { - NEWOS_UNUSED(stack); + NEWOS_UNUSED(stack); } /// @brief makes thread sleep. /// hooks and hangs thread to prevent code from executing. void rt_hang_thread(HAL::StackFramePtr stack) { - NEWOS_UNUSED(stack); + NEWOS_UNUSED(stack); } diff --git a/Kernel/HALKit/POWER/HalSerialPort.cxx b/Kernel/HALKit/POWER/HalSerialPort.cxx index c2c75eef..0e34f7d0 100644 --- a/Kernel/HALKit/POWER/HalSerialPort.cxx +++ b/Kernel/HALKit/POWER/HalSerialPort.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/POWER/HalThread.cxx b/Kernel/HALKit/POWER/HalThread.cxx index 4f4eaec6..22503ad8 100644 --- a/Kernel/HALKit/POWER/HalThread.cxx +++ b/Kernel/HALKit/POWER/HalThread.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/POWER/HalVirtualMemory.cxx b/Kernel/HALKit/POWER/HalVirtualMemory.cxx index c77c5b4d..326d635a 100644 --- a/Kernel/HALKit/POWER/HalVirtualMemory.cxx +++ b/Kernel/HALKit/POWER/HalVirtualMemory.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/POWER/Hart.hxx b/Kernel/HALKit/POWER/Hart.hxx index e26e0e39..04897d01 100644 --- a/Kernel/HALKit/POWER/Hart.hxx +++ b/Kernel/HALKit/POWER/Hart.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Hart.hxx - Purpose: POWER hardware threads. + File: Hart.hxx + Purpose: POWER hardware threads. - Revision History: + Revision History: - 14/04/24: Added file (amlel) + 14/04/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/HALKit/POWER/MBCI/HalMBCIHost.cxx b/Kernel/HALKit/POWER/MBCI/HalMBCIHost.cxx index af0ac523..79a29fac 100644 --- a/Kernel/HALKit/POWER/MBCI/HalMBCIHost.cxx +++ b/Kernel/HALKit/POWER/MBCI/HalMBCIHost.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/HALKit/POWER/Processor.hpp b/Kernel/HALKit/POWER/Processor.hpp index dd2d98f4..ece50c44 100644 --- a/Kernel/HALKit/POWER/Processor.hpp +++ b/Kernel/HALKit/POWER/Processor.hpp @@ -1,8 +1,8 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - Purpose: POWER processor header. + Purpose: POWER processor header. ------------------------------------------- */ diff --git a/Kernel/HALKit/RISCV/Hart.hxx b/Kernel/HALKit/RISCV/Hart.hxx index a77bb5eb..eb0fa258 100644 --- a/Kernel/HALKit/RISCV/Hart.hxx +++ b/Kernel/HALKit/RISCV/Hart.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Hart.hxx - Purpose: RISC-V hardware threads. + File: Hart.hxx + Purpose: RISC-V hardware threads. - Revision History: + Revision History: - 30/01/24: Added file (amlel) + 30/01/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/HintKit/CompilerHint.hxx b/Kernel/HintKit/CompilerHint.hxx index dee64f95..3924697b 100644 --- a/Kernel/HintKit/CompilerHint.hxx +++ b/Kernel/HintKit/CompilerHint.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/CodeManager.hpp b/Kernel/KernelKit/CodeManager.hpp index 176efcfd..bae91b79 100644 --- a/Kernel/KernelKit/CodeManager.hpp +++ b/Kernel/KernelKit/CodeManager.hpp @@ -1,14 +1,14 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: CodeManager.hpp - Purpose: Code Manager and Shared Objects. + File: CodeManager.hpp + Purpose: Code Manager and Shared Objects. - Revision History: + Revision History: - 30/01/24: Added file (amlel) - 3/8/24: Add UPP struct. + 30/01/24: Added file (amlel) + 3/8/24: Add UPP struct. ------------------------------------------- */ diff --git a/Kernel/KernelKit/DebugOutput.hpp b/Kernel/KernelKit/DebugOutput.hpp index c6eb4485..594ca701 100644 --- a/Kernel/KernelKit/DebugOutput.hpp +++ b/Kernel/KernelKit/DebugOutput.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -27,11 +27,11 @@ namespace NewOS { - class TerminalDevice; + class TerminalDevice; - inline TerminalDevice& end_line(); - inline TerminalDevice& number(const Long& x); - inline TerminalDevice& hex_number(const Long& x); + inline TerminalDevice& end_line(); + inline TerminalDevice& number(const Long& x); + inline TerminalDevice& hex_number(const Long& x); // @brief Emulates a VT100 terminal. class TerminalDevice final : public DeviceInterface<const Char*> @@ -40,29 +40,27 @@ namespace NewOS TerminalDevice(void (*print)(const Char*), void (*get)(const Char*)) : DeviceInterface<const Char*>(print, get) { - } virtual ~TerminalDevice() { - } TerminalDevice& Number(const Long Data) noexcept { - number(Data); + number(Data); return *this; } TerminalDevice& HexNumber(const Long Data) noexcept { - hex_number(Data); + hex_number(Data); return *this; } - TerminalDevice& EndLine() noexcept + TerminalDevice& EndLine() noexcept { - end_line(); + end_line(); return *this; } diff --git a/Kernel/KernelKit/Defines.hpp b/Kernel/KernelKit/Defines.hpp index b40c5a54..e028553e 100644 --- a/Kernel/KernelKit/Defines.hpp +++ b/Kernel/KernelKit/Defines.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/DeviceManager.hpp b/Kernel/KernelKit/DeviceManager.hpp index d6a2849d..6e2a803f 100644 --- a/Kernel/KernelKit/DeviceManager.hpp +++ b/Kernel/KernelKit/DeviceManager.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,7 +8,7 @@ Revision History: - 31/01/24: Add kDeviceCnt (amlel) + 31/01/24: Add kDeviceCnt (amlel) ------------------------------------------- */ diff --git a/Kernel/KernelKit/DriveManager.hxx b/Kernel/KernelKit/DriveManager.hxx index ad77958e..7978221a 100644 --- a/Kernel/KernelKit/DriveManager.hxx +++ b/Kernel/KernelKit/DriveManager.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -65,10 +65,10 @@ namespace NewOS typedef DriveTrait* DriveTraitPtr; /** - * @brief Mounted drives interface. - * @note This class has all of it's drive set to nullptr, allocate them using - * GetAddressOf(index). - */ + * @brief Mounted drives interface. + * @note This class has all of it's drive set to nullptr, allocate them using + * GetAddressOf(index). + */ class MountpointInterface final { public: diff --git a/Kernel/KernelKit/FileManager.hpp b/Kernel/KernelKit/FileManager.hpp index a5ac6a93..1f6fd774 100644 --- a/Kernel/KernelKit/FileManager.hpp +++ b/Kernel/KernelKit/FileManager.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,7 +8,7 @@ Revision History: - 31/01/24: Update documentation (amlel) + 31/01/24: Update documentation (amlel) ------------------------------------------- */ @@ -49,8 +49,8 @@ namespace NewOS typedef VoidPtr NodePtr; /** - @brief Filesystem Manager Interface class - @brief Used to provide common I/O for a specific filesystem. + @brief Filesystem Manager Interface class + @brief Used to provide common I/O for a specific filesystem. */ class FilesystemManagerInterface { @@ -103,9 +103,9 @@ namespace NewOS #ifdef __FSKIT_NEWFS__ /** - * @brief Based of FilesystemManagerInterface, takes care of managing NewFS - * disks. - */ + * @brief Based of FilesystemManagerInterface, takes care of managing NewFS + * disks. + */ class NewFilesystemManager final : public FilesystemManagerInterface { public: @@ -142,10 +142,10 @@ namespace NewOS #endif // ifdef __FSKIT_NEWFS__ /** - * Usable FileStream - * @tparam Encoding file encoding (char, wchar_t...) - * @tparam FSClass Filesystem contract who takes care of it. - */ + * Usable FileStream + * @tparam Encoding file encoding (char, wchar_t...) + * @tparam FSClass Filesystem contract who takes care of it. + */ template <typename Encoding = char, typename FSClass = FilesystemManagerInterface> class FileStream final diff --git a/Kernel/KernelKit/Framebuffer.hpp b/Kernel/KernelKit/Framebuffer.hpp index 903a1fa8..fd4eff04 100644 --- a/Kernel/KernelKit/Framebuffer.hpp +++ b/Kernel/KernelKit/Framebuffer.hpp @@ -1,9 +1,9 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Framebuffer.hpp - Purpose: Framebuffer object. + File: Framebuffer.hpp + Purpose: Framebuffer object. ------------------------------------------- */ diff --git a/Kernel/KernelKit/HError.hpp b/Kernel/KernelKit/HError.hpp index f4285afb..c183b1ba 100644 --- a/Kernel/KernelKit/HError.hpp +++ b/Kernel/KernelKit/HError.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/KernelHeap.hpp b/Kernel/KernelKit/KernelHeap.hpp index bb21e981..c7b898ed 100644 --- a/Kernel/KernelKit/KernelHeap.hpp +++ b/Kernel/KernelKit/KernelHeap.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/LoaderInterface.hpp b/Kernel/KernelKit/LoaderInterface.hpp index 71c90e0c..b0d64af7 100644 --- a/Kernel/KernelKit/LoaderInterface.hpp +++ b/Kernel/KernelKit/LoaderInterface.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/LockDelegate.hpp b/Kernel/KernelKit/LockDelegate.hpp index 56a2e17f..470e87f7 100644 --- a/Kernel/KernelKit/LockDelegate.hpp +++ b/Kernel/KernelKit/LockDelegate.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/MSDOS.hpp b/Kernel/KernelKit/MSDOS.hpp index 8b27ca58..a9d34ce1 100644 --- a/Kernel/KernelKit/MSDOS.hpp +++ b/Kernel/KernelKit/MSDOS.hpp @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: MSDOS.hpp - Purpose: MS-DOS header for NewOS. + File: MSDOS.hpp + Purpose: MS-DOS header for NewOS. - Revision History: + Revision History: - 30/01/24: Added file (amlel) + 30/01/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/KernelKit/PCI/Database.hpp b/Kernel/KernelKit/PCI/Database.hpp index 002e572a..c83f1b9d 100644 --- a/Kernel/KernelKit/PCI/Database.hpp +++ b/Kernel/KernelKit/PCI/Database.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once diff --git a/Kernel/KernelKit/PCI/Device.hpp b/Kernel/KernelKit/PCI/Device.hpp index 69a99494..4aa5519c 100644 --- a/Kernel/KernelKit/PCI/Device.hpp +++ b/Kernel/KernelKit/PCI/Device.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once diff --git a/Kernel/KernelKit/PCI/Dma.hpp b/Kernel/KernelKit/PCI/Dma.hpp index dc7b8601..fd67ae80 100644 --- a/Kernel/KernelKit/PCI/Dma.hpp +++ b/Kernel/KernelKit/PCI/Dma.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/PCI/Dma.inl b/Kernel/KernelKit/PCI/Dma.inl index 53c52802..0b9adc2d 100644 --- a/Kernel/KernelKit/PCI/Dma.inl +++ b/Kernel/KernelKit/PCI/Dma.inl @@ -1,20 +1,20 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ namespace NewOS { - template<class T> - T* DMAWrapper::operator->() - { - return fAddress; - } + template <class T> + T* DMAWrapper::operator->() + { + return fAddress; + } - template<class T> - T* DMAWrapper::Get(const UIntPtr offset) - { - return reinterpret_cast<T*>((UIntPtr) fAddress + offset); - } -} + template <class T> + T* DMAWrapper::Get(const UIntPtr offset) + { + return reinterpret_cast<T*>((UIntPtr)fAddress + offset); + } +} // namespace NewOS diff --git a/Kernel/KernelKit/PCI/Express.hpp b/Kernel/KernelKit/PCI/Express.hpp index d6266ad2..eedfa5d6 100644 --- a/Kernel/KernelKit/PCI/Express.hpp +++ b/Kernel/KernelKit/PCI/Express.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl b/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl index 92a15b8b..8479a2d5 100644 --- a/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl +++ b/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl @@ -1,47 +1,52 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: IO-Impl-AMD64.hpp - Purpose: I/O for AMD64. + File: IO-Impl-AMD64.hpp + Purpose: I/O for AMD64. - Revision History: + Revision History: - 30/01/24: Add file. (amlel) - 02/02/24: Update I/O routines. (amlel) + 30/01/24: Add file. (amlel) + 02/02/24: Update I/O routines. (amlel) ------------------------------------------- */ -namespace NewOS { -template <SizeT Sz> -template <typename T> -T IOArray<Sz>::In(SizeT index) { - switch (sizeof(T)) { - case 4: - return HAL::In32(fPorts[index].Leak()); - case 2: - return HAL::In16(fPorts[index].Leak()); - case 1: - return HAL::In8(fPorts[index].Leak()); - default: - return 0xFFFF; - } -} +namespace NewOS +{ + template <SizeT Sz> + template <typename T> + T IOArray<Sz>::In(SizeT index) + { + switch (sizeof(T)) + { + case 4: + return HAL::In32(fPorts[index].Leak()); + case 2: + return HAL::In16(fPorts[index].Leak()); + case 1: + return HAL::In8(fPorts[index].Leak()); + default: + return 0xFFFF; + } + } -template <SizeT Sz> -template <typename T> -void IOArray<Sz>::Out(SizeT index, T value) { - switch (sizeof(T)) { + template <SizeT Sz> + template <typename T> + void IOArray<Sz>::Out(SizeT index, T value) + { + switch (sizeof(T)) + { #ifdef __x86_64__ - case 4: - HAL::Out32(fPorts[index].Leak(), value); - case 2: - HAL::Out16(fPorts[index].Leak(), value); - case 1: - HAL::Out8(fPorts[index].Leak(), value); + case 4: + HAL::Out32(fPorts[index].Leak(), value); + case 2: + HAL::Out16(fPorts[index].Leak(), value); + case 1: + HAL::Out8(fPorts[index].Leak(), value); #endif - default: - break; - } -} -} // namespace NewOS + default: + break; + } + } +} // namespace NewOS diff --git a/Kernel/KernelKit/PCI/IO.hpp b/Kernel/KernelKit/PCI/IO.hpp index 0b10f5d0..d4c1d785 100644 --- a/Kernel/KernelKit/PCI/IO.hpp +++ b/Kernel/KernelKit/PCI/IO.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/PCI/PCI.hpp b/Kernel/KernelKit/PCI/PCI.hpp index 2e523d4a..2114a04e 100644 --- a/Kernel/KernelKit/PCI/PCI.hpp +++ b/Kernel/KernelKit/PCI/PCI.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once diff --git a/Kernel/KernelKit/PE.hxx b/Kernel/KernelKit/PE.hxx index 5ab40b70..b4adf732 100644 --- a/Kernel/KernelKit/PE.hxx +++ b/Kernel/KernelKit/PE.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: PE.hxx - Purpose: Portable Executable for NewOS. + File: PE.hxx + Purpose: Portable Executable for NewOS. - Revision History: + Revision History: - 30/01/24: Added file (amlel) + 30/01/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/KernelKit/PECodeManager.hxx b/Kernel/KernelKit/PECodeManager.hxx index 0627617c..68451fb3 100644 --- a/Kernel/KernelKit/PECodeManager.hxx +++ b/Kernel/KernelKit/PECodeManager.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: PECodeManager.hxx - Purpose: PE32+ Code Manager and Shared Objects. + File: PECodeManager.hxx + Purpose: PE32+ Code Manager and Shared Objects. - Revision History: + Revision History: - 12/02/24: Added file (amlel) + 12/02/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/KernelKit/PEF.hpp b/Kernel/KernelKit/PEF.hpp index 6dbc5270..1874aa4e 100644 --- a/Kernel/KernelKit/PEF.hpp +++ b/Kernel/KernelKit/PEF.hpp @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: PEF.hpp - Purpose: Preferred Executable Format for NewOS. + File: PEF.hpp + Purpose: Preferred Executable Format for NewOS. - Revision History: + Revision History: - ?/?/23: Added file (amlel) + ?/?/23: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/KernelKit/PEFCodeManager.hxx b/Kernel/KernelKit/PEFCodeManager.hxx index 1dc7c3ac..748ed835 100644 --- a/Kernel/KernelKit/PEFCodeManager.hxx +++ b/Kernel/KernelKit/PEFCodeManager.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/PEFSharedObject.hxx b/Kernel/KernelKit/PEFSharedObject.hxx index 436145df..9d57b021 100644 --- a/Kernel/KernelKit/PEFSharedObject.hxx +++ b/Kernel/KernelKit/PEFSharedObject.hxx @@ -21,9 +21,9 @@ namespace NewOS extern "C" void __mh_purecall(void); /** - * @brief Shared Library class - * Load library from this class - */ + * @brief Shared Library class + * Load library from this class + */ class SharedObject final { public: diff --git a/Kernel/KernelKit/PermissionSelector.hxx b/Kernel/KernelKit/PermissionSelector.hxx index 22771bdd..9b308fe6 100644 --- a/Kernel/KernelKit/PermissionSelector.hxx +++ b/Kernel/KernelKit/PermissionSelector.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/ProcessScheduler.hpp b/Kernel/KernelKit/ProcessScheduler.hpp index 243857ae..8670691f 100644 --- a/Kernel/KernelKit/ProcessScheduler.hpp +++ b/Kernel/KernelKit/ProcessScheduler.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -252,31 +252,33 @@ namespace NewOS { return mTeam.AsArray().Count() > 0; } + bool operator!() { return mTeam.AsArray().Count() == 0; } - ProcessTeam& CurrentTeam() - { - return mTeam; - } + public: + ProcessTeam& CurrentTeam(); + public: SizeT Add(Ref<ProcessHeader>& headerRef); bool Remove(SizeT headerIndex); + public: Ref<ProcessHeader>& GetCurrent(); SizeT Run() noexcept; - static Ref<ProcessScheduler> Shared(); + public: + static Ref<ProcessScheduler&> Shared(); private: ProcessTeam mTeam; }; /* - * Just a helper class, which contains some utilities for the scheduler. - */ + * Just a helper class, which contains some utilities for the scheduler. + */ class ProcessHelper final { diff --git a/Kernel/KernelKit/SMPManager.hpp b/Kernel/KernelKit/SMPManager.hpp index 3d7a4189..12260a33 100644 --- a/Kernel/KernelKit/SMPManager.hpp +++ b/Kernel/KernelKit/SMPManager.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/Semaphore.hpp b/Kernel/KernelKit/Semaphore.hpp index f12e1282..8424f9bc 100644 --- a/Kernel/KernelKit/Semaphore.hpp +++ b/Kernel/KernelKit/Semaphore.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/ThreadLocalStorage.hxx b/Kernel/KernelKit/ThreadLocalStorage.hxx index eece3cbc..e385eaf3 100644 --- a/Kernel/KernelKit/ThreadLocalStorage.hxx +++ b/Kernel/KernelKit/ThreadLocalStorage.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/ThreadLocalStorage.inl b/Kernel/KernelKit/ThreadLocalStorage.inl index ae3277eb..6407900f 100644 --- a/Kernel/KernelKit/ThreadLocalStorage.inl +++ b/Kernel/KernelKit/ThreadLocalStorage.inl @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -34,12 +34,15 @@ inline bool tls_delete_ptr(T* ptr) MUST_PASS(ProcessScheduler::Shared().Leak().GetCurrent()); - ptr->~T(); - auto ref_process = ProcessScheduler::Shared().Leak().GetCurrent(); return ref_process.Leak().Delete(ptr, sizeof(T)); } +/// @brief Allocate a C++ class, and then call the constructor of it. +/// @tparam T +/// @tparam ...Args +/// @param ...args +/// @return template <typename T, typename... Args> T* tls_new_class(Args&&... args) { @@ -53,3 +56,14 @@ T* tls_new_class(Args&&... args) return nullptr; } + +/// @brief Delete a C++ class (call constructor first.) +/// @tparam T +/// @param ptr +/// @return +template <typename T> +inline bool tls_delete_class(T* ptr) +{ + ptr->~T(); + return tls_delete_ptr(ptr); +}
\ No newline at end of file diff --git a/Kernel/KernelKit/Timer.hpp b/Kernel/KernelKit/Timer.hpp index 8b0642c7..8b4990d2 100644 --- a/Kernel/KernelKit/Timer.hpp +++ b/Kernel/KernelKit/Timer.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/UserHeap.hpp b/Kernel/KernelKit/UserHeap.hpp index 6197e30d..871a5cf6 100644 --- a/Kernel/KernelKit/UserHeap.hpp +++ b/Kernel/KernelKit/UserHeap.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/KernelKit/XCOFF.hxx b/Kernel/KernelKit/XCOFF.hxx index 50efdf0d..f2e49c4c 100644 --- a/Kernel/KernelKit/XCOFF.hxx +++ b/Kernel/KernelKit/XCOFF.hxx @@ -1,13 +1,13 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: XCOFF.hpp - Purpose: XCOFF for NewOS. + File: XCOFF.hpp + Purpose: XCOFF for NewOS. - Revision History: + Revision History: - 04/07/24: Added file (amlel) + 04/07/24: Added file (amlel) ------------------------------------------- */ diff --git a/Kernel/NetworkKit/IP.hpp b/Kernel/NetworkKit/IP.hpp index 94d0d3be..0598c1de 100644 --- a/Kernel/NetworkKit/IP.hpp +++ b/Kernel/NetworkKit/IP.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -42,8 +42,8 @@ namespace NewOS }; /** - * @brief IPv6 address. - */ + * @brief IPv6 address. + */ class RawIPAddress6 final { private: @@ -71,8 +71,8 @@ namespace NewOS }; /** - * @brief IP Creation helpers - */ + * @brief IP Creation helpers + */ class IPFactory final { public: diff --git a/Kernel/NetworkKit/IPCEP.hxx b/Kernel/NetworkKit/IPCEP.hxx index 5c34d47e..6b30ec04 100644 --- a/Kernel/NetworkKit/IPCEP.hxx +++ b/Kernel/NetworkKit/IPCEP.hxx @@ -1,8 +1,9 @@ /* ------------------------------------------- - Copyright SoftwareLabs. + Copyright SoftwareLabs. - File: IPCEP.hxx, Purpose: Common IPC protocol. + File: IPCEP.hxx. + Purpose: IPC protocol. ------------------------------------------- */ @@ -12,16 +13,16 @@ #include <NewKit/Defines.hpp> #include <NewKit/String.hpp> -/// @brief Common IPC Endpoint Protocol (Common IPC for short). +/// @brief IPC Endpoint Protocol (IPCEP for short). /// IA separator. -#define kRemoteSeparator "." +#define cRemoteSeparator "." /// Interchange address, consists of domain:namespace. -#define kRemoteInvalid "00.00.00.00:0000" -#define kRemoteBitWidth 96 /* 96-bit address space. */ +#define cRemoteInvalid "00.00.00.00:0000" +#define cRemoteBitWidth (96) /* 96-bit address space. */ -#define kRemoteHeaderMagic 0xFEEDFACE +#define cRemoteHeaderMagic (0x4950434550) namespace NewOS { @@ -36,14 +37,14 @@ namespace NewOS enum { - kIPCEPLittleEndian = 0, - kIPCEPBigEndian = 1 + eIPCEPLittleEndian = 0, + eIPCEPBigEndian = 1 }; /// @brief IPCEP connection header typedef struct IPCEPConnectionHeader { - UInt32 IpcHeader; // kRemoteHeaderMagic + UInt32 IpcHeader; // cRemoteHeaderMagic UInt8 IpcEndianess; // 0 : LE, 1 : BE SizeT IpcPacketSize; IPCEPAddressType IpcFrom; diff --git a/Kernel/NetworkKit/MAC.hxx b/Kernel/NetworkKit/MAC.hxx index 30a865ac..cc76022a 100644 --- a/Kernel/NetworkKit/MAC.hxx +++ b/Kernel/NetworkKit/MAC.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NetworkKit/NetworkDevice.hpp b/Kernel/NetworkKit/NetworkDevice.hpp index b00ce7a6..ecbc80b7 100644 --- a/Kernel/NetworkKit/NetworkDevice.hpp +++ b/Kernel/NetworkKit/NetworkDevice.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -16,8 +16,8 @@ namespace NewOS class NetworkDevice; /** -* \brief Network device interface, establishes a connection to the NIC. -*/ + * \brief Network device interface, establishes a connection to the NIC. + */ class NetworkDevice final : public DeviceInterface<NetworkDeviceCommand> { public: @@ -56,8 +56,8 @@ namespace NewOS /// @brief PPP device. using PPPNetworkDevice = NetworkDevice; - /// @brief HPC device. - using HPCNetworkDevice = NetworkDevice; + /// @brief IPCEP device. + using IPCEPNetworkDevice = NetworkDevice; } // namespace NewOS #include <NetworkKit/NetworkDevice.inl> diff --git a/Kernel/NetworkKit/NetworkDevice.inl b/Kernel/NetworkKit/NetworkDevice.inl index 0b927d0e..614ccadf 100644 --- a/Kernel/NetworkKit/NetworkDevice.inl +++ b/Kernel/NetworkKit/NetworkDevice.inl @@ -1,27 +1,31 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ /*** - Dtor and ctors. + Dtor and ctors. */ -namespace NewOS { -NetworkDevice::NetworkDevice(void (*out)(NetworkDeviceCommand), - void (*in)(NetworkDeviceCommand), - void (*on_cleanup)(void)) - : DeviceInterface<NetworkDeviceCommand>(out, in), fCleanup(on_cleanup) { - kcout << "NK: NetworkDevice initialize.\r"; +namespace NewOS +{ + NetworkDevice::NetworkDevice(void (*out)(NetworkDeviceCommand), + void (*in)(NetworkDeviceCommand), + void (*on_cleanup)(void)) + : DeviceInterface<NetworkDeviceCommand>(out, in), fCleanup(on_cleanup) + { + kcout << "New OS: NetworkDevice initialized.\r"; - MUST_PASS(out && in && on_cleanup); -} + MUST_PASS(out && in && on_cleanup); + } -NetworkDevice::~NetworkDevice() { - MUST_PASS(fCleanup); + NetworkDevice::~NetworkDevice() + { + MUST_PASS(fCleanup); - kcout << "NK: NetworkDevice cleanup.\r"; - if (fCleanup) fCleanup(); -} + kcout << "New OS: NetworkDevice cleanup.\r"; + if (fCleanup) + fCleanup(); + } } // namespace NewOS diff --git a/Kernel/NewKit/ApplicationInterface.hxx b/Kernel/NewKit/ApplicationInterface.hxx index 09d2c901..d15194df 100644 --- a/Kernel/NewKit/ApplicationInterface.hxx +++ b/Kernel/NewKit/ApplicationInterface.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Array.hpp b/Kernel/NewKit/Array.hpp index 623d9860..0f7ee2bb 100644 --- a/Kernel/NewKit/Array.hpp +++ b/Kernel/NewKit/Array.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once diff --git a/Kernel/NewKit/ArrayList.hpp b/Kernel/NewKit/ArrayList.hpp index 7ac47f40..6556a573 100644 --- a/Kernel/NewKit/ArrayList.hpp +++ b/Kernel/NewKit/ArrayList.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Atom.hpp b/Kernel/NewKit/Atom.hpp index df7d3dda..5f52b63b 100644 --- a/Kernel/NewKit/Atom.hpp +++ b/Kernel/NewKit/Atom.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once diff --git a/Kernel/NewKit/CxxAbi.hpp b/Kernel/NewKit/CxxAbi.hpp index 92dcbdee..1eab236e 100644 --- a/Kernel/NewKit/CxxAbi.hpp +++ b/Kernel/NewKit/CxxAbi.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once diff --git a/Kernel/NewKit/Defines.hpp b/Kernel/NewKit/Defines.hpp index f32e873a..75df318a 100644 --- a/Kernel/NewKit/Defines.hpp +++ b/Kernel/NewKit/Defines.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/ErrorOr.hpp b/Kernel/NewKit/ErrorOr.hpp index 236a2d1c..3aa2058d 100644 --- a/Kernel/NewKit/ErrorOr.hpp +++ b/Kernel/NewKit/ErrorOr.hpp @@ -1,11 +1,11 @@ /* -* ======================================================== -* -* NewOS -* Copyright SoftwareLabs, all rights reserved. -* -* ======================================================== -*/ + * ======================================================== + * + * NewOS + * Copyright SoftwareLabs, all rights reserved. + * + * ======================================================== + */ #pragma once diff --git a/Kernel/NewKit/Json.hpp b/Kernel/NewKit/Json.hpp index ebdcc848..3aab902a 100644 --- a/Kernel/NewKit/Json.hpp +++ b/Kernel/NewKit/Json.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/KernelCheck.hpp b/Kernel/NewKit/KernelCheck.hpp index e6a27834..383e49f7 100644 --- a/Kernel/NewKit/KernelCheck.hpp +++ b/Kernel/NewKit/KernelCheck.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Macros.hpp b/Kernel/NewKit/Macros.hpp index 7e9dc759..72ae5643 100644 --- a/Kernel/NewKit/Macros.hpp +++ b/Kernel/NewKit/Macros.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/MutableArray.hpp b/Kernel/NewKit/MutableArray.hpp index 0dfed60c..ad2afdf4 100644 --- a/Kernel/NewKit/MutableArray.hpp +++ b/Kernel/NewKit/MutableArray.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once @@ -69,9 +69,9 @@ namespace NewOS } /* - * We free all the nodes allocated by the array - * and store the next one inside "NextIt" - */ + * We free all the nodes allocated by the array + * and store the next one inside "NextIt" + */ virtual ~NullableMutableArray() { diff --git a/Kernel/NewKit/New.hpp b/Kernel/NewKit/New.hpp index 1e80f641..379a92f3 100644 --- a/Kernel/NewKit/New.hpp +++ b/Kernel/NewKit/New.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once diff --git a/Kernel/NewKit/NewKit.hpp b/Kernel/NewKit/NewKit.hpp index 273efde2..a24c41a8 100644 --- a/Kernel/NewKit/NewKit.hpp +++ b/Kernel/NewKit/NewKit.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/OwnPtr.hpp b/Kernel/NewKit/OwnPtr.hpp index ca89787a..0160572b 100644 --- a/Kernel/NewKit/OwnPtr.hpp +++ b/Kernel/NewKit/OwnPtr.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/PageAllocator.hpp b/Kernel/NewKit/PageAllocator.hpp index fa92f635..2a57b090 100644 --- a/Kernel/NewKit/PageAllocator.hpp +++ b/Kernel/NewKit/PageAllocator.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/PageManager.hpp b/Kernel/NewKit/PageManager.hpp index 7706c9f4..22e6701e 100644 --- a/Kernel/NewKit/PageManager.hpp +++ b/Kernel/NewKit/PageManager.hpp @@ -3,7 +3,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Pair.hpp b/Kernel/NewKit/Pair.hpp index e5de607d..1046feb6 100644 --- a/Kernel/NewKit/Pair.hpp +++ b/Kernel/NewKit/Pair.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Pmm.hpp b/Kernel/NewKit/Pmm.hpp index 10fd148b..8663bbad 100644 --- a/Kernel/NewKit/Pmm.hpp +++ b/Kernel/NewKit/Pmm.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Ref.hpp b/Kernel/NewKit/Ref.hpp index 356fcad0..8b1e4e9e 100644 --- a/Kernel/NewKit/Ref.hpp +++ b/Kernel/NewKit/Ref.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Stream.hpp b/Kernel/NewKit/Stream.hpp index a1074a79..a77d60a1 100644 --- a/Kernel/NewKit/Stream.hpp +++ b/Kernel/NewKit/Stream.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/String.hpp b/Kernel/NewKit/String.hpp index 6bf5edfd..59214571 100644 --- a/Kernel/NewKit/String.hpp +++ b/Kernel/NewKit/String.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Utils.hpp b/Kernel/NewKit/Utils.hpp index 977f5ea7..0b238daf 100644 --- a/Kernel/NewKit/Utils.hpp +++ b/Kernel/NewKit/Utils.hpp @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/NewKit/Variant.hpp b/Kernel/NewKit/Variant.hpp index a8f6759f..45f97d0d 100644 --- a/Kernel/NewKit/Variant.hpp +++ b/Kernel/NewKit/Variant.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/AppMain.cxx b/Kernel/Sources/AppMain.cxx index 028e70e5..9ca224c3 100644 --- a/Kernel/Source/AppMain.cxx +++ b/Kernel/Sources/AppMain.cxx @@ -1,9 +1,9 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: AppMain.cxx - Purpose: Kernel main loop. + File: AppMain.cxx + Purpose: Kernel main loop. ------------------------------------------- */ @@ -24,7 +24,7 @@ #include <NewKit/Utils.hpp> #include <KernelKit/CodeManager.hpp> -namespace Detail +namespace NewOS::Detail { /// @brief Filesystem auto mounter, additional checks are also done by the /// class. @@ -184,7 +184,7 @@ namespace Detail /// @return void no return value. STATIC NewOS::Void AppSystemLoader(NewOS::Void) { - NewOS::PEFLoader coreGraphicsShLib("/System/CoreGraphics"); + NewOS::PEFLoader coreGraphicsShLib("/System/WindowServer"); if (!coreGraphicsShLib.IsLoaded()) { @@ -208,7 +208,7 @@ namespace Detail NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Exit(0); } -} // namespace Detail +} // namespace NewOS::Detail /// @brief Application entrypoint. /// @param Void @@ -216,13 +216,10 @@ namespace Detail EXTERN_C NewOS::Void AppMain(NewOS::Void) { /// Now run kernel loop, until no process are running. - Detail::FilesystemWizard wizard; // automatic. + NewOS::Detail::FilesystemWizard wizard; // automatic. auto cLoaderName = "SystemLoader"; - NewOS::execute_from_image(Detail::AppSystemLoader, cLoaderName); + NewOS::execute_from_image(NewOS::Detail::AppSystemLoader, cLoaderName); - while (NewOS::ProcessScheduler::Shared().Leak().Run() > 0) - { - NewOS::kcout << "New OS: sleeping...\r"; - } + while (NewOS::ProcessScheduler::Shared().Leak().Run() > 0) {} } diff --git a/Kernel/Source/Array.cxx b/Kernel/Sources/Array.cxx index 618ba9f6..f1df0abe 100644 --- a/Kernel/Source/Array.cxx +++ b/Kernel/Sources/Array.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/ArrayList.cxx b/Kernel/Sources/ArrayList.cxx index 0f3a1b3a..e96e993c 100644 --- a/Kernel/Source/ArrayList.cxx +++ b/Kernel/Sources/ArrayList.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Atom.cxx b/Kernel/Sources/Atom.cxx index f7ae9416..0619e4ad 100644 --- a/Kernel/Source/Atom.cxx +++ b/Kernel/Sources/Atom.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/CodeManager.cxx b/Kernel/Sources/CodeManager.cxx index 001795ce..358481f6 100644 --- a/Kernel/Source/CodeManager.cxx +++ b/Kernel/Sources/CodeManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Crc32.cxx b/Kernel/Sources/Crc32.cxx index 6ddb5642..2fd273e0 100644 --- a/Kernel/Source/Crc32.cxx +++ b/Kernel/Sources/Crc32.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/CxxAbi.cxx b/Kernel/Sources/CxxAbi.cxx index 2f9ae6a2..9aea8db7 100644 --- a/Kernel/Source/CxxAbi.cxx +++ b/Kernel/Sources/CxxAbi.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Defines.cxx b/Kernel/Sources/Defines.cxx index 02327f07..919d0fe4 100644 --- a/Kernel/Source/Defines.cxx +++ b/Kernel/Sources/Defines.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/DeviceManager.cxx b/Kernel/Sources/DeviceManager.cxx index 6e45e9da..5679b2af 100644 --- a/Kernel/Source/DeviceManager.cxx +++ b/Kernel/Sources/DeviceManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/DriveManager.cxx b/Kernel/Sources/DriveManager.cxx index c60b2079..62195b99 100644 --- a/Kernel/Source/DriveManager.cxx +++ b/Kernel/Sources/DriveManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/ErrorOr.cxx b/Kernel/Sources/ErrorOr.cxx index 7cef9afb..10d6cc8f 100644 --- a/Kernel/Source/ErrorOr.cxx +++ b/Kernel/Sources/ErrorOr.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/FS/NewFS.cxx b/Kernel/Sources/FS/NewFS.cxx index 41869fcd..6f19c8ed 100644 --- a/Kernel/Source/FS/NewFS.cxx +++ b/Kernel/Sources/FS/NewFS.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -20,7 +20,12 @@ using namespace NewOS; ///! BUGS: 0 /***********************************************************************************/ -/* This file implements the New File System. +/// This file implements the New File System. +/// New File System implements a B-Tree based algortihm. +/// /Disk +/// /Path1 /Path2 +/// /File.txt /File.pef /File.png <-- symlink. +/// /Path1/File.txt /***********************************************************************************/ STATIC MountpointInterface sMountpointInterface; @@ -30,7 +35,7 @@ STATIC MountpointInterface sMountpointInterface; /// @param theFork the fork itself. /// @return the fork _Output NewFork* NewFSParser::CreateFork(_Input NewCatalog* catalog, - _Input NewFork& theFork) + _Input NewFork& theFork) { if (!sMountpointInterface.GetAddressOf(this->fDriveIndex)) return nullptr; @@ -199,7 +204,7 @@ _Output NewCatalog* NewFSParser::CreateCatalog(_Input const char* name) /// @param flags the flags of the catalog. /// @param kind the catalog kind. /// @return catalog pointer. -_Output NewCatalog* NewFSParser::CreateCatalog(_Input const char* name, +_Output NewCatalog* NewFSParser::CreateCatalog(_Input const char* name, _Input const Int32& flags, _Input const Int32& kind) { diff --git a/Kernel/Source/FileManager.cxx b/Kernel/Sources/FileManager.cxx index ed90dab8..1aeae426 100644 --- a/Kernel/Source/FileManager.cxx +++ b/Kernel/Sources/FileManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -91,7 +91,7 @@ namespace NewOS NEWOS_UNUSED(flags); auto dataForkName = "FileData"; - + if ((reinterpret_cast<NewCatalog*>(node))->Kind == kNewFSCatalogKindFile) fImpl->WriteCatalog(reinterpret_cast<NewCatalog*>(node), data, size, dataForkName); diff --git a/Kernel/Source/Framebuffer.cxx b/Kernel/Sources/Framebuffer.cxx index 7d36c722..5428ca91 100644 --- a/Kernel/Source/Framebuffer.cxx +++ b/Kernel/Sources/Framebuffer.cxx @@ -1,14 +1,14 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Framebuffer.cxx - Purpose: Framebuffer object + File: Framebuffer.cxx + Purpose: Framebuffer object - Revision History: + Revision History: - 01/02/24: Added file (amlel) - 02/02/24: Add documentation (amlel) + 01/02/24: Added file (amlel) + 02/02/24: Add documentation (amlel) ------------------------------------------- */ diff --git a/Kernel/Source/GUIDWizard.cxx b/Kernel/Sources/GUIDWizard.cxx index 2e4ffafa..d434e497 100644 --- a/Kernel/Source/GUIDWizard.cxx +++ b/Kernel/Sources/GUIDWizard.cxx @@ -1,11 +1,11 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: GUIDWizard.cxx - Purpose: GUID helper code + File: GUIDWizard.cxx + Purpose: GUID helper code - Revision History: + Revision History: ------------------------------------------- */ diff --git a/Kernel/Source/GUIDWrapper.cxx b/Kernel/Sources/GUIDWrapper.cxx index d8ed28e0..b1f1d3cf 100644 --- a/Kernel/Source/GUIDWrapper.cxx +++ b/Kernel/Sources/GUIDWrapper.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/HError.cxx b/Kernel/Sources/HError.cxx index bee5a467..8527a683 100644 --- a/Kernel/Source/HError.cxx +++ b/Kernel/Sources/HError.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/IndexableProperty.cxx b/Kernel/Sources/IndexableProperty.cxx index 305d0988..16694f52 100644 --- a/Kernel/Source/IndexableProperty.cxx +++ b/Kernel/Sources/IndexableProperty.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Json.cxx b/Kernel/Sources/Json.cxx index 672c1b39..b0e4050f 100644 --- a/Kernel/Source/Json.cxx +++ b/Kernel/Sources/Json.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/KernelCheck.cxx b/Kernel/Sources/KernelCheck.cxx index 5df52248..b59417d4 100644 --- a/Kernel/Source/KernelCheck.cxx +++ b/Kernel/Sources/KernelCheck.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/KernelHeap.cxx b/Kernel/Sources/KernelHeap.cxx index d0037ec3..a8ca467e 100644 --- a/Kernel/Source/KernelHeap.cxx +++ b/Kernel/Sources/KernelHeap.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -159,7 +159,7 @@ namespace NewOS if (virtualAddress->fPresent && kKernelHeapMagic == virtualAddress->fMagic) { virtualAddress->fCRC32 = - ke_calculate_crc32((Char*)heapPtr, virtualAddress->fTargetPtrSize); + ke_calculate_crc32((Char*)virtualAddress->fTargetPtr, virtualAddress->fTargetPtrSize); return true; } } diff --git a/Kernel/Source/LockDelegate.cxx b/Kernel/Sources/LockDelegate.cxx index 70e421f7..c7e6234b 100644 --- a/Kernel/Source/LockDelegate.cxx +++ b/Kernel/Sources/LockDelegate.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,5 +8,5 @@ namespace NewOS { - /// Leave it empty for now. + /// Leave it empty for now. } // namespace NewOS
\ No newline at end of file diff --git a/Kernel/Source/MutableArray.cxx b/Kernel/Sources/MutableArray.cxx index 047a4455..195ca6d9 100644 --- a/Kernel/Source/MutableArray.cxx +++ b/Kernel/Sources/MutableArray.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Network/IP.cxx b/Kernel/Sources/Network/IP.cxx index 224f7b2a..1e438766 100644 --- a/Kernel/Source/Network/IP.cxx +++ b/Kernel/Sources/Network/IP.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Network/IPCEP.cxx b/Kernel/Sources/Network/IPCEP.cxx index 39f3ea33..ba537e95 100644 --- a/Kernel/Source/Network/IPCEP.cxx +++ b/Kernel/Sources/Network/IPCEP.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Network/NetworkDevice.cxx b/Kernel/Sources/Network/NetworkDevice.cxx index a2c25782..54d24b07 100644 --- a/Kernel/Source/Network/NetworkDevice.cxx +++ b/Kernel/Sources/Network/NetworkDevice.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/New+Delete.cxx b/Kernel/Sources/New+Delete.cxx index 84e3a72d..d709aaee 100644 --- a/Kernel/Source/New+Delete.cxx +++ b/Kernel/Sources/New+Delete.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/NewFS+FileManager.cxx b/Kernel/Sources/NewFS+FileManager.cxx index bcfc0443..3434edea 100644 --- a/Kernel/Source/NewFS+FileManager.cxx +++ b/Kernel/Sources/NewFS+FileManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/NewFS+IO.cxx b/Kernel/Sources/NewFS+IO.cxx index 3235c080..5dfd77b0 100644 --- a/Kernel/Source/NewFS+IO.cxx +++ b/Kernel/Sources/NewFS+IO.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/NewFS+Journal.cxx b/Kernel/Sources/NewFS+Journal.cxx index 23f42f89..57f76fd4 100644 --- a/Kernel/Source/NewFS+Journal.cxx +++ b/Kernel/Sources/NewFS+Journal.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/OwnPtr.cxx b/Kernel/Sources/OwnPtr.cxx index 909eacef..cfbdf3b9 100644 --- a/Kernel/Source/OwnPtr.cxx +++ b/Kernel/Sources/OwnPtr.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/PEFCodeManager.cxx b/Kernel/Sources/PEFCodeManager.cxx index 0bab5373..6fa7e6a1 100644 --- a/Kernel/Source/PEFCodeManager.cxx +++ b/Kernel/Sources/PEFCodeManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/PEFSharedObjectRT.cxx b/Kernel/Sources/PEFSharedObjectRT.cxx index 810f0480..20af1b98 100644 --- a/Kernel/Source/PEFSharedObjectRT.cxx +++ b/Kernel/Sources/PEFSharedObjectRT.cxx @@ -18,7 +18,7 @@ Revision History: - 01/02/24: Rework shared library ABI, except a rt_library_init and + 01/02/24: Rework shared library ABI, except a rt_library_init and rt_library_free (amlel) 15/02/24: Breaking changes, changed the name of the routines. (amlel) diff --git a/Kernel/Source/PRDT.cxx b/Kernel/Sources/PRDT.cxx index 3f454409..11165a40 100644 --- a/Kernel/Source/PRDT.cxx +++ b/Kernel/Sources/PRDT.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/PageAllocator.cxx b/Kernel/Sources/PageAllocator.cxx index bafa5a7e..d3a4d4e2 100644 --- a/Kernel/Source/PageAllocator.cxx +++ b/Kernel/Sources/PageAllocator.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/PageManager.cxx b/Kernel/Sources/PageManager.cxx index e1cfdeea..990b2546 100644 --- a/Kernel/Source/PageManager.cxx +++ b/Kernel/Sources/PageManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/PermissionSelector.cxx b/Kernel/Sources/PermissionSelector.cxx index cb44b237..cb44b237 100644 --- a/Kernel/Source/PermissionSelector.cxx +++ b/Kernel/Sources/PermissionSelector.cxx diff --git a/Kernel/Source/Pmm.cxx b/Kernel/Sources/Pmm.cxx index f60f5b23..0641f457 100644 --- a/Kernel/Source/Pmm.cxx +++ b/Kernel/Sources/Pmm.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -9,6 +9,7 @@ namespace NewOS { + /// @brief Pmm constructor. Pmm::Pmm() : fPageManager() { @@ -18,17 +19,19 @@ namespace NewOS Pmm::~Pmm() = default; /* If this returns Null pointer, enter emergency mode */ + /// @param user is this a user page? + /// @param readWrite is it r/w? Ref<PTEWrapper> Pmm::RequestPage(Boolean user, Boolean readWrite) { PTEWrapper pt = fPageManager.Leak().Request(user, readWrite, false, kPTESize); if (pt.fPresent) { - kcout << "[PMM]: Allocation was successful."; + kcout << "[PMM]: Allocation was successful.\r"; return Ref<PTEWrapper>(pt); } - kcout << "[PMM]: Allocation failure."; + kcout << "[PMM]: Allocation failed.\r"; return {}; } diff --git a/Kernel/Source/ProcessScheduler.cxx b/Kernel/Sources/ProcessScheduler.cxx index 555dfe07..1e4537f1 100644 --- a/Kernel/Source/ProcessScheduler.cxx +++ b/Kernel/Sources/ProcessScheduler.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -150,16 +150,16 @@ namespace NewOS /***********************************************************************************/ /** -@brief Affinity is the time slot allowed for the process. -*/ + @brief Affinity is the time slot allowed for the process. + */ const AffinityKind& ProcessHeader::GetAffinity() { return this->Affinity; } /** -@brief Standard exit proc. -*/ + @brief Standard exit proc. + */ void ProcessHeader::Exit(Int32 exit_code) { if (this->ProcessId != @@ -196,6 +196,9 @@ namespace NewOS ProcessScheduler::Shared().Leak().Remove(this->ProcessId); } + /// @brief Add process to list. + /// @param process + /// @return SizeT ProcessScheduler::Add(Ref<ProcessHeader>& process) { if (!process) @@ -238,6 +241,9 @@ namespace NewOS return mTeam.AsArray().Count() - 1; } + /// @brief Remove process from list. + /// @param process + /// @return bool ProcessScheduler::Remove(SizeT process) { if (process > mTeam.AsArray().Count()) @@ -248,6 +254,8 @@ namespace NewOS return mTeam.AsArray().Remove(process); } + /// @brief Run scheduler. + /// @return SizeT ProcessScheduler::Run() noexcept { SizeT processIndex = 0; //! we store this guy to tell the scheduler how many @@ -284,7 +292,16 @@ namespace NewOS return processIndex; } - Ref<ProcessScheduler> ProcessScheduler::Shared() + /// @brief Gets the current scheduled team. + /// @return + ProcessTeam& ProcessScheduler::CurrentTeam() + { + return mTeam; + } + + /// @brief Shared instance of the process scheduler. + /// @return + Ref<ProcessScheduler&> ProcessScheduler::Shared() { static ProcessScheduler ref; return {ref}; @@ -297,12 +314,18 @@ namespace NewOS return mTeam.AsRef(); } + /// @brief Current proccess id getter. + /// @return Process ID integer. PID& ProcessHelper::GetCurrentPID() { kcout << "ProcessHelper::GetCurrentPID: Leaking ProcessId...\r"; return ProcessScheduler::Shared().Leak().GetCurrent().Leak().ProcessId; } + /// @brief Check if process can be schedulded. + /// @param process the process reference. + /// @retval true can be schedulded. + /// @retval false cannot be schedulded. bool ProcessHelper::CanBeScheduled(Ref<ProcessHeader>& process) { if (process.Leak().Status == ProcessStatus::kFrozen || @@ -326,8 +349,9 @@ namespace NewOS } /** - * @brief Spin scheduler class. - */ + * @brief Spin scheduler class. + */ + bool ProcessHelper::StartScheduling() { if (ProcessHelper::CanBeScheduled( @@ -351,10 +375,10 @@ namespace NewOS } /** - * \brief Does a context switch in a CPU. - * \param the_stack the stackframe of the running app. - * \param new_pid the process's PID. -*/ + * \brief Does a context switch in a CPU. + * \param the_stack the stackframe of the running app. + * \param new_pid the process's PID. + */ bool ProcessHelper::Switch(HAL::StackFrame* the_stack, const PID& new_pid) { diff --git a/Kernel/Source/ProcessTeam.cxx b/Kernel/Sources/ProcessTeam.cxx index 959402f4..7e311399 100644 --- a/Kernel/Source/ProcessTeam.cxx +++ b/Kernel/Sources/ProcessTeam.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Property.cxx b/Kernel/Sources/Property.cxx index ab4f7bf5..0c5c5fab 100644 --- a/Kernel/Source/Property.cxx +++ b/Kernel/Sources/Property.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Ref.cxx b/Kernel/Sources/Ref.cxx index 60f02b69..01883e07 100644 --- a/Kernel/Source/Ref.cxx +++ b/Kernel/Sources/Ref.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/SMPManager.cxx b/Kernel/Sources/SMPManager.cxx index d9aac48e..90a9d440 100644 --- a/Kernel/Source/SMPManager.cxx +++ b/Kernel/Sources/SMPManager.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -78,12 +78,29 @@ namespace NewOS extern bool rt_check_stack(HAL::StackFramePtr stackPtr); + /// @brief Switch to hardware thread. + /// @param stack the new hardware thread. + /// @retval true stack was changed, code is running. + /// @retval false stack is invalid, previous code is running. bool HardwareThread::Switch(HAL::StackFramePtr stack) { if (!rt_check_stack(stack)) return false; - fStack = stack; + if (!fStack) + { + fStack = stack; + } + else + { + /// Keep the arguments, switch the base pointer, stack pointer + /// fs and gs registers. + + fStack->Rbp = stack->Rbp; + fStack->Rsp = stack->Rsp; + fStack->Fs = stack->Fs; + fStack->Gs = stack->Gs; + } rt_do_context_switch(fStack); return true; @@ -166,10 +183,10 @@ namespace NewOS } /** - * Index Hardware thread - * @param idx the index - * @return the reference to the hardware thread. - */ + * Index Hardware thread + * @param idx the index + * @return the reference to the hardware thread. + */ Ref<HardwareThread> SMPManager::operator[](const SizeT& idx) { if (idx == 0) @@ -191,18 +208,18 @@ namespace NewOS } /** - * Check if thread pool isn't empty. - * @return - */ + * Check if thread pool isn't empty. + * @return + */ SMPManager::operator bool() noexcept { return !fThreadList.Empty(); } /** - * Reverse operator bool - * @return - */ + * Reverse operator bool + * @return + */ bool SMPManager::operator!() noexcept { return fThreadList.Empty(); diff --git a/Kernel/Source/Semaphore.cxx b/Kernel/Sources/Semaphore.cxx index eebdd210..7bd1d513 100644 --- a/Kernel/Source/Semaphore.cxx +++ b/Kernel/Sources/Semaphore.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Storage/AHCIDeviceInterface.cxx b/Kernel/Sources/Storage/AHCIDeviceInterface.cxx index da25c05d..b0431cb1 100644 --- a/Kernel/Source/Storage/AHCIDeviceInterface.cxx +++ b/Kernel/Sources/Storage/AHCIDeviceInterface.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Storage/ATADeviceInterface.cxx b/Kernel/Sources/Storage/ATADeviceInterface.cxx index 5624dddb..0f7d22c1 100644 --- a/Kernel/Source/Storage/ATADeviceInterface.cxx +++ b/Kernel/Sources/Storage/ATADeviceInterface.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Storage/NVMEDeviceInterface.cxx b/Kernel/Sources/Storage/NVMEDeviceInterface.cxx index aaaa3eb0..22c9c9d0 100644 --- a/Kernel/Source/Storage/NVMEDeviceInterface.cxx +++ b/Kernel/Sources/Storage/NVMEDeviceInterface.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Storage/SCSIDeviceInterface.cxx b/Kernel/Sources/Storage/SCSIDeviceInterface.cxx index 16105547..b64681d3 100644 --- a/Kernel/Source/Storage/SCSIDeviceInterface.cxx +++ b/Kernel/Sources/Storage/SCSIDeviceInterface.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Stream.cxx b/Kernel/Sources/Stream.cxx index 134ec586..f21ef4d7 100644 --- a/Kernel/Source/Stream.cxx +++ b/Kernel/Sources/Stream.cxx @@ -1,11 +1,11 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs - File: Stream.cxx - Purpose: Stream object + File: Stream.cxx + Purpose: Stream object - Revision History: + Revision History: ------------------------------------------- */ diff --git a/Kernel/Source/String.cxx b/Kernel/Sources/String.cxx index 764ab0d9..4b6ea365 100644 --- a/Kernel/Source/String.cxx +++ b/Kernel/Sources/String.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/ThreadLocalStorage.cxx b/Kernel/Sources/ThreadLocalStorage.cxx index c31ae1c2..c31ae1c2 100644 --- a/Kernel/Source/ThreadLocalStorage.cxx +++ b/Kernel/Sources/ThreadLocalStorage.cxx diff --git a/Kernel/Source/Timer.cxx b/Kernel/Sources/Timer.cxx index 3e705c38..0495677c 100644 --- a/Kernel/Source/Timer.cxx +++ b/Kernel/Sources/Timer.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/URL.cxx b/Kernel/Sources/URL.cxx index 8c11ca55..1b223938 100644 --- a/Kernel/Source/URL.cxx +++ b/Kernel/Sources/URL.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/UserHeap.cxx b/Kernel/Sources/UserHeap.cxx index 9d9cd627..02c4c753 100644 --- a/Kernel/Source/UserHeap.cxx +++ b/Kernel/Sources/UserHeap.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -19,9 +19,9 @@ namespace NewOS { /** - * @brief Process Heap Header - * @note Allocated per process, it denotes the user's heap. - */ + * @brief Process Heap Header + * @note Allocated per process, it denotes the user's heap. + */ struct UserHeapHeader final { UInt32 fMagic; @@ -31,10 +31,10 @@ namespace NewOS }; /** - * @brief User Heap Manager class, takes care of allocating the process pools. - * @note This rely on Virtual Memory! Consider adding good vmem support when - * @note porting to a new arch. - */ + * @brief User Heap Manager class, takes care of allocating the process pools. + * @note This rely on Virtual Memory! Consider adding good vmem support when + * @note porting to a new arch. + */ class UserHeapManager final { public: @@ -158,12 +158,12 @@ namespace NewOS } /** - * @brief Check for the ptr and frees it. - * - * @param index Where to look at. - * @param ptr The ptr to check. - * @return Boolean true if successful. - */ + * @brief Check for the ptr and frees it. + * + * @param index Where to look at. + * @param ptr The ptr to check. + * @return Boolean true if successful. + */ STATIC Boolean ke_check_and_free_heap(const SizeT& index, VoidPtr ptr) { if (UserHeapManager::The()[index]) diff --git a/Kernel/Source/Utils.cxx b/Kernel/Sources/Utils.cxx index f621594d..1814c72e 100644 --- a/Kernel/Source/Utils.cxx +++ b/Kernel/Sources/Utils.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/Variant.cxx b/Kernel/Sources/Variant.cxx index 1a09718b..94f1991e 100644 --- a/Kernel/Source/Variant.cxx +++ b/Kernel/Sources/Variant.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/Source/compile_flags.txt b/Kernel/Sources/compile_flags.txt index 1f54e6fb..1f54e6fb 100644 --- a/Kernel/Source/compile_flags.txt +++ b/Kernel/Sources/compile_flags.txt diff --git a/Kernel/StorageKit/AHCI.hpp b/Kernel/StorageKit/AHCI.hpp index 5f8908cb..f7b5b58c 100644 --- a/Kernel/StorageKit/AHCI.hpp +++ b/Kernel/StorageKit/AHCI.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/StorageKit/ATA.hpp b/Kernel/StorageKit/ATA.hpp index 2cffb092..5cbec313 100644 --- a/Kernel/StorageKit/ATA.hpp +++ b/Kernel/StorageKit/ATA.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/StorageKit/NVME.hpp b/Kernel/StorageKit/NVME.hpp index 4f1c6362..5d50f8bb 100644 --- a/Kernel/StorageKit/NVME.hpp +++ b/Kernel/StorageKit/NVME.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/StorageKit/PRDT.hpp b/Kernel/StorageKit/PRDT.hpp index ae6166ce..617a74de 100644 --- a/Kernel/StorageKit/PRDT.hpp +++ b/Kernel/StorageKit/PRDT.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/StorageKit/SCSI.hxx b/Kernel/StorageKit/SCSI.hxx index 4a11c6e5..ed24d022 100644 --- a/Kernel/StorageKit/SCSI.hxx +++ b/Kernel/StorageKit/SCSI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/StorageKit/Storage.hpp b/Kernel/StorageKit/Storage.hpp index 6093a5f0..8af8c465 100644 --- a/Kernel/StorageKit/Storage.hpp +++ b/Kernel/StorageKit/Storage.hpp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/Kernel/makefile b/Kernel/makefile index 24c823b4..b7749100 100644 --- a/Kernel/makefile +++ b/Kernel/makefile @@ -50,9 +50,9 @@ WINDRES=x86_64-w64-mingw32-windres .PHONY: newos-amd64-epm newos-amd64-epm: clean $(WINDRES) KernelRsrc.rsrc -O coff -o KernelRsrc.obj - $(CC) $(CCFLAGS) $(DISKDRIVER) $(DEBUG) $(wildcard Source/*.cxx) \ - $(wildcard Source/FS/*.cxx) $(wildcard HALKit/AMD64/Storage/*.cxx) \ - $(wildcard HALKit/AMD64/PCI/*.cxx) $(wildcard Source/Network/*.cxx) $(wildcard Source/Storage/*.cxx) \ + $(CC) $(CCFLAGS) $(DISKDRIVER) $(DEBUG) $(wildcard Sources/*.cxx) \ + $(wildcard Sources/FS/*.cxx) $(wildcard HALKit/AMD64/Storage/*.cxx) \ + $(wildcard HALKit/AMD64/PCI/*.cxx) $(wildcard Sources/Network/*.cxx) $(wildcard Sources/Storage/*.cxx) \ $(wildcard HALKit/AMD64/*.cxx) $(wildcard HALKit/AMD64/*.cpp) \ $(wildcard HALKit/AMD64/*.s) $(ASM) $(ASMFLAGS) HALKit/AMD64/HalInterruptAPI.asm diff --git a/Meta/NewFS-B-Tree.svg b/Meta/NewFS-B-Tree.svg new file mode 100644 index 00000000..2b6ed597 --- /dev/null +++ b/Meta/NewFS-B-Tree.svg @@ -0,0 +1,162 @@ +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 566 520" width="566" height="520"> + <!-- svg-source:excalidraw --> + + <defs> + <style class="style-fonts"> + @font-face { + font-family: "Virgil"; + src: url("https://excalidraw.com/Virgil.woff2"); + } + + @font-face { + font-family: "Cascadia"; + src: url("https://excalidraw.com/Cascadia.woff2"); + } + + @font-face { + font-family: "Assistant"; + src: url("https://excalidraw.com/Assistant-Regular.woff2"); + } + </style> + + </defs> + <rect x="0" y="0" width="566" height="520" fill="#ffffff"></rect> + <g stroke-linecap="round" transform="translate(10 10) rotate(0 66.5 250)"> + <path + d="M32 0 C44.33 -0.41, 60.84 -1.91, 101 0 M32 0 C52.99 -0.05, 73.05 -0.18, 101 0 M101 0 C120.38 1.09, 131.23 12.51, 133 32 M101 0 C123.53 2.1, 131.8 9.45, 133 32 M133 32 C131.29 206.61, 131.66 379.71, 133 468 M133 32 C134.12 203.69, 133.94 374.76, 133 468 M133 468 C134.11 490.32, 123.5 499, 101 500 M133 468 C135.3 489.15, 120.06 501.6, 101 500 M101 500 C80.59 498.63, 61.41 498.19, 32 500 M101 500 C84.91 499.8, 69.75 498.8, 32 500 M32 500 C11.34 501.76, 1.21 488.88, 0 468 M32 500 C10.17 498.67, -0.4 488.11, 0 468 M0 468 C-1.22 376.31, -2.49 284.44, 0 32 M0 468 C1.48 362.68, 1.05 258.67, 0 32 M0 32 C-1.87 12.34, 12.13 0.71, 32 0 M0 32 C-0.28 11.6, 10.59 -2.14, 32 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(26.5 30.5) rotate(0 50 16)"> + <path + d="M8 0 C27.04 -0.45, 48.47 1.69, 92 0 M8 0 C25.72 0.47, 43.94 -0.23, 92 0 M92 0 C96.09 -0.71, 100.81 3.85, 100 8 M92 0 C95.95 -1.2, 100.33 3.8, 100 8 M100 8 C98.41 11.61, 101.01 19.37, 100 24 M100 8 C99.64 14.41, 100.01 19.21, 100 24 M100 24 C99.53 29.08, 99.31 31.78, 92 32 M100 24 C99.29 31.18, 99.45 30.83, 92 32 M92 32 C62.02 33.32, 28.23 33.18, 8 32 M92 32 C59.97 31.84, 28.77 32.13, 8 32 M8 32 C3.46 33.81, 0.03 29.1, 0 24 M8 32 C1.52 31.61, 2.2 27.06, 0 24 M0 24 C0.26 19.4, 1.46 15.33, 0 8 M0 24 C0.06 18.27, -0.33 12.26, 0 8 M0 8 C-0.3 4.35, 4.12 -1.31, 8 0 M0 8 C-1.52 4.7, 1.8 1.95, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(27 67) rotate(0 50 16)"> + <path + d="M8 0 C35.73 1.98, 61.03 -0.04, 92 0 M8 0 C26.8 0.6, 44.05 0.94, 92 0 M92 0 C97.1 0.57, 101.67 3.73, 100 8 M92 0 C95.92 -0.54, 102 3.92, 100 8 M100 8 C99.53 12.83, 101.55 17.32, 100 24 M100 8 C100.4 14.35, 99.38 19.96, 100 24 M100 24 C98.98 30.22, 97.85 33.85, 92 32 M100 24 C99.26 27.41, 99.31 33.68, 92 32 M92 32 C71.97 30.61, 50.69 31.86, 8 32 M92 32 C63.65 30.8, 36.99 31.29, 8 32 M8 32 C1.87 30.4, 0.49 29.73, 0 24 M8 32 C4.32 31.67, -0.84 30.59, 0 24 M0 24 C-0.39 19.34, -1.28 14.21, 0 8 M0 24 C0.21 18.17, 0.67 12.97, 0 8 M0 8 C-0.49 4.33, 1.31 -1.9, 8 0 M0 8 C-0.13 1.64, 3.71 0.68, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(27 105) rotate(0 50 16)"> + <path + d="M8 0 C27.98 -1.48, 47.35 1.59, 92 0 M8 0 C34.52 0.62, 61.84 -0.5, 92 0 M92 0 C98.99 -1.36, 98.1 2.56, 100 8 M92 0 C96.31 1.04, 100.68 1.72, 100 8 M100 8 C100.35 11.95, 99.99 15.67, 100 24 M100 8 C99.49 14.23, 99.91 20.89, 100 24 M100 24 C99.73 31.07, 97.25 33.23, 92 32 M100 24 C100.64 30.14, 97.67 34.1, 92 32 M92 32 C73.67 31.77, 56.96 31.77, 8 32 M92 32 C73.28 32.44, 55.24 31.27, 8 32 M8 32 C4.57 33.52, 0.1 30.24, 0 24 M8 32 C3.21 31.56, 2.22 28.12, 0 24 M0 24 C0.49 18.89, 0.23 15.42, 0 8 M0 24 C-0.21 19.69, 0.36 15.63, 0 8 M0 8 C-0.64 2.74, 4.54 -1.38, 8 0 M0 8 C1.46 1.29, 3.07 -1.2, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(26 143) rotate(0 50 16)"> + <path + d="M8 0 C39.67 -0.46, 73.99 1.28, 92 0 M8 0 C34.27 -1.31, 61.16 -1.42, 92 0 M92 0 C95.98 1.9, 101.52 2.77, 100 8 M92 0 C98.38 0.54, 99.56 4.89, 100 8 M100 8 C98.73 12.42, 98.59 16.11, 100 24 M100 8 C100.31 11.59, 99.73 15.98, 100 24 M100 24 C99.61 28.69, 97.41 33.87, 92 32 M100 24 C98.41 30.79, 95.95 32.4, 92 32 M92 32 C71.97 29.73, 52.34 31.74, 8 32 M92 32 C63.47 32.11, 37.4 31.49, 8 32 M8 32 C4.19 32.89, 1.09 28.42, 0 24 M8 32 C2.25 30.97, -1.28 30.64, 0 24 M0 24 C-0.31 16.5, 0.12 13.09, 0 8 M0 24 C-0.53 19.12, 0.66 13.3, 0 8 M0 8 C1.33 1.22, 1.87 -0.03, 8 0 M0 8 C-2.19 4.41, 4.21 0.45, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(242 75) rotate(0 50 16)"> + <path + d="M8 0 C30.81 -0.48, 49.18 0.41, 92 0 M8 0 C26.38 0.45, 45.7 0.22, 92 0 M92 0 C98.4 0.16, 101.59 0.83, 100 8 M92 0 C96.51 -1.98, 98.01 4.18, 100 8 M100 8 C100 12.2, 99.13 18.48, 100 24 M100 8 C99.72 12.35, 100.82 15.46, 100 24 M100 24 C101.64 30.3, 98.39 31.77, 92 32 M100 24 C100.97 30.96, 99.26 29.8, 92 32 M92 32 C67.2 32.1, 39.05 31.89, 8 32 M92 32 C69.24 32.68, 45.72 32.94, 8 32 M8 32 C1.12 33.35, 1.22 31.01, 0 24 M8 32 C1.88 34.06, 1.76 27.82, 0 24 M0 24 C0.56 16.61, -1.4 12.51, 0 8 M0 24 C-0.73 18.1, 0.57 12.82, 0 8 M0 8 C-0.66 4.5, 3.91 -0.26, 8 0 M0 8 C-1.83 3.12, 4.12 1.17, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(243 113) rotate(0 50 16)"> + <path + d="M8 0 C42.12 -1.14, 74.66 1.09, 92 0 M8 0 C26.09 0.37, 43.65 -0.97, 92 0 M92 0 C97.44 1.64, 101.78 2.01, 100 8 M92 0 C99.44 1.43, 99.7 0.83, 100 8 M100 8 C99.86 13.22, 100.96 18.59, 100 24 M100 8 C100.32 10.76, 100.58 14.59, 100 24 M100 24 C100.83 27.98, 98.93 32.17, 92 32 M100 24 C101.28 28.65, 99.53 34.26, 92 32 M92 32 C74.03 33.13, 55.29 32.81, 8 32 M92 32 C70.41 32.37, 51.38 32.2, 8 32 M8 32 C1.41 31.29, 0.13 29.85, 0 24 M8 32 C1.98 30.56, 1.83 31.27, 0 24 M0 24 C-1.34 19.33, -0.46 15.33, 0 8 M0 24 C-0.25 20.64, -0.26 16.69, 0 8 M0 8 C-1.95 1.88, 1.76 1.38, 8 0 M0 8 C-0.3 1.27, 3.75 -1.38, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(243 150) rotate(0 50 16)"> + <path + d="M8 0 C28.64 -0.67, 48.97 1.89, 92 0 M8 0 C25.71 -0.07, 43.04 -0.23, 92 0 M92 0 C96.25 -1.45, 100.44 0.77, 100 8 M92 0 C97.76 1.52, 100.05 1.22, 100 8 M100 8 C99.54 11.23, 101.28 17.81, 100 24 M100 8 C99.31 12.55, 99.74 17.43, 100 24 M100 24 C98.14 27.93, 97.92 31.11, 92 32 M100 24 C99.86 28.27, 95.35 29.76, 92 32 M92 32 C69.85 31.37, 49.17 31.38, 8 32 M92 32 C59.16 32.67, 25 33.6, 8 32 M8 32 C2.59 33.05, -0.01 27.75, 0 24 M8 32 C1.8 33.32, 0.47 28.41, 0 24 M0 24 C-0.63 20.08, 0.11 14.05, 0 8 M0 24 C0.13 21.41, 0.26 17.09, 0 8 M0 8 C1.7 3.3, 3.47 -1.26, 8 0 M0 8 C-1.72 2.65, 2.16 0.23, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(453 202) rotate(0 50 16)"> + <path + d="M8 0 C35.92 0.48, 61.22 -1.6, 92 0 M8 0 C39.24 0.21, 68.31 0.61, 92 0 M92 0 C97.97 0.81, 98.74 1.17, 100 8 M92 0 C97.32 -0.5, 100.23 4.19, 100 8 M100 8 C101.15 14.59, 101.48 18.52, 100 24 M100 8 C99.97 13.65, 99.79 19.51, 100 24 M100 24 C101.18 28.7, 99.1 32.96, 92 32 M100 24 C98.83 28.42, 97.27 33.96, 92 32 M92 32 C64.31 31.76, 40.47 30.51, 8 32 M92 32 C75.37 31.39, 58.38 31.34, 8 32 M8 32 C1.53 31.93, 1.5 30.24, 0 24 M8 32 C2.4 30.64, -0.54 28.35, 0 24 M0 24 C-0.92 21.15, 1.26 13.75, 0 8 M0 24 C-0.48 18.98, 0.53 15.63, 0 8 M0 8 C-0.43 1, 2.24 1.27, 8 0 M0 8 C-0.52 4.53, 4.42 0.33, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round"> + <g transform="translate(126 41) rotate(0 59.5 27.5)"> + <path d="M1.1 -1 C20.69 8.31, 98.52 45.53, 118.32 54.96 M0.22 1.09 C20.13 10.68, 100.77 47.74, 120.67 56.47" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g transform="translate(126 41) rotate(0 59.5 27.5)"> + <path + d="M95.74 54.6 C103.14 53.92, 113.82 57.24, 120.67 56.47 M95.74 54.6 C104.12 54.97, 112.69 56.72, 120.67 56.47" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g transform="translate(126 41) rotate(0 59.5 27.5)"> + <path + d="M102.77 39.02 C107.49 44.07, 115.61 53.07, 120.67 56.47 M102.77 39.02 C108.7 44.72, 114.84 51.86, 120.67 56.47" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + </g> + <mask></mask> + <g stroke-linecap="round"> + <g transform="translate(343 81.90413927031761) rotate(0 54.5 67.88052628506725)"> + <path + d="M-0.98 0.36 C17.4 22.9, 90.82 113.34, 109.19 136.05 M0.7 -0.5 C19.04 21.6, 90.35 111.55, 108.34 134.08" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g transform="translate(343 81.90413927031761) rotate(0 54.5 67.88052628506725)"> + <path + d="M87.02 121.02 C92.14 124.23, 96.46 127.07, 108.34 134.08 M87.02 121.02 C94.46 126.13, 103.36 129.88, 108.34 134.08" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g transform="translate(343 81.90413927031761) rotate(0 54.5 67.88052628506725)"> + <path + d="M100.4 110.37 C102.81 115.69, 104.34 120.75, 108.34 134.08 M100.4 110.37 C102.86 119.3, 106.82 126.98, 108.34 134.08" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + </g> + <mask></mask> + <g stroke-linecap="round" transform="translate(456 240.5) rotate(0 50 16)"> + <path + d="M8 0 C39.09 0.1, 73.54 -0.62, 92 0 M8 0 C39.94 -0.45, 69.69 -0.36, 92 0 M92 0 C98.92 1.43, 99.52 3.22, 100 8 M92 0 C97.45 -2.09, 98.12 4.58, 100 8 M100 8 C98.76 14.58, 101.13 18.19, 100 24 M100 8 C100.66 12.05, 100.64 16.95, 100 24 M100 24 C98.41 27.66, 98.95 31.73, 92 32 M100 24 C100.9 31.07, 97.25 30.39, 92 32 M92 32 C71.36 29.78, 51.4 31.93, 8 32 M92 32 C67.24 32.01, 42.08 31.68, 8 32 M8 32 C2.41 32.13, 0.64 29.25, 0 24 M8 32 C3.69 33.59, -1.23 30.06, 0 24 M0 24 C0.56 19.78, 1.3 16.39, 0 8 M0 24 C0.64 20, -0.66 16.72, 0 8 M0 8 C1.82 2.14, 3.45 -0.37, 8 0 M0 8 C-1.87 4.3, 1.41 1.92, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round" transform="translate(456 277.5) rotate(0 50 16)"> + <path + d="M8 0 C37.56 -0.52, 64.57 1.68, 92 0 M8 0 C36.42 0.08, 66.09 0.81, 92 0 M92 0 C96.86 0.55, 100.1 0.85, 100 8 M92 0 C95.45 1.91, 100.67 3.68, 100 8 M100 8 C100.93 13.39, 99.64 19.04, 100 24 M100 8 C100.83 11.25, 99.51 14.2, 100 24 M100 24 C101.62 29.07, 98.11 33.51, 92 32 M100 24 C99.91 27.72, 95.75 33.36, 92 32 M92 32 C69.6 31.65, 50.61 31.71, 8 32 M92 32 C68.28 32.09, 45.8 32.26, 8 32 M8 32 C3.31 31.92, 0.89 30.72, 0 24 M8 32 C1.44 32.73, -1.05 29.01, 0 24 M0 24 C1.22 19.38, -1.08 13.74, 0 8 M0 24 C-0.78 20.71, 0.6 16.67, 0 8 M0 8 C0.78 2.3, 1.04 1.42, 8 0 M0 8 C-1.25 4.58, 3.68 -0.18, 8 0" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g stroke-linecap="round"> + <g transform="translate(450 289) rotate(0 -163.5 -59.5)"> + <path + d="M-0.44 -0.49 C-54.84 -20.55, -272.59 -100.28, -326.95 -120.2 M1.53 -1.79 C-52.97 -21.76, -273.1 -99.73, -327.88 -119.29" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g transform="translate(450 289) rotate(0 -163.5 -59.5)"> + <path + d="M-302.88 -119.48 C-309.99 -119.45, -317.47 -118.82, -327.88 -119.29 M-302.88 -119.48 C-307.35 -120.07, -312.8 -118.51, -327.88 -119.29" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + <g transform="translate(450 289) rotate(0 -163.5 -59.5)"> + <path + d="M-308.61 -103.36 C-314.29 -107.37, -320.33 -110.8, -327.88 -119.29 M-308.61 -103.36 C-311.7 -107.52, -315.91 -109.48, -327.88 -119.29" + stroke="#1e1e1e" stroke-width="2" fill="none"></path> + </g> + </g> + <mask></mask> + <g transform="translate(42 35) rotate(0 14.289999961853027 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Dir</text></g> + <g transform="translate(41.96999740600586 68.5) rotate(0 16.029998779296875 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">File</text></g> + <g transform="translate(484.9700012207031 282.5) rotate(0 17.720001220703125 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Link</text></g> + <g transform="translate(45.970001220703125 144.5) rotate(0 16.029998779296875 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">File</text></g> + <g transform="translate(256.710000038147 77.5) rotate(0 14.289999961853027 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Dir</text></g> + <g transform="translate(469.710000038147 207.5) rotate(0 14.289999961853027 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Dir</text></g> + <g transform="translate(475.9700012207031 244.5) rotate(0 16.029998779296875 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">File</text></g> + <g transform="translate(251.97000122070312 117.5) rotate(0 16.029998779296875 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">File</text></g> + <g transform="translate(252.97000122070312 152.5) rotate(0 16.029998779296875 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">File</text></g> + <g transform="translate(43.970001220703125 114.5) rotate(0 16.029998779296875 12.5)"><text x="0" y="17.52" + font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" + style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">File</text></g> +</svg>
\ No newline at end of file diff --git a/Meta/NewOS.svg b/Meta/NewOS.svg new file mode 100644 index 00000000..630c10ee --- /dev/null +++ b/Meta/NewOS.svg @@ -0,0 +1,983 @@ +<svg width="96" height="93" viewBox="0 0 96 93" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g filter="url(#filter0_bd_0_1)"> +<path d="M4 5C4 2.23858 6.23858 0 9 0H87C89.7614 0 92 2.23858 92 5V80C92 82.7614 89.7614 85 87 85H9C6.23858 85 4 82.7614 4 80V5Z" fill="url(#paint0_linear_0_1)" fill-opacity="0.2" shape-rendering="crispEdges"/> +</g> +<g filter="url(#filter1_ii_0_1)"> +<path d="M27.0176 19.4145C27.0176 18.9504 27.202 18.5052 27.5301 18.1771C27.8583 17.8489 28.3034 17.6645 28.7676 17.6645H67.1976C67.6617 17.6645 68.1068 17.8489 68.435 18.1771C68.7632 18.5052 68.9476 18.9504 68.9476 19.4145V48.8355H27.0176V19.4145Z" fill="url(#paint1_linear_0_1)"/> +</g> +<path d="M27.0176 19.4145C27.0176 18.9504 27.202 18.5052 27.5301 18.1771C27.8583 17.8489 28.3034 17.6645 28.7676 17.6645H67.1976C67.6617 17.6645 68.1068 17.8489 68.435 18.1771C68.7632 18.5052 68.9476 18.9504 68.9476 19.4145V48.8355H27.0176V19.4145Z" fill="url(#paint2_linear_0_1)"/> +<g filter="url(#filter2_d_0_1)"> +<path d="M28.7412 19.7697C28.7412 19.6537 28.7873 19.5424 28.8694 19.4604C28.9514 19.3783 29.0627 19.3322 29.1787 19.3322H66.788C66.904 19.3322 67.0153 19.3783 67.0973 19.4604C67.1794 19.5424 67.2255 19.6537 67.2255 19.7697V46.7302C67.2255 46.8462 67.1794 46.9575 67.0973 47.0396C67.0153 47.1216 66.904 47.1677 66.788 47.1677H29.1805C29.0644 47.1677 28.9531 47.1216 28.8711 47.0396C28.7891 46.9575 28.743 46.8462 28.743 46.7302L28.7412 19.7697Z" fill="url(#paint3_linear_0_1)"/> +</g> +<g filter="url(#filter3_i_0_1)"> +<path d="M27.0176 48.8355H68.9476L72.2201 63.343C72.5106 64.3125 71.5726 64.8393 70.6241 64.8393H25.5546C24.0426 64.8393 23.6121 64.113 23.7818 63.3465L27.0176 48.8355Z" fill="url(#paint4_linear_0_1)"/> +</g> +<g filter="url(#filter4_i_0_1)"> +<path d="M23.7486 63.7105L23.7468 65.2085C23.7731 65.828 24.2823 66.3425 25.5546 66.3425H70.6241C71.4483 66.3425 72.2621 65.9453 72.2743 65.2085V63.7105C72.2568 64.4455 71.4466 64.8393 70.6241 64.8393H25.5546C24.2858 64.8393 23.7783 64.3283 23.7486 63.7105Z" fill="url(#paint5_linear_0_1)"/> +<path d="M23.7486 63.7105L23.7468 65.2085C23.7731 65.828 24.2823 66.3425 25.5546 66.3425H70.6241C71.4483 66.3425 72.2621 65.9453 72.2743 65.2085V63.7105C72.2568 64.4455 71.4466 64.8393 70.6241 64.8393H25.5546C24.2858 64.8393 23.7783 64.3283 23.7486 63.7105Z" fill="url(#paint6_linear_0_1)"/> +<path d="M23.7486 63.7105L23.7468 65.2085C23.7731 65.828 24.2823 66.3425 25.5546 66.3425H70.6241C71.4483 66.3425 72.2621 65.9453 72.2743 65.2085V63.7105C72.2568 64.4455 71.4466 64.8393 70.6241 64.8393H25.5546C24.2858 64.8393 23.7783 64.3283 23.7486 63.7105Z" fill="url(#paint7_linear_0_1)"/> +</g> +<g filter="url(#filter5_f_0_1)"> +<path d="M39.166 60.0145C39.1862 59.9157 39.2399 59.8269 39.318 59.7631C39.3961 59.6993 39.4939 59.6645 39.5948 59.6645H56.3948C56.4956 59.6645 56.5934 59.6993 56.6715 59.7631C56.7497 59.8269 56.8033 59.9157 56.8235 60.0145L57.3678 62.6657C57.3807 62.7293 57.3794 62.795 57.3639 62.858C57.3484 62.921 57.319 62.9797 57.278 63.03C57.2369 63.0802 57.1852 63.1207 57.1266 63.1485C57.068 63.1763 57.0039 63.1908 56.939 63.1907H39.061C38.9963 63.1907 38.9324 63.1763 38.874 63.1486C38.8155 63.1209 38.7639 63.0806 38.7229 63.0305C38.6819 62.9805 38.6525 62.922 38.6368 62.8592C38.6211 62.7964 38.6196 62.7309 38.6323 62.6675L39.166 60.0145Z" stroke="url(#paint8_linear_0_1)" stroke-width="0.15"/> +</g> +<path d="M39.166 60.0145C39.1862 59.9157 39.2399 59.8269 39.318 59.7631C39.3961 59.6993 39.4939 59.6645 39.5948 59.6645H56.3948C56.4956 59.6645 56.5934 59.6993 56.6715 59.7631C56.7497 59.8269 56.8033 59.9157 56.8235 60.0145L57.3678 62.6657C57.3807 62.7293 57.3794 62.795 57.3639 62.858C57.3484 62.921 57.319 62.9797 57.278 63.03C57.2369 63.0802 57.1852 63.1207 57.1266 63.1485C57.068 63.1763 57.0039 63.1908 56.939 63.1907H39.061C38.9963 63.1907 38.9324 63.1763 38.874 63.1486C38.8155 63.1209 38.7639 63.0806 38.7229 63.0305C38.6819 62.9805 38.6525 62.922 38.6368 62.8592C38.6211 62.7964 38.6196 62.7309 38.6323 62.6675L39.166 60.0145Z" fill="url(#paint9_linear_0_1)"/> +<g filter="url(#filter6_f_0_1)"> +<path d="M28.5435 51.1823C28.5791 51.028 28.666 50.8903 28.79 50.7918C28.9139 50.6933 29.0676 50.6397 29.226 50.6398H66.8405C66.9996 50.6399 67.1538 50.6943 67.2779 50.7938C67.4019 50.8934 67.4884 51.0323 67.523 51.1875L68.881 57.26C68.9422 57.5348 68.6535 57.7938 68.1057 57.7938H27.938C27.2205 57.7938 27.0805 57.505 27.1452 57.2303L28.5435 51.1823Z" stroke="url(#paint10_linear_0_1)" stroke-width="0.15"/> +</g> +<g filter="url(#filter7_i_0_1)"> +<path d="M28.5435 51.1823C28.5791 51.028 28.666 50.8903 28.79 50.7918C28.9139 50.6933 29.0676 50.6397 29.226 50.6398H66.8405C66.9996 50.6399 67.1538 50.6943 67.2779 50.7938C67.4019 50.8934 67.4884 51.0323 67.523 51.1875L68.881 57.26C68.9422 57.5348 68.6535 57.7938 68.1057 57.7938H27.938C27.2205 57.7938 27.0805 57.505 27.1452 57.2303L28.5435 51.1823Z" fill="url(#paint11_linear_0_1)"/> +</g> +<g filter="url(#filter8_dii_0_1)"> +<path d="M30.0643 51.4605C30.0687 51.441 30.0796 51.4237 30.0951 51.4113C30.1107 51.3988 30.1301 51.3921 30.15 51.3922H31.8895C31.9025 51.392 31.9153 51.3947 31.9271 51.4C31.9389 51.4054 31.9493 51.4133 31.9577 51.4231C31.9661 51.433 31.9722 51.4446 31.9755 51.4571C31.9788 51.4696 31.9794 51.4827 31.977 51.4955L31.781 52.5927C31.777 52.6125 31.7663 52.6303 31.7506 52.643C31.735 52.6558 31.7155 52.6627 31.6953 52.6627H29.891C29.8779 52.663 29.8649 52.6603 29.8529 52.6549C29.841 52.6494 29.8304 52.6413 29.822 52.6313C29.8136 52.6212 29.8076 52.6093 29.8044 52.5966C29.8012 52.5839 29.8009 52.5706 29.8035 52.5577L30.0643 51.4605Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter9_dii_0_1)"> +<path d="M65.9025 51.4605C65.8981 51.4413 65.8875 51.4242 65.8723 51.4118C65.857 51.3994 65.8381 51.3925 65.8185 51.3922H64.0772C64.0643 51.392 64.0514 51.3947 64.0396 51.4C64.0279 51.4054 64.0174 51.4133 64.009 51.4231C64.0007 51.433 63.9946 51.4446 63.9912 51.4571C63.9879 51.4696 63.9874 51.4827 63.9897 51.4955L64.1857 52.5927C64.1898 52.6128 64.2008 52.6308 64.2168 52.6436C64.2328 52.6564 64.2527 52.6631 64.2732 52.6627H66.0757C66.0888 52.663 66.1019 52.6603 66.1138 52.6549C66.1257 52.6494 66.1363 52.6413 66.1447 52.6313C66.1531 52.6212 66.1591 52.6093 66.1623 52.5966C66.1655 52.5839 66.1658 52.5706 66.1632 52.5577L65.9025 51.4605Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter10_dii_0_1)"> +<path d="M29.6689 53.4503C29.673 53.4305 29.6837 53.4127 29.6993 53.4C29.715 53.3872 29.7345 53.3803 29.7547 53.3803H31.4959C31.5089 53.38 31.5217 53.3827 31.5335 53.3881C31.5453 53.3934 31.5558 53.4013 31.5641 53.4112C31.5725 53.4211 31.5786 53.4327 31.5819 53.4452C31.5853 53.4577 31.5858 53.4708 31.5834 53.4835L31.4049 54.579C31.402 54.6 31.3915 54.6193 31.3754 54.6331C31.3593 54.647 31.3387 54.6545 31.3174 54.6543H29.5149C29.5016 54.6546 29.4884 54.6519 29.4763 54.6463C29.4642 54.6408 29.4536 54.6325 29.4451 54.6223C29.4367 54.612 29.4307 54.5999 29.4276 54.5869C29.4246 54.574 29.4245 54.5605 29.4274 54.5475L29.6689 53.4503Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter11_dii_0_1)"> +<path d="M66.298 53.4503C66.2939 53.4305 66.2832 53.4127 66.2676 53.4C66.2519 53.3872 66.2324 53.3803 66.2122 53.3803H64.4727C64.4598 53.38 64.4469 53.3827 64.4352 53.3881C64.4234 53.3934 64.4129 53.4013 64.4045 53.4112C64.3962 53.4211 64.3901 53.4327 64.3867 53.4452C64.3834 53.4577 64.3829 53.4708 64.3852 53.4835L64.562 54.579C64.5649 54.6 64.5755 54.6193 64.5916 54.6331C64.6077 54.647 64.6282 54.6545 64.6495 54.6543H66.4555C66.4686 54.6543 66.4816 54.6514 66.4935 54.6457C66.5054 54.6401 66.5158 54.6318 66.5241 54.6216C66.5323 54.6113 66.5381 54.5993 66.5411 54.5865C66.5441 54.5737 66.5441 54.5603 66.5412 54.5475L66.298 53.4503Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter12_dii_0_1)"> +<path d="M29.2313 55.475C29.2354 55.4549 29.2464 55.4369 29.2624 55.4241C29.2784 55.4114 29.2983 55.4046 29.3188 55.405H31.1213C31.1339 55.4051 31.1464 55.4079 31.1578 55.4133C31.1692 55.4186 31.1794 55.4264 31.1875 55.436C31.1957 55.4457 31.2016 55.4569 31.205 55.4691C31.2084 55.4813 31.2091 55.494 31.2071 55.5065L31.0286 56.651C31.0252 56.6717 31.0145 56.6905 30.9985 56.704C30.9824 56.7175 30.962 56.7248 30.9411 56.7245H29.0756C29.0626 56.7245 29.0498 56.7216 29.038 56.716C29.0263 56.7105 29.016 56.7024 29.0078 56.6923C28.9996 56.6823 28.9937 56.6705 28.9906 56.6579C28.9875 56.6453 28.9872 56.6322 28.9898 56.6195L29.2313 55.475Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter13_dii_0_1)"> +<path d="M66.7357 55.475C66.7316 55.4552 66.7209 55.4374 66.7053 55.4247C66.6896 55.4119 66.6701 55.405 66.6499 55.405H64.8474C64.8346 55.4048 64.822 55.4074 64.8104 55.4127C64.7987 55.4179 64.7884 55.4257 64.78 55.4353C64.7717 55.445 64.7656 55.4564 64.7621 55.4687C64.7586 55.481 64.7579 55.4939 64.7599 55.5065L64.9384 56.651C64.9418 56.6717 64.9525 56.6905 64.9685 56.704C64.9846 56.7175 65.0049 56.7247 65.0259 56.7245H66.8932C66.9061 56.7245 66.919 56.7216 66.9307 56.716C66.9424 56.7105 66.9527 56.7024 66.961 56.6923C66.9692 56.6823 66.975 56.6705 66.9781 56.6579C66.9812 56.6453 66.9815 56.6322 66.9789 56.6195L66.7357 55.475Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter14_dii_0_1)"> +<path d="M33.1549 51.4622C33.159 51.4422 33.17 51.4242 33.186 51.4114C33.202 51.3986 33.222 51.3918 33.2424 51.3922H34.9819C34.9947 51.3921 35.0074 51.3947 35.019 51.3999C35.0306 51.4052 35.041 51.4129 35.0493 51.4226C35.0577 51.4323 35.0638 51.4436 35.0673 51.4559C35.0707 51.4682 35.0715 51.4811 35.0694 51.4937L34.8979 52.591C34.8946 52.6117 34.8839 52.6305 34.8678 52.644C34.8518 52.6575 34.8314 52.6647 34.8104 52.6645H33.0062C32.9934 52.6642 32.9807 52.6612 32.9692 52.6555C32.9577 52.6498 32.9476 52.6417 32.9396 52.6317C32.9316 52.6216 32.9259 52.61 32.9228 52.5975C32.9198 52.585 32.9196 52.5721 32.9222 52.5595L33.1549 51.4622Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter15_dii_0_1)"> +<path d="M62.8121 51.4622C62.8081 51.4425 62.7973 51.4247 62.7817 51.4119C62.7661 51.3992 62.7465 51.3922 62.7264 51.3922H60.9851C60.9723 51.3921 60.9597 51.3947 60.948 51.3999C60.9364 51.4052 60.926 51.4129 60.9177 51.4226C60.9094 51.4322 60.9033 51.4436 60.8998 51.4559C60.8963 51.4682 60.8956 51.4811 60.8976 51.4937L61.0691 52.591C61.0725 52.6117 61.0831 52.6305 61.0992 52.644C61.1153 52.6575 61.1356 52.6647 61.1566 52.6645H62.9626C62.9756 52.6645 62.9884 52.6616 63.0001 52.656C63.0119 52.6505 63.0222 52.6424 63.0304 52.6323C63.0386 52.6223 63.0445 52.6105 63.0476 52.5979C63.0507 52.5853 63.051 52.5722 63.0484 52.5595L62.8121 51.4622Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter16_dii_0_1)"> +<path d="M32.8205 53.452C32.8246 53.4319 32.8356 53.4139 32.8516 53.4011C32.8676 53.3883 32.8876 53.3816 32.908 53.382H34.6493C34.6619 53.3819 34.6744 53.3845 34.6859 53.3896C34.6974 53.3947 34.7076 53.4023 34.7159 53.4118C34.7242 53.4212 34.7304 53.4324 34.734 53.4445C34.7376 53.4565 34.7386 53.4693 34.7368 53.4817L34.5863 54.5475C34.5833 54.5685 34.5728 54.5877 34.5567 54.6016C34.5406 54.6154 34.52 54.6229 34.4988 54.6227H32.6928C32.6797 54.623 32.6666 54.6203 32.6547 54.6149C32.6428 54.6094 32.6322 54.6013 32.6238 54.5913C32.6154 54.5812 32.6094 54.5693 32.6062 54.5566C32.603 54.5439 32.6027 54.5306 32.6053 54.5177L32.8205 53.452Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter17_dii_0_1)"> +<path d="M63.1463 53.452C63.1423 53.4322 63.1315 53.4144 63.1159 53.4017C63.1003 53.3889 63.0807 53.382 63.0606 53.382H61.3193C61.3067 53.3818 61.2942 53.3844 61.2827 53.3896C61.2712 53.3947 61.261 53.4023 61.2527 53.4118C61.2444 53.4212 61.2382 53.4324 61.2346 53.4445C61.231 53.4565 61.2301 53.4692 61.2318 53.4817L61.3823 54.5475C61.3853 54.5685 61.3958 54.5877 61.4119 54.6016C61.428 54.6154 61.4486 54.6229 61.4698 54.6227H63.2741C63.2872 54.623 63.3002 54.6203 63.3121 54.6148C63.3241 54.6094 63.3347 54.6013 63.3431 54.5912C63.3515 54.5812 63.3575 54.5693 63.3607 54.5566C63.3639 54.5439 63.3642 54.5306 63.3616 54.5177L63.1463 53.452Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter18_dii_0_1)"> +<path d="M32.4479 55.4785C32.4512 55.4578 32.4619 55.439 32.478 55.4255C32.494 55.412 32.5144 55.4047 32.5354 55.405H34.3379C34.3501 55.4049 34.3623 55.4074 34.3735 55.4124C34.3847 55.4173 34.3948 55.4245 34.403 55.4336C34.4113 55.4427 34.4175 55.4534 34.4214 55.465C34.4252 55.4767 34.4266 55.489 34.4254 55.5012L34.3064 56.6317C34.3042 56.6534 34.294 56.6735 34.2778 56.688C34.2617 56.7026 34.2406 56.7106 34.2189 56.7105H32.3499C32.3371 56.7106 32.3244 56.708 32.3128 56.7028C32.3011 56.6975 32.2908 56.6898 32.2825 56.6801C32.2741 56.6704 32.268 56.6591 32.2645 56.6468C32.2611 56.6345 32.2603 56.6216 32.2624 56.609L32.4479 55.4785Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter19_dii_0_1)"> +<path d="M63.5209 55.4785C63.5176 55.4578 63.5069 55.439 63.4908 55.4255C63.4748 55.412 63.4544 55.4047 63.4334 55.405H61.6309C61.6186 55.4049 61.6065 55.4074 61.5953 55.4124C61.584 55.4173 61.574 55.4245 61.5657 55.4336C61.5575 55.4427 61.5512 55.4534 61.5474 55.465C61.5435 55.4767 61.5422 55.489 61.5434 55.5012L61.6607 56.6317C61.6628 56.6534 61.673 56.6735 61.6892 56.688C61.7054 56.7026 61.7264 56.7106 61.7482 56.7105H63.6172C63.6299 56.7106 63.6426 56.708 63.6542 56.7028C63.6659 56.6975 63.6762 56.6898 63.6846 56.6801C63.6929 56.6704 63.699 56.6591 63.7025 56.6468C63.706 56.6345 63.7067 56.6216 63.7047 56.609L63.5209 55.4785Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter20_dii_0_1)"> +<path d="M36.2157 51.4675C36.2186 51.4464 36.2292 51.4272 36.2453 51.4134C36.2614 51.3995 36.2819 51.392 36.3032 51.3922H38.0444C38.0567 51.3922 38.0688 51.3947 38.0801 51.3996C38.0913 51.4045 38.1014 51.4118 38.1096 51.4209C38.1179 51.4299 38.1241 51.4406 38.128 51.4523C38.1318 51.4639 38.1332 51.4763 38.1319 51.4885L38.0304 52.584C38.0287 52.6059 38.0187 52.6264 38.0025 52.6414C37.9862 52.6563 37.965 52.6645 37.9429 52.6645H36.1387C36.1259 52.6646 36.1133 52.662 36.1016 52.6568C36.09 52.6515 36.0796 52.6438 36.0713 52.6341C36.0629 52.6244 36.0568 52.6131 36.0533 52.6008C36.0499 52.5885 36.0491 52.5756 36.0512 52.563L36.2157 51.4675Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter21_dii_0_1)"> +<path d="M59.7514 51.4675C59.7484 51.4464 59.7379 51.4272 59.7218 51.4134C59.7057 51.3995 59.6851 51.392 59.6639 51.3922H57.9227C57.9104 51.3922 57.8982 51.3947 57.887 51.3996C57.8758 51.4045 57.8657 51.4118 57.8575 51.4209C57.8492 51.4299 57.843 51.4406 57.8391 51.4523C57.8353 51.4639 57.8339 51.4763 57.8352 51.4885L57.9367 52.584C57.9384 52.6059 57.9484 52.6264 57.9646 52.6414C57.9809 52.6563 58.0021 52.6645 58.0242 52.6645H59.8319C59.8447 52.6646 59.8573 52.662 59.869 52.6568C59.8806 52.6515 59.891 52.6438 59.8993 52.6341C59.9076 52.6244 59.9138 52.6131 59.9172 52.6008C59.9207 52.5885 59.9215 52.5756 59.9194 52.563L59.7514 51.4675Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter22_dii_0_1)"> +<path d="M39.2745 51.471C39.2766 51.4493 39.2868 51.4292 39.303 51.4147C39.3192 51.4001 39.3402 51.3921 39.362 51.3922H41.105C41.1168 51.3922 41.1284 51.3946 41.1393 51.3992C41.1501 51.4038 41.1599 51.4106 41.1681 51.4191C41.1763 51.4276 41.1827 51.4376 41.1868 51.4487C41.191 51.4597 41.1929 51.4714 41.1925 51.4832L41.1505 52.5735C41.1496 52.5961 41.1399 52.6174 41.1236 52.6331C41.1073 52.6487 41.0856 52.6575 41.063 52.6575H39.2535C39.2412 52.6575 39.2291 52.655 39.2178 52.6501C39.2066 52.6451 39.1965 52.6379 39.1883 52.6288C39.18 52.6197 39.1738 52.609 39.1699 52.5974C39.1661 52.5857 39.1647 52.5734 39.166 52.5612L39.2745 51.471Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter23_dii_0_1)"> +<path d="M56.6942 51.471C56.692 51.4493 56.6818 51.4292 56.6657 51.4147C56.6495 51.4001 56.6285 51.3921 56.6067 51.3922H54.8637C54.8519 51.3922 54.8402 51.3946 54.8294 51.3992C54.8185 51.4038 54.8087 51.4106 54.8005 51.4191C54.7924 51.4276 54.786 51.4376 54.7818 51.4487C54.7776 51.4597 54.7757 51.4714 54.7762 51.4832L54.8182 52.5735C54.8191 52.5961 54.8287 52.6174 54.845 52.6331C54.8613 52.6487 54.8831 52.6575 54.9057 52.6575H56.7134C56.7257 52.6575 56.7378 52.655 56.7491 52.6501C56.7603 52.6451 56.7704 52.6379 56.7786 52.6288C56.7869 52.6197 56.7931 52.609 56.797 52.5974C56.8008 52.5857 56.8022 52.5734 56.8009 52.5612L56.6942 51.471Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter24_dii_0_1)"> +<path d="M42.379 51.4745C42.3804 51.4522 42.3902 51.4312 42.4064 51.416C42.4227 51.4007 42.4442 51.3922 42.4665 51.3922H44.2113C44.2345 51.3922 44.2568 51.4014 44.2732 51.4178C44.2896 51.4342 44.2988 51.4565 44.2988 51.4797L44.2865 52.57C44.2865 52.5815 44.2843 52.5928 44.2799 52.6034C44.2755 52.6141 44.269 52.6237 44.2609 52.6318C44.2528 52.64 44.2431 52.6464 44.2325 52.6508C44.2219 52.6552 44.2105 52.6575 44.199 52.6575H42.3895C42.3774 52.6575 42.3655 52.655 42.3544 52.6502C42.3433 52.6454 42.3333 52.6383 42.3251 52.6294C42.3168 52.6205 42.3105 52.61 42.3066 52.5986C42.3026 52.5872 42.3011 52.575 42.302 52.563L42.379 51.4745Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter25_dii_0_1)"> +<path d="M53.5879 51.4745C53.5866 51.4522 53.5768 51.4312 53.5605 51.416C53.5442 51.4007 53.5227 51.3922 53.5004 51.3922H51.7574C51.7342 51.3922 51.712 51.4014 51.6955 51.4178C51.6791 51.4342 51.6699 51.4565 51.6699 51.4797L51.6804 52.57C51.6804 52.619 51.7207 52.6575 51.7679 52.6575H53.5774C53.5895 52.6575 53.6015 52.655 53.6126 52.6502C53.6237 52.6454 53.6337 52.6383 53.6419 52.6294C53.6501 52.6205 53.6564 52.61 53.6604 52.5986C53.6643 52.5872 53.6659 52.575 53.6649 52.563L53.5879 51.4745Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter26_dii_0_1)"> +<path d="M45.4888 51.4797C45.4888 51.4565 45.498 51.4342 45.5144 51.4178C45.5308 51.4014 45.5531 51.3922 45.5763 51.3922H47.3158C47.339 51.3922 47.3612 51.4014 47.3776 51.4178C47.3941 51.4342 47.4033 51.4565 47.4033 51.4797V52.57C47.4033 52.5932 47.3941 52.6154 47.3776 52.6318C47.3612 52.6482 47.339 52.6575 47.3158 52.6575H45.5763C45.5531 52.6575 45.5308 52.6482 45.5144 52.6318C45.498 52.6154 45.4888 52.5932 45.4888 52.57V51.4797Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter27_dii_0_1)"> +<path d="M45.4888 53.459C45.4888 53.4475 45.491 53.4361 45.4954 53.4255C45.4998 53.4149 45.5063 53.4052 45.5144 53.3971C45.5225 53.389 45.5322 53.3825 45.5428 53.3781C45.5534 53.3737 45.5648 53.3715 45.5763 53.3715H47.3158C47.3273 53.3715 47.3386 53.3737 47.3493 53.3781C47.3599 53.3825 47.3695 53.389 47.3776 53.3971C47.3858 53.4052 47.3922 53.4149 47.3966 53.4255C47.401 53.4361 47.4033 53.4475 47.4033 53.459V54.5492C47.4033 54.5724 47.3941 54.5947 47.3776 54.6111C47.3612 54.6275 47.339 54.6367 47.3158 54.6367H45.5763C45.5531 54.6367 45.5308 54.6275 45.5144 54.6111C45.498 54.5947 45.4888 54.5724 45.4888 54.5492V53.459Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter28_dii_0_1)"> +<path d="M48.5776 51.4797C48.5776 51.4565 48.5869 51.4342 48.6033 51.4178C48.6197 51.4014 48.6419 51.3922 48.6651 51.3922H50.4046C50.4161 51.3922 50.4275 51.3945 50.4381 51.3989C50.4487 51.4033 50.4584 51.4097 50.4665 51.4178C50.4746 51.426 50.4811 51.4356 50.4855 51.4462C50.4899 51.4568 50.4921 51.4682 50.4921 51.4797V52.57C50.4921 52.5815 50.4899 52.5928 50.4855 52.6034C50.4811 52.6141 50.4746 52.6237 50.4665 52.6318C50.4584 52.64 50.4487 52.6464 50.4381 52.6508C50.4275 52.6552 50.4161 52.6575 50.4046 52.6575H48.6669C48.6437 52.6575 48.6214 52.6482 48.605 52.6318C48.5886 52.6154 48.5794 52.5932 48.5794 52.57L48.5776 51.4797Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter29_dii_0_1)"> +<path d="M48.5776 53.459C48.5776 53.4475 48.5799 53.4361 48.5843 53.4255C48.5887 53.4149 48.5951 53.4052 48.6033 53.3971C48.6114 53.389 48.621 53.3825 48.6317 53.3781C48.6423 53.3737 48.6536 53.3715 48.6651 53.3715H50.4046C50.4161 53.3715 50.4275 53.3737 50.4381 53.3781C50.4487 53.3825 50.4584 53.389 50.4665 53.3971C50.4746 53.4052 50.4811 53.4149 50.4855 53.4255C50.4899 53.4361 50.4921 53.4475 50.4921 53.459V54.5492C50.4921 54.5607 50.4899 54.5721 50.4855 54.5827C50.4811 54.5933 50.4746 54.603 50.4665 54.6111C50.4584 54.6192 50.4487 54.6257 50.4381 54.6301C50.4275 54.6344 50.4161 54.6367 50.4046 54.6367H48.6669C48.6437 54.6367 48.6214 54.6275 48.605 54.6111C48.5886 54.5947 48.5794 54.5724 48.5794 54.5492L48.5776 53.459Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter30_dii_0_1)"> +<path d="M39.1224 53.4625C39.1242 53.4405 39.1342 53.42 39.1504 53.4051C39.1666 53.3901 39.1879 53.3819 39.2099 53.382H40.9547C40.9663 53.382 40.9778 53.3843 40.9886 53.3888C40.9993 53.3933 41.009 53.3999 41.0172 53.4082C41.0253 53.4165 41.0317 53.4264 41.036 53.4372C41.0403 53.448 41.0424 53.4596 41.0422 53.4712L41.0072 54.5405C41.0067 54.5634 40.9973 54.5852 40.9809 54.6012C40.9646 54.6172 40.9426 54.6262 40.9197 54.6262H39.1102C39.0979 54.6263 39.0857 54.6238 39.0745 54.6188C39.0633 54.6139 39.0532 54.6066 39.045 54.5976C39.0367 54.5885 39.0305 54.5778 39.0266 54.5661C39.0228 54.5545 39.0214 54.5422 39.0227 54.53L39.1224 53.4625Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter31_dii_0_1)"> +<path d="M56.8445 53.4625C56.8428 53.4405 56.8328 53.42 56.8166 53.4051C56.8003 53.3901 56.7791 53.3819 56.757 53.382H55.014C55.0024 53.382 54.9909 53.3843 54.9801 53.3888C54.9694 53.3933 54.9597 53.3999 54.9515 53.4082C54.9434 53.4165 54.937 53.4264 54.9327 53.4372C54.9284 53.448 54.9263 53.4596 54.9265 53.4712L54.9615 54.5405C54.962 54.5634 54.9714 54.5852 54.9878 54.6012C55.0041 54.6172 55.0261 54.6262 55.049 54.6262H56.8568C56.869 54.6263 56.8812 54.6238 56.8924 54.6188C56.9036 54.6139 56.9137 54.6066 56.922 54.5976C56.9302 54.5885 56.9365 54.5778 56.9403 54.5661C56.9442 54.5545 56.9455 54.5422 56.9443 54.53L56.8445 53.4625Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter32_dii_0_1)"> +<path d="M35.9759 53.4572C35.9788 53.4362 35.9893 53.417 36.0054 53.4031C36.0215 53.3893 36.0421 53.3818 36.0634 53.382H37.8064C37.8183 53.3819 37.8301 53.3844 37.8411 53.3891C37.8521 53.3938 37.862 53.4007 37.8702 53.4094C37.8784 53.4181 37.8847 53.4284 37.8888 53.4396C37.8928 53.4508 37.8946 53.4628 37.8939 53.4747L37.8186 54.5422C37.8169 54.5642 37.8069 54.5847 37.7906 54.5996C37.7744 54.6145 37.7532 54.6228 37.7311 54.6227H35.9216C35.909 54.6228 35.8965 54.6202 35.885 54.6151C35.8735 54.61 35.8633 54.6024 35.855 54.5929C35.8467 54.5834 35.8405 54.5723 35.8369 54.5602C35.8333 54.5481 35.8323 54.5354 35.8341 54.523L35.9759 53.4572Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter33_dii_0_1)"> +<path d="M59.9911 53.4572C59.9881 53.4362 59.9776 53.417 59.9615 53.4031C59.9454 53.3893 59.9248 53.3818 59.9036 53.382H58.1624C58.1504 53.3819 58.1386 53.3844 58.1276 53.3891C58.1166 53.3938 58.1068 53.4007 58.0986 53.4094C58.0904 53.4181 58.084 53.4284 58.08 53.4396C58.0759 53.4508 58.0741 53.4628 58.0749 53.4747L58.1501 54.5422C58.1519 54.5642 58.1619 54.5847 58.1781 54.5996C58.1943 54.6145 58.2156 54.6228 58.2376 54.6227H60.0454C60.058 54.6228 60.0704 54.6202 60.0819 54.6151C60.0934 54.61 60.1037 54.6024 60.112 54.5929C60.1203 54.5834 60.1265 54.5723 60.1301 54.5602C60.1337 54.5481 60.1346 54.5354 60.1329 54.523L59.9911 53.4572Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter34_dii_0_1)"> +<path d="M42.2899 53.4625C42.2917 53.4405 42.3017 53.42 42.3179 53.4051C42.3341 53.3901 42.3554 53.3819 42.3774 53.382H44.1222C44.1454 53.382 44.1676 53.3912 44.184 53.4076C44.2004 53.424 44.2097 53.4463 44.2097 53.4695V54.537C44.2097 54.5602 44.2004 54.5824 44.184 54.5988C44.1676 54.6152 44.1454 54.6245 44.1222 54.6245H42.3127C42.3009 54.6245 42.2892 54.6221 42.2784 54.6175C42.2675 54.6129 42.2577 54.6061 42.2495 54.5976C42.2414 54.5891 42.235 54.579 42.2308 54.568C42.2266 54.557 42.2247 54.5452 42.2252 54.5335L42.2899 53.4625Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter35_dii_0_1)"> +<path d="M53.6771 53.4625C53.6753 53.4405 53.6653 53.42 53.6491 53.4051C53.6329 53.3901 53.6116 53.3819 53.5896 53.382H51.8448C51.8333 53.382 51.822 53.3842 51.8113 53.3886C51.8007 53.393 51.7911 53.3995 51.783 53.4076C51.7748 53.4157 51.7684 53.4254 51.764 53.436C51.7596 53.4466 51.7573 53.458 51.7573 53.4695V54.537C51.7573 54.586 51.7976 54.6245 51.8448 54.6245H53.6543C53.6661 54.6245 53.6778 54.6221 53.6886 54.6175C53.6995 54.6129 53.7093 54.6061 53.7175 54.5976C53.7256 54.5891 53.732 54.579 53.7362 54.568C53.7404 54.557 53.7423 54.5452 53.7418 54.5335L53.6771 53.4625Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter36_dii_0_1)"> +<path d="M35.6627 55.482C35.6653 55.4606 35.6756 55.441 35.6917 55.4268C35.7079 55.4126 35.7287 55.4048 35.7502 55.405H37.5527C37.5648 55.4049 37.5768 55.4074 37.5879 55.4122C37.599 55.4171 37.6089 55.4241 37.6172 55.433C37.6254 55.4419 37.6317 55.4524 37.6356 55.4638C37.6396 55.4753 37.6412 55.4874 37.6402 55.4995L37.5649 56.63C37.5632 56.6519 37.5532 56.6724 37.537 56.6874C37.5207 56.7023 37.4995 56.7105 37.4774 56.7105H35.6067C35.5943 56.7106 35.582 56.708 35.5706 56.703C35.5592 56.6979 35.5491 56.6905 35.5408 56.6812C35.5325 56.672 35.5263 56.661 35.5226 56.6492C35.5188 56.6373 35.5177 56.6248 35.5192 56.6125L35.6627 55.482Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter37_dii_0_1)"> +<path d="M60.3044 55.482C60.3019 55.4606 60.2915 55.441 60.2754 55.4268C60.2592 55.4126 60.2384 55.4048 60.2169 55.405H58.4144C58.4023 55.4049 58.3904 55.4074 58.3793 55.4122C58.3682 55.4171 58.3582 55.4241 58.35 55.433C58.3417 55.4419 58.3354 55.4524 58.3315 55.4638C58.3275 55.4753 58.326 55.4874 58.3269 55.4995L58.4039 56.63C58.4057 56.6519 58.4157 56.6724 58.4319 56.6874C58.4481 56.7023 58.4694 56.7105 58.4914 56.7105H60.3604C60.3729 56.7106 60.3852 56.708 60.3965 56.703C60.4079 56.6979 60.4181 56.6905 60.4263 56.6812C60.4346 56.672 60.4408 56.661 60.4446 56.6492C60.4483 56.6373 60.4494 56.6248 60.4479 56.6125L60.3044 55.482Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter38_dii_0_1)"> +<path d="M38.9263 55.4855C38.9281 55.4635 38.9381 55.443 38.9543 55.4281C38.9705 55.4131 38.9918 55.4049 39.0138 55.405H40.8181C40.8299 55.405 40.8415 55.4073 40.8524 55.4119C40.8632 55.4166 40.873 55.4233 40.8812 55.4318C40.8894 55.4403 40.8958 55.4504 40.8999 55.4614C40.9041 55.4724 40.906 55.4842 40.9056 55.496L40.8758 56.6265C40.8749 56.6491 40.8653 56.6704 40.849 56.6861C40.8327 56.7017 40.8109 56.7105 40.7883 56.7105H38.9193C38.9072 56.7105 38.8952 56.708 38.8841 56.7032C38.873 56.6984 38.8631 56.6913 38.8548 56.6824C38.8466 56.6735 38.8403 56.663 38.8364 56.6516C38.8324 56.6402 38.8309 56.628 38.8318 56.616L38.9263 55.4855Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter39_dii_0_1)"> +<path d="M57.0406 55.4855C57.0388 55.4635 57.0288 55.443 57.0126 55.4281C56.9964 55.4131 56.9751 55.4049 56.9531 55.405H55.1488C55.1371 55.405 55.1254 55.4073 55.1145 55.4119C55.1037 55.4166 55.0939 55.4233 55.0857 55.4318C55.0775 55.4403 55.0712 55.4504 55.067 55.4614C55.0628 55.4724 55.0609 55.4842 55.0613 55.496L55.0911 56.6265C55.092 56.6491 55.1016 56.6704 55.1179 56.6861C55.1342 56.7017 55.156 56.7105 55.1786 56.7105H57.0493C57.0615 56.7105 57.0734 56.708 57.0845 56.7032C57.0956 56.6984 57.1056 56.6913 57.1138 56.6824C57.1221 56.6735 57.1283 56.663 57.1323 56.6516C57.1363 56.6402 57.1378 56.628 57.1369 56.616L57.0406 55.4855Z" fill="#D7D3E6"/> +</g> +<g filter="url(#filter40_dii_0_1)"> +<path d="M42.2828 55.475C42.2837 55.4524 42.2934 55.431 42.3097 55.4154C42.326 55.3997 42.3477 55.391 42.3703 55.391H53.5773C53.5999 55.391 53.6217 55.3997 53.638 55.4154C53.6543 55.431 53.6639 55.4524 53.6648 55.475L53.7121 56.6195C53.7126 56.6313 53.7106 56.643 53.7065 56.6541C53.7023 56.6651 53.6959 56.6751 53.6877 56.6836C53.6796 56.6921 53.6698 56.6989 53.6589 56.7035C53.648 56.7081 53.6364 56.7105 53.6246 56.7105H42.3161C42.3043 56.7105 42.2926 56.7081 42.2818 56.7035C42.2709 56.6989 42.2611 56.6921 42.2529 56.6836C42.2448 56.6751 42.2384 56.6651 42.2342 56.6541C42.23 56.643 42.2281 56.6313 42.2286 56.6195L42.2828 55.475Z" fill="#D7D3E6"/> +</g> +<defs> +<filter id="filter0_bd_0_1" x="0" y="-4" width="96" height="97" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feGaussianBlur in="BackgroundImageFix" stdDeviation="2"/> +<feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dy="4"/> +<feGaussianBlur stdDeviation="2"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0"/> +<feBlend mode="normal" in2="effect1_backgroundBlur_0_1" result="effect2_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect2_dropShadow_0_1" result="shape"/> +</filter> +<filter id="filter1_ii_0_1" x="26.9176" y="17.6645" width="42.1299" height="31.171" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.1"/> +<feGaussianBlur stdDeviation="0.125"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.329412 0 0 0 0 0.305882 0 0 0 0 0.568627 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.125"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.521569 0 0 0 0 0.505882 0 0 0 0 0.764706 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/> +</filter> +<filter id="filter2_d_0_1" x="28.5412" y="19.3322" width="38.6841" height="28.0355" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1" dy="0.1"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.266667 0 0 0 0 0.282353 0 0 0 0 0.509804 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +</filter> +<filter id="filter3_i_0_1" x="23.7471" y="48.7355" width="48.5266" height="16.1037" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dy="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.756863 0 0 0 0 0.733333 0 0 0 0 0.8 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/> +</filter> +<filter id="filter4_i_0_1" x="23.7468" y="63.7105" width="48.5276" height="2.83202" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dy="0.2"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.580392 0 0 0 0 0.552941 0 0 0 0 0.611765 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/> +</filter> +<filter id="filter5_f_0_1" x="38.3988" y="59.4395" width="19.2028" height="3.97627" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> +<feGaussianBlur stdDeviation="0.075" result="effect1_foregroundBlur_0_1"/> +</filter> +<filter id="filter6_f_0_1" x="26.9062" y="50.4148" width="42.208" height="7.60402" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> +<feGaussianBlur stdDeviation="0.075" result="effect1_foregroundBlur_0_1"/> +</filter> +<filter id="filter7_i_0_1" x="27.1311" y="50.5398" width="41.7581" height="7.25399" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dy="-0.1"/> +<feGaussianBlur stdDeviation="0.075"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.517647 0 0 0 0 0.498039 0 0 0 0 0.541176 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/> +</filter> +<filter id="filter8_dii_0_1" x="29.5018" y="51.1922" width="2.57676" height="1.67051" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter9_dii_0_1" x="63.6883" y="51.1922" width="2.57676" height="1.67051" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter10_dii_0_1" x="29.1253" y="53.1802" width="2.55967" height="1.67405" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter11_dii_0_1" x="64.0838" y="53.1802" width="2.55967" height="1.67399" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter12_dii_0_1" x="28.688" y="55.205" width="2.62021" height="1.71952" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter13_dii_0_1" x="64.4588" y="55.205" width="2.62192" height="1.71952" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter14_dii_0_1" x="32.6204" y="51.1922" width="2.55015" height="1.67228" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter15_dii_0_1" x="60.5965" y="51.1922" width="2.55356" height="1.67228" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter16_dii_0_1" x="32.3035" y="53.182" width="2.53403" height="1.64078" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter17_dii_0_1" x="60.931" y="53.182" width="2.53232" height="1.64078" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter18_dii_0_1" x="31.9612" y="55.205" width="2.56455" height="1.70554" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter19_dii_0_1" x="61.243" y="55.205" width="2.56284" height="1.70554" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter20_dii_0_1" x="35.75" y="51.1922" width="2.48228" height="1.67228" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter21_dii_0_1" x="57.5347" y="51.1922" width="2.48594" height="1.67228" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter22_dii_0_1" x="38.8655" y="51.1922" width="2.4271" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter23_dii_0_1" x="54.4761" y="51.1922" width="2.42515" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter24_dii_0_1" x="42.0018" y="51.1922" width="2.39707" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter25_dii_0_1" x="51.3699" y="51.1922" width="2.39536" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter26_dii_0_1" x="45.1888" y="51.1922" width="2.31455" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter27_dii_0_1" x="45.1888" y="53.1715" width="2.31455" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter28_dii_0_1" x="48.2776" y="51.1922" width="2.31455" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter29_dii_0_1" x="48.2776" y="53.1715" width="2.31455" height="1.66526" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter30_dii_0_1" x="38.7222" y="53.182" width="2.42002" height="1.64426" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter31_dii_0_1" x="54.6265" y="53.182" width="2.41831" height="1.64426" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter32_dii_0_1" x="35.5333" y="53.182" width="2.46079" height="1.64078" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter33_dii_0_1" x="57.7747" y="53.182" width="2.45908" height="1.64078" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter34_dii_0_1" x="41.9251" y="53.182" width="2.38462" height="1.64249" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter35_dii_0_1" x="51.4573" y="53.182" width="2.38462" height="1.64249" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.627451 0 0 0 0 0.6 0 0 0 0 0.658824 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter36_dii_0_1" x="35.2186" y="55.205" width="2.52183" height="1.70548" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter37_dii_0_1" x="58.0267" y="55.205" width="2.52183" height="1.70548" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter38_dii_0_1" x="38.5315" y="55.205" width="2.47422" height="1.70548" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter39_dii_0_1" x="54.7613" y="55.205" width="2.47593" height="1.70548" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<filter id="filter40_dii_0_1" x="41.9285" y="55.191" width="11.8836" height="1.71952" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.1"/> +<feGaussianBlur stdDeviation="0.1"/> +<feComposite in2="hardAlpha" operator="out"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.52549 0 0 0 0 0.517647 0 0 0 0 0.596078 0 0 0 1 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="-0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.8 0 0 0 0 0.772549 0 0 0 0 0.835294 0 0 0 1 0"/> +<feBlend mode="normal" in2="shape" result="effect2_innerShadow_0_1"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> +<feOffset dx="0.05" dy="-0.05"/> +<feGaussianBlur stdDeviation="0.05"/> +<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> +<feColorMatrix type="matrix" values="0 0 0 0 0.741176 0 0 0 0 0.717647 0 0 0 0 0.772549 0 0 0 1 0"/> +<feBlend mode="normal" in2="effect2_innerShadow_0_1" result="effect3_innerShadow_0_1"/> +</filter> +<linearGradient id="paint0_linear_0_1" x1="4" y1="0" x2="109.135" y2="40.3286" gradientUnits="userSpaceOnUse"> +<stop stop-color="white"/> +<stop offset="1" stop-color="#999999"/> +</linearGradient> +<linearGradient id="paint1_linear_0_1" x1="64.4098" y1="18.4292" x2="47.3473" y2="47.579" gradientUnits="userSpaceOnUse"> +<stop offset="0.411" stop-color="#6863AC"/> +<stop offset="1" stop-color="#574974"/> +</linearGradient> +<linearGradient id="paint2_linear_0_1" x1="47.9843" y1="48.1792" x2="47.9843" y2="48.8355" gradientUnits="userSpaceOnUse"> +<stop stop-color="#534370" stop-opacity="0"/> +<stop offset="1" stop-color="#534370"/> +</linearGradient> +<linearGradient id="paint3_linear_0_1" x1="63.4245" y1="21.875" x2="35.7535" y2="49.9852" gradientUnits="userSpaceOnUse"> +<stop offset="0.373" stop-color="#59E8FF"/> +<stop offset="0.933" stop-color="#2DB3FF"/> +</linearGradient> +<linearGradient id="paint4_linear_0_1" x1="48.0106" y1="48.8355" x2="48.0106" y2="64.8393" gradientUnits="userSpaceOnUse"> +<stop stop-color="#C9C6DA"/> +<stop offset="1" stop-color="#DAD5E4"/> +</linearGradient> +<linearGradient id="paint5_linear_0_1" x1="48.0106" y1="65.023" x2="48.0106" y2="66.3425" gradientUnits="userSpaceOnUse"> +<stop stop-color="#8C8396"/> +<stop offset="1" stop-color="#998AA9"/> +</linearGradient> +<linearGradient id="paint6_linear_0_1" x1="72.7223" y1="65.4605" x2="70.2618" y2="65.4605" gradientUnits="userSpaceOnUse"> +<stop stop-color="#B0A8B8"/> +<stop offset="1" stop-color="#B0A8B8" stop-opacity="0"/> +</linearGradient> +<linearGradient id="paint7_linear_0_1" x1="24.2683" y1="65.0265" x2="25.9641" y2="65.0265" gradientUnits="userSpaceOnUse"> +<stop stop-color="#81778C"/> +<stop offset="1" stop-color="#81778C" stop-opacity="0"/> +</linearGradient> +<linearGradient id="paint8_linear_0_1" x1="48" y1="59.6645" x2="48" y2="63.1907" gradientUnits="userSpaceOnUse"> +<stop stop-color="#D8D4E5"/> +<stop offset="1" stop-color="#D8D4E5" stop-opacity="0"/> +</linearGradient> +<linearGradient id="paint9_linear_0_1" x1="48" y1="59.6645" x2="48" y2="63.1907" gradientUnits="userSpaceOnUse"> +<stop stop-color="#A9A7B8"/> +<stop offset="1" stop-color="#838191"/> +</linearGradient> +<linearGradient id="paint10_linear_0_1" x1="48.0105" y1="50.6415" x2="48.0105" y2="57.7938" gradientUnits="userSpaceOnUse"> +<stop stop-color="#C9C7DA"/> +<stop offset="1" stop-color="#C9C7DA" stop-opacity="0"/> +</linearGradient> +<linearGradient id="paint11_linear_0_1" x1="48.0105" y1="50.6415" x2="48.0105" y2="57.7938" gradientUnits="userSpaceOnUse"> +<stop stop-color="#A9A8BD"/> +<stop offset="1" stop-color="#8A8999"/> +</linearGradient> +</defs> +</svg> @@ -1,13 +1,15 @@ + + <div align="center"> -<h1>NewOS</h1> +<img src="Meta/NewOS.svg"/> </div> +NewOS is an operating system based on Common User Access and the microkernel NewKernel codename: 'Ne'. <br> - You need: -- MinGW for the kernel and bootloader. -- Netwide Assembler to output COFF object code. +- MinGW/CodeTools for the kernel and bootloader. +- Netwide Assembler/CodeTools to output COFF/PEF object code. Start by cloning the repo: @@ -21,4 +23,6 @@ And execute: make all ``` +for the default target (AMD64 EPM) + ##### Copyright, SoftwareLabs, all rights reserved. diff --git a/SDK/Library/CoreCxxRuntime/Private.xml b/SDK/Library/CoreCxxRuntime/Private.xml new file mode 100644 index 00000000..7ee426c0 --- /dev/null +++ b/SDK/Library/CoreCxxRuntime/Private.xml @@ -0,0 +1,3 @@ +<SourceDeploy> + <Ignore/> +</SourceDeploy>
\ No newline at end of file diff --git a/SDK/Library/CoreCxxRuntime/Sources/New+Delete.cxx b/SDK/Library/CoreCxxRuntime/Sources/New+Delete.cxx index 7a8d8f92..cc59586f 100644 --- a/SDK/Library/CoreCxxRuntime/Sources/New+Delete.cxx +++ b/SDK/Library/CoreCxxRuntime/Sources/New+Delete.cxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/SDK/Library/CorePEFRuntime/Private.xml b/SDK/Library/CorePEFRuntime/Private.xml new file mode 100644 index 00000000..7ee426c0 --- /dev/null +++ b/SDK/Library/CorePEFRuntime/Private.xml @@ -0,0 +1,3 @@ +<SourceDeploy> + <Ignore/> +</SourceDeploy>
\ No newline at end of file diff --git a/SDK/Library/CorePEFRuntime/Sources/PEFStart.c b/SDK/Library/CorePEFRuntime/Sources/PEFStart.c index 0dd6c3b7..e9a45f09 100644 --- a/SDK/Library/CorePEFRuntime/Sources/PEFStart.c +++ b/SDK/Library/CorePEFRuntime/Sources/PEFStart.c @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -9,15 +9,15 @@ /// @brief Application entrypoint. /// @param void /// @return void -CA_EXTERN_C VoidType AppMain(VoidType); +CS_EXTERN_C VoidType AppMain(VoidType); /// @brief Process entrypoint. /// @param void /// @return void -CA_EXTERN_C VoidType __ImageStart(VoidType) +CS_EXTERN_C VoidType __ImageStart(VoidType) { kSharedApplication = RtGetAppPointer(); - CA_MUST_PASS(kSharedApplication); + CS_MUST_PASS(kSharedApplication); AppMain(); } diff --git a/SDK/Library/CoreSystem/Headers/Alert.h b/SDK/Library/CoreSystem/Headers/Alert.h index 57c9afeb..7decd4ca 100644 --- a/SDK/Library/CoreSystem/Headers/Alert.h +++ b/SDK/Library/CoreSystem/Headers/Alert.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -18,4 +18,8 @@ #include <Headers/Defines.h> -CA_EXTERN_C VoidType Alert(const CharacterTypeUTF8* fmt, ...); +/// @brief Shows an alert box, as provided by the OS. +/// @param fmt The alert formating. +/// @param +/// @return +CS_EXTERN_C VoidType UiAlert(const CharacterTypeUTF8* fmt, ...); diff --git a/SDK/Library/CoreSystem/Headers/Defines.h b/SDK/Library/CoreSystem/Headers/Defines.h index 600e9ab6..a7e46234 100644 --- a/SDK/Library/CoreSystem/Headers/Defines.h +++ b/SDK/Library/CoreSystem/Headers/Defines.h @@ -1,49 +1,49 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once -#ifdef CA_MUST_PASS -#undef CA_MUST_PASS +#ifdef CS_MUST_PASS +#undef CS_MUST_PASS #endif #ifdef _DEBUG -#define CA_MUST_PASS(e) \ +#define CS_MUST_PASS(e) \ { \ if (!e) \ { \ - Alert("Sorry, an assertion failed.\nFile: %s\nLine: %i", __FILE__, __LINE__) RtAssertTriggerInterrupt() \ + UiAlert("Assertion failed.\nExpression :%s\nFile: %s\nLine: %i", #e, __FILE__, __LINE__) RtAssertTriggerInterrupt() \ } \ } #else -#define CA_MUST_PASS(e) CA_UNREFERENCED_PARAMETER(e) +#define CS_MUST_PASS(e) CS_UNREFERENCED_PARAMETER(e) #endif #ifdef __cplusplus -#define CA_EXTERN_C extern "C" +#define CS_EXTERN_C extern "C" #else -#define CA_EXTERN_C extern +#define CS_EXTERN_C extern #endif struct ApplicationInterface; struct GUID; -CA_EXTERN_C void RtAssertTriggerInterrupt(void); +CS_EXTERN_C void RtAssertTriggerInterrupt(void); -#define CA_STDCALL __attribute__((stdcall)) -#define CA_CDECL __attribute__((cdecl)) -#define CA_MSCALL __attribute__((ms_abi)) +#define CS_STDCALL __attribute__((stdcall)) +#define CS_CDECL __attribute__((cdecl)) +#define CS_MSCALL __attribute__((ms_abi)) #define PACKED __attribute__((packed)) -#define CA_PASCAL CA_STDCALL +#define CS_PASCAL CS_STDCALL #include <Headers/Hint.h> @@ -79,20 +79,20 @@ typedef CharacterTypeUTF8 BooleanType; #define Yes 1 #define No 0 -#define CA_PTR * +#define CS_PTR * -#define CA_UNREFERENCED_PARAMETER(e) ((VoidType)(e)) +#define CS_UNREFERENCED_PARAMETER(e) ((VoidType)(e)) #ifdef __x86_64__ -#define CA_FAR __far -#define CA_NEAR __near +#define CS_FAR __far +#define CS_NEAR __near #define _M_AMD64 2 #else -#define CA_FAR -#define CA_NEAR +#define CS_FAR +#define CS_NEAR #endif @@ -112,14 +112,14 @@ typedef CharacterTypeUTF8 BooleanType; #define _M_RISCV 6 #endif -#define CA_STATIC static -#define CA_INLINE inline -#define CA_CONST const +#define CS_STATIC static +#define CS_INLINE inline +#define CS_CONST const #ifdef __cplusplus -#define CA_CONSTEXPR constexpr +#define CS_CONSTEXPR constexpr #else -#define CA_CONSTEXPR +#define CS_CONSTEXPR #endif // __cplusplus enum RtProcessCall @@ -144,6 +144,11 @@ enum RtProcessCall kCallRandomNumberGenerator, kCallGetArgsCount, kCallGetArgsPtr, + kCallFileExists, + kCallDirectoryExists, + kCallSymlinkExists, + kCallDeviceExists, + kCallDriveExists, /// @brief Number of process calls. kCallsCount, }; @@ -171,19 +176,19 @@ typedef struct ApplicationInterface #ifdef __cplusplus -#define CA_COPY_DELETE(KLASS) \ +#define CS_COPY_DELETE(KLASS) \ KLASS& operator=(const KLASS&) = delete; \ KLASS(const KLASS&) = delete; -#define CA_COPY_DEFAULT(KLASS) \ +#define CS_COPY_DEFAULT(KLASS) \ KLASS& operator=(const KLASS&) = default; \ KLASS(const KLASS&) = default; -#define CA_MOVE_DELETE(KLASS) \ +#define CS_MOVE_DELETE(KLASS) \ KLASS& operator=(KLASS&&) = delete; \ KLASS(KLASS&&) = delete; -#define CA_MOVE_DEFAULT(KLASS) \ +#define CS_MOVE_DEFAULT(KLASS) \ KLASS& operator=(KLASS&&) = default; \ KLASS(KLASS&&) = default; @@ -201,19 +206,19 @@ using StrType = CharacterTypeUTF8[N]; /// @brief Get app singleton. /// @param /// @return -CA_EXTERN_C ApplicationInterfaceRef RtGetAppPointer(VoidType); +CS_EXTERN_C ApplicationInterfaceRef RtGetAppPointer(VoidType); /// @brief Get argument count /// @param /// @return -CA_EXTERN_C SizeType RtGetAppArgumentsCount(VoidType); +CS_EXTERN_C SizeType RtGetAppArgumentsCount(VoidType); /// @brief Get argument pointer. /// @param /// @return -CA_EXTERN_C CharacterTypeUTF8** RtGetAppArgumentsPtr(VoidType); +CS_EXTERN_C CharacterTypeUTF8** RtGetAppArgumentsPtr(VoidType); -CA_EXTERN_C ApplicationInterfaceRef kSharedApplication; +CS_EXTERN_C ApplicationInterfaceRef kSharedApplication; typedef CharacterTypeUTF8 StrType255[255]; diff --git a/SDK/Library/CoreSystem/Headers/File.h b/SDK/Library/CoreSystem/Headers/File.h index 09cd0b88..594b4edb 100644 --- a/SDK/Library/CoreSystem/Headers/File.h +++ b/SDK/Library/CoreSystem/Headers/File.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,6 +8,8 @@ #include <Headers/Defines.h> +struct _Fork; + /// @brief Filesystem wrapper. typedef QWordType FSRef; @@ -16,37 +18,35 @@ typedef QWordType FSRef; /// @param path where to find it. /// @param rest the restrict (rw, rwe, r+, w+, r, w) /// @return FSRef the file. -CA_EXTERN_C FSRef FsOpenFile(const CharacterTypeUTF8* path, const CharacterTypeUTF8* r); +CS_EXTERN_C FSRef CSOpenFile(const CharacterTypeUTF8* path, const CharacterTypeUTF8* r); /// @brief Closes the file and flushes it to the said file. -/// @param refFs the filesystem reference. +/// @param refCS the filesystem reference. /// @return -CA_EXTERN_C VoidType FsCloseFile(FSRef refFs); +CS_EXTERN_C VoidType CSCloseFile(FSRef refCS); -#define kMaxForkNameLength 256 /* long fork names. */ +#define kMaxForkNameLength (256U) /* long fork names. */ /// @brief A fork information header. typedef struct _Fork { - PtrVoidType forkData; - SizeType forkSize; Int32Type forkFlags; Int32Type forkKind; CharacterTypeUTF8 forkName[kMaxForkNameLength]; -} ForkType; + SizeType forkSize; + CharacterTypeUTF8 forkData[]; +} ForkType, ForkTypePtr; typedef ForkType* FSForkRef; /// @brief Gets the fork inside a file. -/// @param refFs the filesystem ref +/// @param refCS the filesystem ref /// @param forkName the fork's name /// @return the fork data. -CA_EXTERN_C FSForkRef FsGetFork(FSRef refFs, const CharacterTypeUTF8* forkName); +CS_EXTERN_C FSForkRef CSGetFork(FSRef refCS, const CharacterTypeUTF8* forkName); /// @brief Check if the filesystem path is valid. /// @return if not return false, or true. -CA_EXTERN_C BooleanType FsIsValidPath(const CharacterTypeUTF8* path); +CS_EXTERN_C BooleanType CSIsValidPath(const CharacterTypeUTF8* path); -/// @note not only limited to, there is code forks, icon forks... -#define FsGetDataFork(refFs) FsGetFork(refFs, "data") -#define FsGetRsrcFork(refFs) FsGetFork(refFs, "rsrc") +/// END OF FILE diff --git a/SDK/Library/CoreSystem/Headers/Heap.h b/SDK/Library/CoreSystem/Headers/Heap.h index 0a02bb1a..b2ad6e74 100644 --- a/SDK/Library/CoreSystem/Headers/Heap.h +++ b/SDK/Library/CoreSystem/Headers/Heap.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,9 +8,9 @@ #include <Headers/Defines.h> -#define kAllocationTypes 2 +#define cAllocationKindCount (2U) -enum RtAllocationKind +enum CsAllocationKind { kStandardAllocation = 0xC, kArrayAllocation = 0xD, @@ -20,20 +20,20 @@ enum RtAllocationKind /// @param sz the size /// @param flags the allocation flags. /// @return -CA_EXTERN_C PtrVoidType RtHeapAllocate(QWordType sz, - DWordType flags); +CS_EXTERN_C PtrVoidType CSAllocateHeap(QWordType sz, + DWordType flags); /// @brief Check if the pointer exists. /// @param ptr the pointer to free. /// @return -CA_EXTERN_C BooleanType RtHeapPtrExists(PtrVoidType ptr); +CS_EXTERN_C BooleanType CSIsHeapValid(PtrVoidType ptr); /// @brief Gets the size of the process' pointer. /// @param ptr the pointer to free. /// @return -CA_EXTERN_C QWordType RtHeapGetSize(PtrVoidType ptr); +CS_EXTERN_C QWordType CSGetHeapSize(PtrVoidType ptr); /// @brief Frees the process pointer. /// @param ptr the pointer to free. /// @return -CA_EXTERN_C VoidType RtHeapFree(PtrVoidType ptr); +CS_EXTERN_C VoidType CSFreeHeap(PtrVoidType ptr); diff --git a/SDK/Library/CoreSystem/Headers/Hint.h b/SDK/Library/CoreSystem/Headers/Hint.h index d775f52d..ee14711d 100644 --- a/SDK/Library/CoreSystem/Headers/Hint.h +++ b/SDK/Library/CoreSystem/Headers/Hint.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ diff --git a/SDK/Library/CoreSystem/Headers/Intl.h b/SDK/Library/CoreSystem/Headers/Intl.h index 5e4ef49e..b868adca 100644 --- a/SDK/Library/CoreSystem/Headers/Intl.h +++ b/SDK/Library/CoreSystem/Headers/Intl.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -12,13 +12,18 @@ typedef UInt64Type IntlRef; -/// @brief locale getter and setters. - +/// @brief Get app locale. +/// @param name locale name. +/// @return IntlRef IntlGetLocale(const char* name); + +/// @brief Set app locale. +/// @param intl the locale +/// @return BooleanType IntlSetLocale(const IntlRef intl); /// @brief locale helpers. /// @brief translate a string from a locale. const CharacterTypeUTF8* Intl(const CharacterTypeUTF8* input, - const IntlRef locale); + const IntlRef locale); diff --git a/SDK/Library/CoreSystem/Headers/Math.h b/SDK/Library/CoreSystem/Headers/Math.h index 87c792eb..0a13e86f 100644 --- a/SDK/Library/CoreSystem/Headers/Math.h +++ b/SDK/Library/CoreSystem/Headers/Math.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -14,14 +14,14 @@ /// @brief Number generator helper. /// @return Random generated number. -CA_EXTERN_C SizeType MathRand(VoidType); +CS_EXTERN_C SizeType MathRand(VoidType); /////////////////////////////////////////////////////////////////////// /// Mathematical functions /// /////////////////////////////////////////////////////////////////////// -CA_EXTERN_C FloatType Sqrt(FloatType number); +CS_EXTERN_C FloatType Sqrt(FloatType number); -CA_EXTERN_C FloatType Cosine(FloatType number); -CA_EXTERN_C FloatType Sine(FloatType number); -CA_EXTERN_C FloatType Tangent(FloatType number);
\ No newline at end of file +CS_EXTERN_C FloatType Cosine(FloatType number); +CS_EXTERN_C FloatType Sine(FloatType number); +CS_EXTERN_C FloatType Tangent(FloatType number);
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/Headers/Rsrc.h b/SDK/Library/CoreSystem/Headers/Rsrc.h index 7d76f50d..7fe52910 100644 --- a/SDK/Library/CoreSystem/Headers/Rsrc.h +++ b/SDK/Library/CoreSystem/Headers/Rsrc.h @@ -1,9 +1,12 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ #pragma once #include <Headers/Defines.h> + +/// @file Rsrc.h +/// @brief RXML forks.
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/Headers/Thread.h b/SDK/Library/CoreSystem/Headers/Thread.h index f0360b63..15b40df3 100644 --- a/SDK/Library/CoreSystem/Headers/Thread.h +++ b/SDK/Library/CoreSystem/Headers/Thread.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -19,7 +19,7 @@ typedef QWordType ThreadRef; /// @brief Main application thread. -CA_EXTERN_C ThreadRef kMainThread; +CS_EXTERN_C ThreadRef kMainThread; typedef VoidType (*ThreadEntrypointKind)(VoidType); @@ -27,21 +27,21 @@ typedef VoidType (*ThreadEntrypointKind)(VoidType); /// @param threadName the thread's name. /// @param threadStart where to start. /// @return -CA_EXTERN_C ThreadRef CTCreate(const CharacterTypeUTF8* threadName, ThreadEntrypointKind threadStart); +CS_EXTERN_C ThreadRef CSThreadCreate(const CharacterTypeUTF8* threadName, ThreadEntrypointKind threadStart); /// @brief Dispoes the thread, and exits with code kThreadErrorExit /// @param ref the thread reference. /// @return nothing. -CA_EXTERN_C VoidType CTRelease(ThreadRef ref); +CS_EXTERN_C VoidType CSThreadRelease(ThreadRef ref); /// @brief Waits for the thread to complete. /// @param ref the thread reference. /// @return nothing. -CA_EXTERN_C VoidType CTJoin(ThreadRef ref); +CS_EXTERN_C VoidType CSThreadJoin(ThreadRef ref); /// @brief Yields the current thread. /// @param ref the thead reference. -/// @return -CA_EXTERN_C VoidType CTYield(ThreadRef ref); +/// @return +CS_EXTERN_C VoidType CSThreadYield(ThreadRef ref); #endif // __THREAD__ diff --git a/SDK/Library/CoreSystem/Headers/Transport.h b/SDK/Library/CoreSystem/Headers/Transport.h new file mode 100644 index 00000000..3f6db3f1 --- /dev/null +++ b/SDK/Library/CoreSystem/Headers/Transport.h @@ -0,0 +1,48 @@ +/* ------------------------------------------- + + Copyright SoftwareLabs + +------------------------------------------- */ + +// +// Created by Amlal on 5/12/24 +// + +#ifndef __TRANSPORT__ +#define __TRANSPORT__ + +/// @file: Transport.h +/// @brief Open Transport Layer, an alternative to berkeley sockets. + +#include <Headers/Defines.h> + +typedef QWordType TrStreamType; + +/// @brief Opens a new socket +/// @param afType address family +/// @param sockType type of socket +/// @param sockProto socket protocol. +/// @return The STREAMS socket. +/// @note return is const. +CS_EXTERN_C CS_CONST TrStreamType CSOpenSocket(UInt32Type afType, UInt32Type sockType, UInt32Type sockProto); + +/// @brief Close a STREAMS socket. +/// @param streams The streams socket. +/// @return +CS_EXTERN_C VoidType CSCloseSocket(CS_CONST TrStreamType streams); + +/// @brief Get OpenTransport version. +/// @param void +/// @return +CS_EXTERN_C CS_CONST Int32Type CSGetVersion(VoidType); + +enum +{ + TrSocketProtoTCP, /// TCP socket + TrSocketProtoUDP, /// UDP socket + TrSocketProtoUN, /// IPC socket + TrSocketProtoRaw, /// Raw socket + TrSocketProtoCount, +}; + +#endif // __TRANSPORT__
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/Private.xml b/SDK/Library/CoreSystem/Private.xml new file mode 100644 index 00000000..4be6c388 --- /dev/null +++ b/SDK/Library/CoreSystem/Private.xml @@ -0,0 +1,4 @@ +<SourceDeploy> + <File name="Headers/Hint.h" hidden="true"/> + <Directory name="Sources/" hidden="true"/> +</SourceDeploy>
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/ReadMe.md b/SDK/Library/CoreSystem/ReadMe.md index be075a59..ae5df339 100644 --- a/SDK/Library/CoreSystem/ReadMe.md +++ b/SDK/Library/CoreSystem/ReadMe.md @@ -1,5 +1,5 @@ # CoreSystem -## System Core framework. +## Core System framework. Currently contains: @@ -8,6 +8,6 @@ Currently contains: - Data API. - Threading API. -Needs: +Needs to have: - Device API - Drive API.
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/Sources/App.c b/SDK/Library/CoreSystem/Sources/App.c index 6c6f22f3..42ea19c6 100644 --- a/SDK/Library/CoreSystem/Sources/App.c +++ b/SDK/Library/CoreSystem/Sources/App.c @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -12,9 +12,9 @@ ApplicationInterfaceRef kSharedApplication = NullPtr; /// @brief Gets the app arguments count. /// @param void no arguments. /// @return The number of arguments given to the application. -CA_EXTERN_C SizeType RtGetAppArgumentsCount(VoidType) +CS_EXTERN_C SizeType RtGetAppArgumentsCount(VoidType) { - CA_MUST_PASS(kSharedApplication); + CS_MUST_PASS(kSharedApplication); return kSharedApplication->Invoke(kSharedApplication, kCallGetArgsCount); } @@ -22,9 +22,9 @@ CA_EXTERN_C SizeType RtGetAppArgumentsCount(VoidType) /// @brief Gets the app arguments pointer. /// @param void no arguments. /// @return -CA_EXTERN_C CharacterTypeUTF8** RtGetAppArgumentsPtr(VoidType) +CS_EXTERN_C CharacterTypeUTF8** RtGetAppArgumentsPtr(VoidType) { - CA_MUST_PASS(kSharedApplication); + CS_MUST_PASS(kSharedApplication); return (CharacterTypeUTF8**)kSharedApplication->Invoke(kSharedApplication, kCallGetArgsPtr); diff --git a/SDK/Library/CoreSystem/Sources/CRTStartup.c b/SDK/Library/CoreSystem/Sources/CRTStartup.c new file mode 100644 index 00000000..1cfad65d --- /dev/null +++ b/SDK/Library/CoreSystem/Sources/CRTStartup.c @@ -0,0 +1,12 @@ +/* ------------------------------------------- + + Copyright SoftwareLabs + +------------------------------------------- */ + +#include <Headers/Defines.h> + +VoidType __DllMainCRTStartup(VoidType) +{ + kSharedApplication = RtGetAppPointer(); +}
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/Sources/File.c b/SDK/Library/CoreSystem/Sources/File.c index 6488bccf..7547e7f2 100644 --- a/SDK/Library/CoreSystem/Sources/File.c +++ b/SDK/Library/CoreSystem/Sources/File.c @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -20,24 +20,39 @@ enum FileOp /// @param path where to find it. /// @param rest the restrict (rw, rwe, r+, w+, r, w) /// @return FSRef the file. -CA_EXTERN_C FSRef FsOpenFile(const CharacterTypeUTF8* path, +CS_EXTERN_C FSRef CSOpenFile(const CharacterTypeUTF8* path, const CharacterTypeUTF8* rest) { - CA_MUST_PASS(kSharedApplication); - CA_MUST_PASS(path && FsIsValidPath(path) == Yes); - CA_MUST_PASS(rest); + CS_MUST_PASS(kSharedApplication); + CS_MUST_PASS(path && CSIsValidPath(path) == Yes); + CS_MUST_PASS(rest); return kSharedApplication->Invoke(kSharedApplication, kCallOpenFile, path, rest); } /// @brief Closes the file and flushes it to the said file. -/// @param refFs the filesystem reference. +/// @param refCS the filesystem reference. /// @return -CA_EXTERN_C VoidType FsCloseFile(FSRef refFs) +CS_EXTERN_C VoidType CSCloseFile(FSRef refCS) { - CA_MUST_PASS(kSharedApplication); + CS_MUST_PASS(kSharedApplication); - kSharedApplication->Invoke(kSharedApplication, refFs, kFlushFile); - kSharedApplication->Invoke(kSharedApplication, kCallCloseFile, refFs); + kSharedApplication->Invoke(kSharedApplication, refCS, kFlushFile); + kSharedApplication->Invoke(kSharedApplication, kCallCloseFile, refCS); } + +/// @brief Check if filesystem path is valid. +/// @param path +/// @return +CS_EXTERN_C BooleanType CSIsValidPath(const CharacterTypeUTF8* path) +{ + CS_MUST_PASS(kSharedApplication); + CS_MUST_PASS(path); + + return kSharedApplication->Invoke(kSharedApplication, kCallFileExists, path) || + kSharedApplication->Invoke(kSharedApplication, kCallDirectoryExists, path) || + kSharedApplication->Invoke(kSharedApplication, kCallSymlinkExists, path) || + kSharedApplication->Invoke(kSharedApplication, kCallDriveExists, path) || + kSharedApplication->Invoke(kSharedApplication, kCallDeviceExists, path); +}
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/Sources/Heap.c b/SDK/Library/CoreSystem/Sources/Heap.c index f3e9f914..e7a77ba5 100644 --- a/SDK/Library/CoreSystem/Sources/Heap.c +++ b/SDK/Library/CoreSystem/Sources/Heap.c @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -11,11 +11,11 @@ /// @param sz size of object. /// @param flags flags. /// @return -CA_EXTERN_C PtrVoidType RtHeapAllocate(QWordType sz, DWordType flags) +CS_EXTERN_C PtrVoidType CSAllocateHeap(QWordType sz, DWordType flags) { - CA_MUST_PASS(kSharedApplication); - CA_MUST_PASS(sz); - CA_MUST_PASS(flags); + CS_MUST_PASS(kSharedApplication); + CS_MUST_PASS(sz); + CS_MUST_PASS(flags); return (PtrVoidType)kSharedApplication->Invoke(kSharedApplication, kCallAllocPtr, sz, flags); @@ -23,33 +23,32 @@ CA_EXTERN_C PtrVoidType RtHeapAllocate(QWordType sz, DWordType flags) /// @brief Free pointer from the user's heap. /// @param ptr the pointer to free. -CA_EXTERN_C VoidType RtHeapFree(PtrVoidType ptr) +CS_EXTERN_C VoidType CSFreeHeap(PtrVoidType ptr) { - CA_MUST_PASS(kSharedApplication); - CA_MUST_PASS(ptr); + CS_MUST_PASS(kSharedApplication); + CS_MUST_PASS(ptr); - CA_UNREFERENCED_PARAMETER( + CS_UNREFERENCED_PARAMETER( kSharedApplication->Invoke(kSharedApplication, kCallFreePtr, ptr)); } /// @brief Get pointer size. /// @param ptr the pointer to find. /// @return the size. -CA_EXTERN_C QWordType RtHeapGetSize(PtrVoidType ptr) +CS_EXTERN_C QWordType CSGetHeapSize(PtrVoidType ptr) { - CA_MUST_PASS(kSharedApplication); + CS_MUST_PASS(kSharedApplication); - CA_MUST_PASS(ptr); + CS_MUST_PASS(ptr); return kSharedApplication->Invoke(kSharedApplication, kCallSizePtr, ptr); } /// @brief Check if the pointer exists. /// @param ptr the pointer to check. /// @return if it exists -CA_EXTERN_C BooleanType RtHeapPtrExists(PtrVoidType ptr) +CS_EXTERN_C BooleanType CSIsHeapValid(PtrVoidType ptr) { - CA_MUST_PASS(kSharedApplication); - - CA_MUST_PASS(ptr); + CS_MUST_PASS(kSharedApplication); + CS_MUST_PASS(ptr); return kSharedApplication->Invoke(kSharedApplication, kCallCheckPtr, ptr); } diff --git a/SDK/Library/CoreSystem/Sources/Math.c b/SDK/Library/CoreSystem/Sources/Math.c index b41f8a54..19df42f3 100644 --- a/SDK/Library/CoreSystem/Sources/Math.c +++ b/SDK/Library/CoreSystem/Sources/Math.c @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright SoftwareLabs ------------------------------------------- */ @@ -8,7 +8,7 @@ /// @brief Number generator helper. /// @return Random generated number. -CA_EXTERN_C SizeType MathRand(VoidType) +CS_EXTERN_C SizeType MathRand(VoidType) { return kSharedApplication->Invoke(kSharedApplication, kCallRandomNumberGenerator); }
\ No newline at end of file diff --git a/SDK/Library/CoreSystem/Sources/Thread.c b/SDK/Library/CoreSystem/Sources/Thread.c new file mode 100644 index 00000000..7d00bf9e --- /dev/null +++ b/SDK/Library/CoreSystem/Sources/Thread.c @@ -0,0 +1,9 @@ +/* ------------------------------------------- + + Copyright SoftwareLabs + +------------------------------------------- */ + +#include <Headers/Thread.h> + +ThreadRef kMainThread = 0; diff --git a/SDK/Library/CoreSystem/amd64.mk b/SDK/Library/CoreSystem/amd64.mk index 33303430..e64de90f 100644 --- a/SDK/Library/CoreSystem/amd64.mk +++ b/SDK/Library/CoreSystem/amd64.mk @@ -6,7 +6,7 @@ CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar CCINC=-I./ -CCFLAGS=-D__SINGLE_PRECISION__ -nostdlib -std=c17 -ffreestanding -Xlinker --subsystem=17 -shared +CCFLAGS=-D__SINGLE_PRECISION__ -nostdlib -std=c17 -ffreestanding -Xlinker --subsystem=17 -e __DllMainCRTStartup -shared OUTPUT=CoreSystem.lib .PHONY: all diff --git a/run_format.sh b/run_format.sh index 3ee63fc2..cd638271 100755 --- a/run_format.sh +++ b/run_format.sh @@ -5,7 +5,7 @@ THIS_DIR="$(dirname "$THIS_PATH")" # Find all files in THIS_DIR which end in .ino, .cpp, etc., as specified # in the regular expression just below -FILE_LIST="$(find "$THIS_DIR" | grep -E ".*(\.ino|\.cpp|\.c|\.h|\.hpp|\.hxx|\.cxx|\.hh)$")" +FILE_LIST="$(find "$THIS_DIR" | grep -E ".*(\.ino|\.cpp|\.c|\.h|\.hpp|\.hxx|\.cxx|\.hh|\.inl)$")" echo -e "Files found to format = \n\"\"\"\n$FILE_LIST\n\"\"\"" |
