summaryrefslogtreecommitdiffhomepage
path: root/dev/boot/BootKit/Support.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
commit83d870e58457a1d335a1d9b9966a6a1887cc297b (patch)
tree72888f88c7728c82f3f6df1f4f70591de15eab36 /dev/boot/BootKit/Support.h
parentab37adbacf0f33845804c788b39680cd754752a8 (diff)
feat! breaking changes on kernel sources.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/boot/BootKit/Support.h')
-rw-r--r--dev/boot/BootKit/Support.h145
1 files changed, 0 insertions, 145 deletions
diff --git a/dev/boot/BootKit/Support.h b/dev/boot/BootKit/Support.h
deleted file mode 100644
index 110b220c..00000000
--- a/dev/boot/BootKit/Support.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* ========================================
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
-
-======================================== */
-
-#pragma once
-
-/// @file Support.h
-/// @brief Purpose of this file is to help port libs into the bootloader.
-
-#ifndef __NE_ARM64__
-#include <string.h>
-#endif
-
-#define kLongMax ((long) (~0UL >> 1))
-#define kLongMin (~kLongMax)
-
-#ifdef __BOOTZ__
-
-/// @brief memset definition in C++.
-/// @param dst destination pointer.
-/// @param byte value to fill in.
-/// @param len length of of src.
-EXTERN_C void* memset(void* dst, int byte, long long unsigned int len);
-
-/// @brief memcpy definition in C++.
-/// @param dst destination pointer.
-/// @param src source pointer.
-/// @param len length of of src.
-EXTERN_C void* memcpy(void* dst, const void* src, long long unsigned int len);
-
-/// @brief strlen definition in C++.
-EXTERN_C size_t strlen(const char* whatToCheck);
-
-/// @brief strcmp definition in C++.
-EXTERN_C int strcmp(const char* whatToCheck, const char* whatToCheckRight);
-
-#else
-
-#ifndef __NE_ARM64__
-#include <string.h>
-#endif
-
-#endif // __BOOTZ__
-
-#define SetMem(dst, c, sz) memset(dst, c, sz)
-#define MoveMem(dst, src, sz) memcpy(dst, src, sz)
-#define CopyMem(dst, src, sz) memcpy(dst, src, sz)
-#define StrLen(src) strlen(src)
-#define StrCmp(dst, src) strcmp(dst, src)
-
-inline int IsSpace(int c) {
- return c == ' ';
-}
-
-inline int StringNCompare(const char* destination, const char* source, long length) {
- long err = 0;
-
- for (long i = 0UL; i < length; ++i) {
- if (source[i] != destination[i]) ++err;
- }
-
- return err;
-}
-
-inline long StringToLong(const char* nptr, char** endptr, int base) {
- const char *p = nptr, *endp;
- bool is_neg = 0, overflow = 0;
-
- /* Need unsigned so (-kLongMin) 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)) p++;
-
- if (*p == '+') {
- p++;
- } else if (*p == '-') {
- is_neg = 1, p++;
- }
- if (*p == '0') {
- p++;
- /* For strtol(" 0xZ", &endptr, 16), endptr should point to 'x';
- * pointing to ' ' or '0' is non-compliant.
- * (Many implementations do this wrong.) */
- endp = p;
- if (base == 16 && (*p == 'X' || *p == 'x')) {
- p++;
- } else if (base == 2 && (*p == 'B' || *p == 'b')) {
- /* C23 standard supports "0B" and "0b" prefixes. */
- p++;
- } else if (base == 0) {
- if (*p == 'X' || *p == 'x') {
- base = 16, p++;
- } else if (*p == 'B' || *p == 'b') {
- base = 2, p++;
- } else {
- base = 8;
- }
- }
- } else if (base == 0) {
- base = 10;
- }
-
- cutoff = (is_neg) ? -(kLongMin / base) : kLongMax / base;
- cutlim = (is_neg) ? -(kLongMin % base) : kLongMax % base;
-
- while (1) {
- int c;
- if (*p >= 'A')
- c = ((*p - 'A') & (~('a' ^ 'A'))) + 10;
- else if (*p <= '9')
- c = *p - '0';
- else
- break;
- if (c < 0 || c >= base) break;
- endp = ++p;
- if (overflow) {
- /* endptr should go forward and point to the non-digit character
- * (of the given base); required by ANSI standard. */
- if (endptr) continue;
- break;
- }
- if (n > cutoff || (n == cutoff && c > cutlim)) {
- overflow = 1;
- continue;
- }
- n = n * base + c;
- }
-
- if (endptr) *endptr = (char*) endp;
-
- if (overflow) {
- return ((is_neg) ? kLongMin : kLongMax);
- }
-
- return (long) ((is_neg) ? -n : n);
-}