summaryrefslogtreecommitdiffhomepage
path: root/Kernel
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-06-21 05:55:02 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-06-21 05:56:26 +0200
commitf3432c10bd694344f7e1f82ed8cd793358f1a400 (patch)
treeb2ac11c9c1378cb24e046185b6d2eeb1b0e16e98 /Kernel
parent3a11be8c6f15cb03b483e2693bcd244846c6d61d (diff)
IMP: protect other computers which doesnt support EPM layout (AMD64)
IMP: Add LTE builtin and NetworkDevice of type LTE. UPDATE: Also updated ReadMe. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/Builtins/GSM/IO.hxx29
-rw-r--r--Kernel/Builtins/LTE/.keepme (renamed from Kernel/Builtins/GSM/.keepme)0
-rw-r--r--Kernel/Builtins/LTE/IO.hxx29
-rw-r--r--Kernel/HALKit/ARM64/Storage/HalFlash.cxx54
-rw-r--r--Kernel/NetworkKit/LTE.hxx (renamed from Kernel/NetworkKit/GSM.hxx)10
-rw-r--r--Kernel/NetworkKit/NetworkDevice.hpp3
-rw-r--r--Kernel/Sources/KeMain.cxx19
-rw-r--r--Kernel/amd64-efi.make2
8 files changed, 80 insertions, 66 deletions
diff --git a/Kernel/Builtins/GSM/IO.hxx b/Kernel/Builtins/GSM/IO.hxx
deleted file mode 100644
index 39de1a0f..00000000
--- a/Kernel/Builtins/GSM/IO.hxx
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -------------------------------------------
-
-Copyright Zeta Electronics Corporation.
-
-File: GSM\IO.hxx.
-Purpose: GSM I/O.
-
-------------------------------------------- */
-
-#ifndef _INC_NETWORK_GSM_IO_HXX_
-#define _INC_NETWORK_GSM_IO_HXX_
-
-#include <NewKit/Defines.hpp>
-#include <NewKit/String.hpp>
-
-/// @brief GSM I/O routines.
-
-/// @brief Turn on SIM slot.
-NewOS::Boolean gsm_turn_on_slot(NewOS::Int32 slot);
-
-/// @brief Turn off SIM slot.
-NewOS::Boolean gsm_turn_off_slot(NewOS::Int32 slot);
-
-/// @brief Send AT command.
-NewOS::Boolean gsm_send_at_command(NewOS::Char* buf,
- NewOS::Size bufSz);
-
-
-#endif // ifndef _INC_NETWORK_GSM_IO_HXX_
diff --git a/Kernel/Builtins/GSM/.keepme b/Kernel/Builtins/LTE/.keepme
index e69de29b..e69de29b 100644
--- a/Kernel/Builtins/GSM/.keepme
+++ b/Kernel/Builtins/LTE/.keepme
diff --git a/Kernel/Builtins/LTE/IO.hxx b/Kernel/Builtins/LTE/IO.hxx
new file mode 100644
index 00000000..a3f62fa9
--- /dev/null
+++ b/Kernel/Builtins/LTE/IO.hxx
@@ -0,0 +1,29 @@
+/* -------------------------------------------
+
+Copyright Zeta Electronics Corporation.
+
+File: LTE\IO.hxx.
+Purpose: LTE I/O.
+
+------------------------------------------- */
+
+#ifndef _INC_NETWORK_LTE_IO_HXX_
+#define _INC_NETWORK_LTE_IO_HXX_
+
+#include <NewKit/Defines.hpp>
+#include <NewKit/String.hpp>
+
+/// @brief LTE I/O routines.
+
+/// @brief Turn on SIM slot.
+NewOS::Boolean lte_turn_on_slot(NewOS::Int32 slot);
+
+/// @brief Turn off SIM slot.
+NewOS::Boolean lte_turn_off_slot(NewOS::Int32 slot);
+
+/// @brief Send AT command.
+NewOS::Boolean lte_send_at_command(NewOS::Char* buf,
+ NewOS::Size bufSz);
+
+
+#endif // ifndef _INC_NETWORK_LTE_IO_HXX_
diff --git a/Kernel/HALKit/ARM64/Storage/HalFlash.cxx b/Kernel/HALKit/ARM64/Storage/HalFlash.cxx
index 7bc9c8c0..4466963e 100644
--- a/Kernel/HALKit/ARM64/Storage/HalFlash.cxx
+++ b/Kernel/HALKit/ARM64/Storage/HalFlash.cxx
@@ -12,41 +12,55 @@
#ifdef __FLASH_MEM__
+#define cMaxFlash (4U)
+
namespace NewOS
{
- /// /:\\BRIDGE\\FLSH\\1
- constexpr auto cFlashBridgeMagic = "FLSH";
- constexpr auto cFlashBridgeRevision = 1;
+ /// /:\\BRIDGE\\FLSH\\1
+ constexpr auto cFlashBridgeMagic = "FLSH";
+ constexpr auto cFlashBridgeRevision = 1;
- STATIC const Boolean kFlashEnabled = No;
- STATIC SizeT kFlashSize = 0UL;
- STATIC SizeT kFlashSectorSz = 0UL;
+ STATIC const Boolean kFlashEnabled = No;
+ STATIC SizeT kFlashSize[cMaxFlash] = {};
+ STATIC SizeT kFlashSectorSz[cMaxFlash] = {};
- /// @brief Enable flash memory builtin.
- STATIC Void drv_enable_builtin(Void);
+ /// @brief Enable flash memory builtin.
+ STATIC Void drv_enable_flash(Int32 slot);
- /// @brief Disable flash memory builtin.
- STATIC Void drv_disable_builtin(Void);
+ /// @brief Disable flash memory builtin.
+ STATIC Void drv_disable_flash(Int32 slot);
- /// @brief get sector count.
- /// @return drive sector count.
- SizeT drv_std_get_sector_count(void)
+ /// @brief get sector count.
+ /// @return drive sector count.
+ SizeT drv_std_get_sector_count(Int32 slot)
{
- return kFlashSectorSz;
+ if (slot > cMaxFlash)
+ return 0;
+
+ return kFlashSectorSz[slot];
}
/// @brief get device size.
/// @return drive size
- SizeT drv_std_get_drv_size(void)
+ SizeT drv_std_get_drv_size(Int32 slot)
{
- return kFlashSize;
+ if (slot > cMaxFlash)
+ return 0;
+
+ return kFlashSize[slot];
}
- /// @brief Enable flash memory builtin.
- STATIC Void drv_enable_builtin(Void) {}
+ /// @brief Enable flash memory at slot.
+ STATIC Void drv_enable_flash(Int32 arg)
+ {
+ kcout << "newoskrnl: enabled hardware.\r";
+ }
- /// @brief Disable flash memory builtin.
- STATIC Void drv_disable_builtin(Void) {}
+ /// @brief Disable flash memory at slot.
+ STATIC Void drv_disable_flash(Int32 arg)
+ {
+ kcout << "newoskrnl: disabled hardware.\r";
+ }
} // namespace NewOS
#endif // if __FLASH_MEM__ (Bridge)
diff --git a/Kernel/NetworkKit/GSM.hxx b/Kernel/NetworkKit/LTE.hxx
index f4b040b3..cb3aa1e1 100644
--- a/Kernel/NetworkKit/GSM.hxx
+++ b/Kernel/NetworkKit/LTE.hxx
@@ -2,15 +2,15 @@
Copyright Zeta Electronics Corporation.
- File: GSM.hxx.
- Purpose: GSM protocol classes.
+ File: LTE.hxx.
+ Purpose: LTE protocol classes.
------------------------------------------- */
-#ifndef _INC_NETWORK_GSM_HXX_
-#define _INC_NETWORK_GSM_HXX_
+#ifndef _INC_NETWORK_LTE_HXX_
+#define _INC_NETWORK_LTE_HXX_
#include <NewKit/Defines.hpp>
#include <NewKit/String.hpp>
-#endif // ifndef _INC_NETWORK_GSM_HXX_
+#endif // ifndef _INC_NETWORK_LTE_HXX_
diff --git a/Kernel/NetworkKit/NetworkDevice.hpp b/Kernel/NetworkKit/NetworkDevice.hpp
index 9b251c2e..c6f0cca3 100644
--- a/Kernel/NetworkKit/NetworkDevice.hpp
+++ b/Kernel/NetworkKit/NetworkDevice.hpp
@@ -71,6 +71,9 @@ namespace NewOS
/// @brief GSM device.
using GSMNetworkDevice = NetworkDevice;
+
+ /// @brief LTE device.
+ using LTENetworkDevice = NetworkDevice;
} // namespace NewOS
#include <NetworkKit/NetworkDevice.inl>
diff --git a/Kernel/Sources/KeMain.cxx b/Kernel/Sources/KeMain.cxx
index 59f53f34..3ff754c2 100644
--- a/Kernel/Sources/KeMain.cxx
+++ b/Kernel/Sources/KeMain.cxx
@@ -26,8 +26,7 @@
namespace NewOS::Detail
{
- /// @brief Filesystem auto mounter, additional checks are also done by the
- /// class.
+ /// @brief Filesystem auto installer, additional checks are also done by the class.
class FilesystemInstaller final
{
NewOS::NewFilesystemManager* fNewFS{nullptr};
@@ -105,12 +104,8 @@ namespace NewOS::Detail
auto catalogSystem = fNewFS->GetParser()->GetCatalog(cDirStr[dirIndx]);
- kcout << "newoskrnl: write fork...\r";
-
fNewFS->GetParser()->CreateFork(catalogSystem, theFork);
- kcout << "newoskrnl: write catalog...\r";
-
fNewFS->GetParser()->WriteCatalog(
catalogSystem, (NewOS::VoidPtr)(metadataFolder.CData()),
metadataSz, cFolderInfo);
@@ -186,11 +181,12 @@ namespace NewOS::Detail
}
};
- /// @brief Loads necessary servers for the OS to work.
- /// @param void no parameters.
+ /// @brief Loads necessary servers for the kernel -> user mode switch.
+ /// @param void no args.
/// @return void no return value.
STATIC NewOS::Void ke_launch_srv(NewOS::Void)
{
+ // load security server.
NewOS::PEFLoader secureSrv("C:\\System\\securesrv.exe");
if (!secureSrv.IsLoaded())
@@ -201,14 +197,15 @@ namespace NewOS::Detail
NewOS::Utils::execute_from_image(secureSrv,
NewOS::ProcessHeader::kAppKind);
- NewOS::PEFLoader uiSrv("C:\\System\\uisrv.exe");
+ /// load middleware service.
+ NewOS::PEFLoader middlewareSvc("C:\\System\\middlewaresvc.exe");
- if (!uiSrv.IsLoaded())
+ if (!middlewareSvc.IsLoaded())
{
NewOS::ke_stop(RUNTIME_CHECK_FAILED);
}
- NewOS::Utils::execute_from_image(uiSrv,
+ NewOS::Utils::execute_from_image(middlewareSvc,
NewOS::ProcessHeader::kAppKind);
}
} // namespace NewOS::Detail
diff --git a/Kernel/amd64-efi.make b/Kernel/amd64-efi.make
index 9421f63a..c230bc48 100644
--- a/Kernel/amd64-efi.make
+++ b/Kernel/amd64-efi.make
@@ -84,4 +84,4 @@ help:
.PHONY: clean
clean:
- rm -f $(LDOBJ) $(wildcard *.o) $(KERNEL)
+ rm -f $(LDOBJ) $(wildcard *.o) $(KERNEL) $(KERNEL_512K)